From 4ebf45952daa9fb8e8d8ae0993f90b1ae63a2d0c Mon Sep 17 00:00:00 2001 From: Andreas Thienemann Date: Mon, 16 Apr 2018 10:51:21 +0200 Subject: [PATCH 1/2] Add Xen function to get and set PV_ARGS PV_ARGS are used to pass additional commandline arguments to the kernel when running XenPV domains. The new actions can be run as follows: salt-cloud -a get_pv_args xenvm01 salt-cloud -a set_pv_args xenvm01 pv_args="utf-8 graphical" --- salt/cloud/clouds/xen.py | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/salt/cloud/clouds/xen.py b/salt/cloud/clouds/xen.py index 0b79d4dfb98a..87cf0c726551 100644 --- a/salt/cloud/clouds/xen.py +++ b/salt/cloud/clouds/xen.py @@ -1286,3 +1286,55 @@ def destroy_template(name=None, call=None, kwargs=None): if not found: ret[name] = {'status': 'not found'} return ret + + +def get_pv_args(name, session=None, call=None): + ''' + Get PV arguments for a VM + + .. code-block:: bash + + salt-cloud -a get_pv_args xenvm01 + + ''' + if call == 'function': + raise SaltCloudException( + 'This function must be called with -a or --action.' + ) + if session is None: + log.debug('New session being created') + session = _get_session() + vm = _get_vm(name, session=session) + pv_args = session.xenapi.VM.get_PV_args(vm) + if len(pv_args) > 0: + return pv_args + return None + + +def set_pv_args(name, kwargs=None, session=None, call=None): + ''' + Set PV arguments for a VM + + .. code-block:: bash + + salt-cloud -a set_pv_args xenvm01 pv_args="utf-8 graphical" + + ''' + if call == 'function': + raise SaltCloudException( + 'This function must be called with -a or --action.' + ) + if session is None: + log.debug('New session being created') + session = _get_session() + vm = _get_vm(name, session=session) + try: + log.debug('Setting PV Args: %s', kwargs['pv_args']) + session.xenapi.VM.set_PV_args(vm, str(kwargs['pv_args'])) + except KeyError: + log.error('No pv_args parameter found.') + return False + except XenAPI.Failure: + log.info('Setting PV Args failed.') + return False + return True From 6294cd02ed156deda21794ccfd82eec7a6b99d87 Mon Sep 17 00:00:00 2001 From: Andreas Thienemann Date: Mon, 16 Apr 2018 14:44:52 +0200 Subject: [PATCH 2/2] Minor spelling fix: templat -> template --- salt/cloud/clouds/xen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/cloud/clouds/xen.py b/salt/cloud/clouds/xen.py index 87cf0c726551..78d5dc4f25df 100644 --- a/salt/cloud/clouds/xen.py +++ b/salt/cloud/clouds/xen.py @@ -430,7 +430,7 @@ def avail_locations(session=None, call=None): def avail_sizes(session=None, call=None): ''' - Return a list of Xen templat definitions + Return a list of Xen template definitions .. code-block:: bash