From ab3239ecd7d50a55fc48df1b8bfd72c384fc6fd7 Mon Sep 17 00:00:00 2001 From: Peter Sprygada Date: Mon, 21 Sep 2015 13:04:52 -0400 Subject: [PATCH 1/2] added methods for retrieving vapp and vm --- lib/ansible/module_utils/vca.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/ansible/module_utils/vca.py b/lib/ansible/module_utils/vca.py index 2d4cd39d5b..b9ae66dda3 100644 --- a/lib/ansible/module_utils/vca.py +++ b/lib/ansible/module_utils/vca.py @@ -90,6 +90,20 @@ class VcaAnsibleModule(AnsibleModule): self._vdc = _vdc return _vdc + def get_vapp(self, vapp_name): + vapp = self.vca.get_vapp(self.vdc, vapp_name) + if not vapp: + raise VcaError('vca instance has no vapp named %s' % vapp_name) + return vapp + + def get_vm(self, vapp_name, vm_name): + vapp = self.get_vapp(vapp_name) + vms = [vm for vm in children.get_Vm() if vm.name == vm_name] + try: + return vms[0] + except IndexError: + raise VcaError('vapp has no vm named %s' % vm_name) + def create_instance(self): service_type = self.params.get('service_type', DEFAULT_SERVICE_TYPE) host = self.params.get('host', LOGIN_HOST.get('service_type')) From 3d533cb423fef10aa0a35a39d18e8960d53c074c Mon Sep 17 00:00:00 2001 From: Charles Paul Date: Mon, 12 Oct 2015 08:50:18 -0500 Subject: [PATCH 2/2] fixing calls to fail_json --- lib/ansible/module_utils/vca.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ansible/module_utils/vca.py b/lib/ansible/module_utils/vca.py index bc5e1aba2a..fbaf330417 100644 --- a/lib/ansible/module_utils/vca.py +++ b/lib/ansible/module_utils/vca.py @@ -196,26 +196,26 @@ VCHS_REQ_ARGS = ['service_id'] def _validate_module(module): if not HAS_PYVCLOUD: - module.fail_json("python module pyvcloud is needed for this module") + module.fail_json(msg="python module pyvcloud is needed for this module") service_type = module.params.get('service_type', DEFAULT_SERVICE_TYPE) if service_type == 'vca': for arg in VCA_REQ_ARGS: if module.params.get(arg) is None: - module.fail_json("argument %s is mandatory when service type " + module.fail_json(msg="argument %s is mandatory when service type " "is vca" % arg) if service_type == 'vchs': for arg in VCHS_REQ_ARGS: if module.params.get(arg) is None: - module.fail_json("argument %s is mandatory when service type " + module.fail_json(msg="argument %s is mandatory when service type " "is vchs" % arg) if service_type == 'vcd': for arg in VCD_REQ_ARGS: if module.params.get(arg) is None: - module.fail_json("argument %s is mandatory when service type " + module.fail_json(msg="argument %s is mandatory when service type " "is vcd" % arg)