[Kimchi-devel] [PATCH] [Kimchi] Feature request (#860): Support Guest Autostart

Paulo Ricardo Paz Vital pvital at linux.vnet.ibm.com
Mon Aug 22 12:53:12 UTC 2016


Reviewed-by: Paulo Ricardo Paz Vital <pvital at linux.vnet.ibm.com>

On Aug 19 05:34PM, bianca at linux.vnet.ibm.com wrote:
> From: Bianca Carvalho <bianca at linux.vnet.ibm.com>
> 
> Include 'autostart' option in API.json and vms.py (lookup and update)
> using libvirt dom.setAutostart to set as true or false. Also edit
> test_model.py to include those changes.
> 
> Signed-off-by: Bianca Carvalho <bianca at linux.vnet.ibm.com>
> ---
>  API.json            |  4 ++++
>  model/vms.py        | 12 +++++++++---
>  tests/test_model.py |  6 ++++++
>  3 files changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/API.json b/API.json
> index 4fdd522..4946069 100644
> --- a/API.json
> +++ b/API.json
> @@ -322,6 +322,10 @@
>                      "error": "KCHVM0053E",
>                      "type": "boolean"
>                  },
> +                "autostart": {
> +                  "description": "Enable/Disable guest autostart",
> +                  "type": "boolean"
> +                },
>                  "users": {
>                      "description": "Array of users who have permission to the VM",
>                      "type": "array",
> diff --git a/model/vms.py b/model/vms.py
> index 433770a..cfe4c97 100644
> --- a/model/vms.py
> +++ b/model/vms.py
> @@ -79,11 +79,13 @@ DOM_STATE_MAP = {0: 'nostate',
>                   7: 'pmsuspended'}
>  
>  # update parameters which are updatable when the VM is online
> -VM_ONLINE_UPDATE_PARAMS = ['graphics', 'groups', 'memory', 'users']
> +VM_ONLINE_UPDATE_PARAMS = ['graphics', 'groups', 'memory', 'users',
> +                           'autostart']
>  
>  # update parameters which are updatable when the VM is offline
>  VM_OFFLINE_UPDATE_PARAMS = ['cpu_info', 'graphics', 'groups', 'memory',
> -                            'name', 'users', 'bootorder', 'bootmenu']
> +                            'name', 'users', 'bootorder', 'bootmenu',
> +                            'autostart']
>  
>  XPATH_DOMAIN_DISK = "/domain/devices/disk[@device='disk']/source/@file"
>  XPATH_DOMAIN_DISK_BY_FILE = "./devices/disk[@device='disk']/source[@file='%s']"
> @@ -261,6 +263,9 @@ class VMModel(object):
>  
>          with lock:
>              dom = self.get_vm(name, self.conn)
> +            if "autostart" in params:
> +                dom.setAutostart(1 if params['autostart'] == True else 0)
> +
>              # You can only change <maxMemory> offline, updating guest XML
>              if ("memory" in params) and ('maxmemory' in params['memory']) and\
>                 (DOM_STATE_MAP[dom.info()[0]] != 'shutoff'):
> @@ -1285,7 +1290,8 @@ class VMModel(object):
>                  'access': 'full',
>                  'persistent': True if dom.isPersistent() else False,
>                  'bootorder': boot,
> -                'bootmenu': bootmenu
> +                'bootmenu': bootmenu,
> +                'autostart': dom.autostart()
>                  }
>  
>      def _vm_get_disk_paths(self, dom):
> diff --git a/tests/test_model.py b/tests/test_model.py
> index 27225f8..7b1fbfe 100644
> --- a/tests/test_model.py
> +++ b/tests/test_model.py
> @@ -1369,6 +1369,12 @@ class ModelTests(unittest.TestCase):
>              inst.vm_update(u'пeω-∨м', {"bootmenu": False})
>              self.assertEquals("no", inst.vm_lookup(u'пeω-∨м')['bootmenu'])
>  
> +            # enable/disable autostart
> +            inst.vm_update(u'пeω-∨м', {"autostart": True})
> +            self.assertEquals("yes", inst.vm_lookup(u'пeω-∨м')['autostart'])
> +            inst.vm_update(u'пeω-∨м', {"autostart": False})
> +            self.assertEquals("no", inst.vm_lookup(u'пeω-∨м')['autostart'])
> +
>      def test_get_interfaces(self):
>          inst = model.Model('test:///default',
>                             objstore_loc=self.tmp_store)
> -- 
> 2.7.4
> 
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel

-- 
Paulo Ricardo Paz Vital
Linux Technology Center, IBM Systems
http://www.ibm.com/linux/ltc/




More information about the Kimchi-devel mailing list