[PATCH virt-manager 05/14] cli: Add check if device boot order is supported

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add a check if device boot order is supported to
Parser(Network|Disk|Redirdev|...) and throw an exception if not.

Signed-off-by: Marc Hartmayer <mhartmay@xxxxxxxxxxxxx>
Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx>
---
 virtinst/cli.py | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/virtinst/cli.py b/virtinst/cli.py
index d50a0391ae73..e483905524b4 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -20,6 +20,7 @@ import types
 
 import libvirt
 
+from virtinst import support
 from virtcli import CLIConfig
 
 from . import util, xmlapi
@@ -2204,6 +2205,18 @@ def _add_device_address_args(cls):
     cls.add_arg("address.base", "address.base")
 
 
+def _add_device_boot_order_arg(cls):
+    def set_boot_order_cb(self, inst, val, virtarg):
+        val = int(val)
+        guest = self.guest
+        if not guest.conn.check_support(support.SUPPORT_CONN_DEVICE_BOOT_ORDER):
+            raise NotImplementedError('Device boot order isn\'t supported by the connection')
+
+        inst.boot.order = val
+    cls.set_boot_order_cb = set_boot_order_cb
+    cls.add_arg("boot.order", "boot_order", cb=cls.set_boot_order_cb)
+
+
 ##################
 # --disk parsing #
 ##################
@@ -2373,7 +2386,7 @@ class ParserDisk(VirtCLIParser):
         cls.add_arg("startup_policy", "startup_policy")
         cls.add_arg("read_only", "readonly", is_onoff=True)
         cls.add_arg("shareable", "shareable", is_onoff=True)
-        cls.add_arg("boot.order", "boot_order")
+        _add_device_boot_order_arg(cls)
 
         cls.add_arg("iotune_rbs", "read_bytes_sec")
         cls.add_arg("iotune_wbs", "write_bytes_sec")
@@ -2469,7 +2482,7 @@ class ParserNetwork(VirtCLIParser):
         cls.add_arg("model", "model")
         cls.add_arg("macaddr", "mac", cb=cls.set_mac_cb)
         cls.add_arg("filterref", "filterref")
-        cls.add_arg("boot.order", "boot_order")
+        _add_device_boot_order_arg(cls)
         cls.add_arg("link_state", "link_state",
                               cb=cls.set_link_state)
 
@@ -2687,7 +2700,7 @@ class ParserRedir(VirtCLIParser):
         _add_device_address_args(cls)
         cls.add_arg("bus", "bus", ignore_default=True)
         cls.add_arg("type", "type", ignore_default=True)
-        cls.add_arg("boot.order", "boot_order")
+        _add_device_boot_order_arg(cls)
         cls.add_arg(None, "server", cb=cls.set_server_cb)
 
 
@@ -3098,7 +3111,7 @@ class ParserHostdev(VirtCLIParser):
                     cb=cls.set_name_cb,
                     lookup_cb=cls.name_lookup_cb)
         cls.add_arg("driver_name", "driver_name")
-        cls.add_arg("boot.order", "boot_order")
+        _add_device_boot_order_arg(cls)
         cls.add_arg("rom_bar", "rom_bar", is_onoff=True)
 
 
-- 
2.17.0

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux