Blame SOURCES/virt-manager-domain.numatune-Drop-cpuset-validation.patch

e4cbec
From 14747da70222d66e9b9f7180274d67ed37fee3ee Mon Sep 17 00:00:00 2001
e4cbec
Message-Id: <14747da70222d66e9b9f7180274d67ed37fee3ee@dist-git>
e4cbec
From: Pavel Hrdina <phrdina@redhat.com>
e4cbec
Date: Mon, 4 Jun 2018 14:30:26 -0400
e4cbec
Subject: [PATCH] domain.numatune: Drop cpuset validation
e4cbec
e4cbec
From: Cole Robinson <crobinso@redhat.com>
e4cbec
e4cbec
This type of validation should really be done at the libvirt level,
e4cbec
particularly for a non-mandatory feature like cpuset. Otherwise
e4cbec
it's just more code for us to test which will rarely be hit by users
e4cbec
e4cbec
(cherry picked from commit 39a7cbbad750656a7d89694c3b0341a5ae98d346)
e4cbec
e4cbec
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1566818
e4cbec
e4cbec
Reviewed-by: Cole Robinson <crobinso@redhat.com>
e4cbec
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
e4cbec
---
e4cbec
 tests/clitest.py           |  3 ---
e4cbec
 virtinst/domainnumatune.py | 48 --------------------------------------
e4cbec
 virtinst/guest.py          |  6 +----
e4cbec
 3 files changed, 1 insertion(+), 56 deletions(-)
e4cbec
e4cbec
diff --git a/tests/clitest.py b/tests/clitest.py
e4cbec
index eb608769..5e000194 100644
e4cbec
--- a/tests/clitest.py
e4cbec
+++ b/tests/clitest.py
e4cbec
@@ -600,7 +600,6 @@ c.add_compare("--memory 1024,hotplugmemorymax=2048,hotplugmemoryslots=2 --cpu ce
e4cbec
 ####################################################
e4cbec
 
e4cbec
 c = vinst.add_category("cpuram", "--hvm --nographics --noautoconsole --nodisks --pxe")
e4cbec
-c.add_valid("--vcpus 4 --cpuset=1,3-5,")  # Cpuset with trailing comma
e4cbec
 c.add_valid("--connect %(URI-XEN)s --vcpus 4 --cpuset=auto")  # cpuset=auto but xen doesn't support it
e4cbec
 c.add_valid("--ram 4000000")  # Ram overcommit
e4cbec
 c.add_valid("--vcpus sockets=2,threads=2")  # Topology only
e4cbec
@@ -609,8 +608,6 @@ c.add_valid("--security label=foobar.label,relabel=yes")  # --security implicit
e4cbec
 c.add_valid("--security label=foobar.label,a1,z2,b3,type=static,relabel=no")  # static with commas 1
e4cbec
 c.add_valid("--security label=foobar.label,a1,z2,b3")  # --security static with commas 2
e4cbec
 c.add_compare("--cpuset auto --vcpus 2", "cpuset-auto")  # --cpuset=auto actually works
e4cbec
-c.add_invalid("--vcpus 32 --cpuset=969-1000")  # Bogus cpuset
e4cbec
-c.add_invalid("--vcpus 32 --cpuset=autofoo")  # Bogus cpuset
e4cbec
 c.add_invalid("--clock foo_tickpolicy=merge")  # Unknown timer
e4cbec
 c.add_invalid("--security foobar")  # Busted --security
e4cbec
 
e4cbec
diff --git a/virtinst/domainnumatune.py b/virtinst/domainnumatune.py
e4cbec
index 9795011b..f8797e9c 100644
e4cbec
--- a/virtinst/domainnumatune.py
e4cbec
+++ b/virtinst/domainnumatune.py
e4cbec
@@ -17,61 +17,13 @@
e4cbec
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
e4cbec
 # MA 02110-1301 USA.
e4cbec
 
e4cbec
-import re
e4cbec
-
e4cbec
 from .xmlbuilder import XMLBuilder, XMLProperty
e4cbec
 
e4cbec
 
e4cbec
-def get_phy_cpus(conn):
e4cbec
-    """
e4cbec
-    Get number of physical CPUs.
e4cbec
-    """
e4cbec
-    hostinfo = conn.getInfo()
e4cbec
-    pcpus = hostinfo[4] * hostinfo[5] * hostinfo[6] * hostinfo[7]
e4cbec
-    return pcpus
e4cbec
-
e4cbec
-
e4cbec
 class DomainNumatune(XMLBuilder):
e4cbec
     """
e4cbec
     Class for generating <numatune> XML
e4cbec
     """
e4cbec
-
e4cbec
-    @staticmethod
e4cbec
-    def validate_cpuset(conn, val):
e4cbec
-        if val is None or val == "":
e4cbec
-            return
e4cbec
-
e4cbec
-        if not isinstance(val, str) or len(val) == 0:
e4cbec
-            raise ValueError(_("cpuset must be string"))
e4cbec
-        if re.match("^[0-9,-^]*$", val) is None:
e4cbec
-            raise ValueError(_("cpuset can only contain numeric, ',', '^', or "
e4cbec
-                               "'-' characters"))
e4cbec
-
e4cbec
-        pcpus = get_phy_cpus(conn)
e4cbec
-        for c in val.split(','):
e4cbec
-            # Redundant commas
e4cbec
-            if not c:
e4cbec
-                continue
e4cbec
-
e4cbec
-            if "-" in c:
e4cbec
-                (x, y) = c.split('-', 1)
e4cbec
-                x = int(x)
e4cbec
-                y = int(y)
e4cbec
-                if x > y:
e4cbec
-                    raise ValueError(_("cpuset contains invalid format."))
e4cbec
-                if x >= pcpus or y >= pcpus:
e4cbec
-                    raise ValueError(_("cpuset's pCPU numbers must be less "
e4cbec
-                                       "than pCPUs."))
e4cbec
-            else:
e4cbec
-                if c.startswith("^"):
e4cbec
-                    c = c[1:]
e4cbec
-                c = int(c)
e4cbec
-
e4cbec
-                if c >= pcpus:
e4cbec
-                    raise ValueError(_("cpuset's pCPU numbers must be less "
e4cbec
-                                       "than pCPUs."))
e4cbec
-
e4cbec
-
e4cbec
     _XML_ROOT_NAME = "numatune"
e4cbec
     _XML_PROP_ORDER = ["memory_mode", "memory_nodeset"]
e4cbec
 
e4cbec
diff --git a/virtinst/guest.py b/virtinst/guest.py
e4cbec
index a19b8999..04a64aa2 100644
e4cbec
--- a/virtinst/guest.py
e4cbec
+++ b/virtinst/guest.py
e4cbec
@@ -182,11 +182,7 @@ class Guest(XMLBuilder):
e4cbec
                         default_cb=lambda s: 1)
e4cbec
     curvcpus = XMLProperty("./vcpu/@current", is_int=True)
e4cbec
     vcpu_placement = XMLProperty("./vcpu/@placement")
e4cbec
-
e4cbec
-    def _validate_cpuset(self, val):
e4cbec
-        DomainNumatune.validate_cpuset(self.conn, val)
e4cbec
-    cpuset = XMLProperty("./vcpu/@cpuset",
e4cbec
-                         validate_cb=_validate_cpuset)
e4cbec
+    cpuset = XMLProperty("./vcpu/@cpuset")
e4cbec
 
e4cbec
     def _get_default_uuid(self):
e4cbec
         if self._random_uuid is None:
e4cbec
-- 
e4cbec
2.20.1
e4cbec