add support for cpuset

Related PROD-23040 (PROD:23040)

Change-Id: I6cf2cb5ff66dcffb1532343a58416fb242703322
diff --git a/README.rst b/README.rst
index e305eae..2a87010 100644
--- a/README.rst
+++ b/README.rst
@@ -504,6 +504,7 @@
                   path: /usr/share/AAVMF/AAVMF_CODE.fd
                 machine: virt-2.11  # Custom per-node virt machine type
                 cpu_mode: host-passthrough
+                cpuset: '1-4'
                 mac:
                   nic01: AC:DE:48:AA:AA:AA
                   nic02: AC:DE:48:AA:AA:BB
diff --git a/_modules/virtng.py b/_modules/virtng.py
index b405d59..426d611 100644
--- a/_modules/virtng.py
+++ b/_modules/virtng.py
@@ -534,6 +534,7 @@
          loader=None,
          machine=None,
          cpu_mode=None,
+         cpuset=None,
          **kwargs):
     '''
     Initialize a new vm
@@ -703,6 +704,12 @@
       xml = xml_doc.toxml()
 
     # TODO: Remove this code and refactor module, when salt-common would have updated libvirt_domain.jinja template
+    if cpuset:
+        xml_doc = minidom.parseString(xml)
+        xml_doc.getElementsByTagName("vcpu")[0].setAttribute('cpuset', cpuset)
+        xml = xml_doc.toxml()
+
+    # TODO: Remove this code and refactor module, when salt-common would have updated libvirt_domain.jinja template
     if cpu_mode:
         xml_doc = minidom.parseString(xml)
         cpu_xml = xml_doc.createElement("cpu")
diff --git a/salt/control/virt.sls b/salt/control/virt.sls
index 731efeb..91d7277 100644
--- a/salt/control/virt.sls
+++ b/salt/control/virt.sls
@@ -67,6 +67,9 @@
   {%- if  node.machine is defined %}
   - machine: {{ node.machine }}
   {%- endif %}
+  {%- if  node.cpuset is defined %}
+  - cpuset: {{ node.cpuset }}
+  {%- endif %}
   {%- if  node.cpu_mode is defined %}
   - cpu_mode: {{ node.cpu_mode }}
   {%- endif %}
diff --git a/tests/pillar/control_virt_custom.sls b/tests/pillar/control_virt_custom.sls
index 833b5a2..265d484 100644
--- a/tests/pillar/control_virt_custom.sls
+++ b/tests/pillar/control_virt_custom.sls
@@ -98,6 +98,7 @@
             img_dest: /var/lib/libvirt/ssdimages
             machine: virt-2.11
             cpu_mode: host-passthrough
+            cpuset: '1-2'
           ubuntu2:
             provider: node02.domain.com
             image: bubuntu.qcomw