Ejemplo n.º 1
0
    def run(self, tmp=None, task_vars=None):
        """
        Simple action plugin that returns the mocked output
        when linchpin_mock is True
        """
        super(ActionModule, self).run(tmp, task_vars)
        # contains all the module arguments
        module_args = self._task.args.copy()
        # task vars.keys() contains all the variable  required
        # when passed a extra_var as key value pair task_vars
        # would return mocked output of the named module.
        # print(task_vars['vars'].keys())
        # print(task_vars['vars'].get('linchpin_mock', False))
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        task_name = "_".join(self._task.get_name().split())
        print(task_name)
        if linchpin_mock:
            if task_name.startswith("libvirt_:_DLCIE"):
                return mock_utils.get_mock_data(module_args, "stat_DLCIE")
            if task_name.startswith("libvirt_:_DISMT"):
                return mock_utils.get_mock_data(module_args, "stat_DISMT")
            if task_name.startswith("libvirt_:_LDSKAE"):
                return mock_utils.get_mock_data(module_args, "stat_LDSKAE")

        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)
        return module_return
Ejemplo n.º 2
0
    def run(self, tmp=None, task_vars=None):
        """
        Simple action plugin that returns the mocked output
        when linchpin_mock is True
        """
        super(ActionModule, self).run(tmp, task_vars)
        module_args = self._task.args.copy()
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        up = task_vars['vars'].get('state', 'present') == 'present'
        if up and linchpin_mock:
            return mock_utils.get_mock_data(module_args, "azure_vm.present")
        elif not up and linchpin_mock:
            return mock_utils.get_mock_data(module_args, "azure_vm.absent")

        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)
        return module_return
Ejemplo n.º 3
0
    def run(self, tmp=None, task_vars=None):
        vm = self._task.get_variable_manager()
        if vm.extra_vars.get('no_monitor', False):
            def get_dict(context, key):
                return context.__context_dict[key]

            def set_dict(context, key, value):
                context.__context_dict[key] = value

            context = MagicMock()
            context.__context_dict = {}
            context.__getitem__ = get_dict
            context.__setitem__ = set_dict
            wait = 0
        else:
            context = zmq.Context()
            wait = 2
        socket = context.socket(zmq.REQ)
        socket.connect("tcp://localhost:5599")
        socket.RCVTIMEO = 2000

        if task_vars is None:
            task_vars = dict()
        name = "{}({})".format(self._task.args['name'],
                               self._task.args['count'])
        msg = dict(status=dict(target=name, state='Provisioning'), bar=50)
        socket.send_string(str(msg))
        socket.recv_string()

        super(ActionModule, self).run(tmp, task_vars)
        module_args = self._task.args.copy()
        linchpin_mock = task_vars['vars'].get('linchpin_mock',
                                              False)
        if linchpin_mock:
            return mock_utils.get_mock_data(module_args,
                                            "dummy")
        else:
            module_return = self._execute_module(module_name='dummy',
                                                 module_args=module_args,
                                                 task_vars=task_vars, tmp=tmp)
        del tmp  # tmp no longer has any effect
        sleep(wait)

        msg = dict(status=dict(target=name, state='Done'), bar=50)
        socket.send(str(msg).encode('utf-8'))
        socket.recv_string()
        sleep(wait)

        return module_return
Ejemplo n.º 4
0
    def run(self, tmp=None, task_vars=None):
        """
        Simple action plugin that returns the mocked output
        when linchpin_mock is True
        """
        super(ActionModule, self).run(tmp, task_vars)
        module_args = self._task.args.copy()
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        if linchpin_mock:
            return mock_utils.get_mock_data(module_args, "ec2_vpc_igw")

        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)
        return module_return
Ejemplo n.º 5
0
    def run(self, tmp=None, task_vars=None):
        """
        Simple action plugin that returns the mocked output
        when linchpin_mock is True
        """
        super(ActionModule, self).run(tmp, task_vars)
        # contains all the module arguments
        module_args = self._task.args.copy()
        # task vars.keys() contains all the variable  required
        # when passed a extra_var as key value pair task_vars
        # would return mocked output of the named module.
        # print(task_vars['vars'].keys())
        # print(task_vars['vars'].get('linchpin_mock', False))
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        if linchpin_mock:
            return mock_utils.get_mock_data(module_args, "os_router")

        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)
        return module_return
Ejemplo n.º 6
0
    def run(self, tmp=None, task_vars=None):
        """
        Simple action plugin that returns the mocked output
        when linchpin_mock is True
        """
        super(ActionModule, self).run(tmp, task_vars)
        # contains all the module arguments
        module_args = self._task.args.copy()
        # task vars.keys() contains all the variable  required
        # when passed a extra_var as key value pair task_vars
        # would return mocked output of the named module.
        # print(task_vars['vars'].keys())
        # print(task_vars['vars'].get('linchpin_mock', False))
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        state = task_vars['vars'].get('state')
        task_name = "_".join(self._task.get_name().split())
        print(task_name)
        if linchpin_mock and state == "absent":
            if task_name.startswith("libvirt_:"):
                return mock_utils.get_mock_data(module_args, "virt_vm_status")
            if task_name.startswith("libvirt_:_undefine_node"):
                return mock_utils.get_mock_data(module_args, "virt_vm_status")

        if linchpin_mock:
            if task_name.startswith("libvirt_:_DNAE"):
                return mock_utils.get_mock_data(
                    module_args, "virt_does_node_already_exist")
            if task_name.startswith("libvirt_:_DN"):
                return mock_utils.get_mock_data(module_args,
                                                "virt_define_node")
            if task_name.startswith("libvirt_:_SVM"):
                return mock_utils.get_mock_data(module_args, "virt_SVM")
            if task_name.startswith("libvirt_:_WFVMTSD"):
                return mock_utils.get_mock_data(module_args, "virt_vm_status")
            if task_name.startswith("libvirt_:_MSVMISD"):
                return mock_utils.get_mock_data(module_args, "virt_msvmisd")
            if task_name.startswith("libvirt_:_SVMA"):
                return mock_utils.get_mock_data(module_args,
                                                "virt_start_vm_again")
            if task_name.startswith("libvirt_:_DND"):
                return mock_utils.get_mock_data(module_args,
                                                "virt_dump_node_data")
            if task_name.startswith("libvirt_:_VNF"):
                return mock_utils.get_mock_data(module_args, "virt_net_facts")
            if task_name.startswith("libvirt_:_MSVAR"):
                return mock_utils.get_mock_data(module_args, "virt_MSVAR")
            if task_name.startswith("libvirt_:_MSVARWPE"):
                return mock_utils.get_mock_data(module_args, "virt_MSVARWPE")

        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)
        return module_return
Ejemplo n.º 7
0
    def run(self, tmp=None, task_vars=None):

        module_args = self._task.args.copy()
        if task_vars is None:
            task_vars = dict()
        linchpin_mock = task_vars['vars'].get('linchpin_mock', False)
        if linchpin_mock:
            return mock_utils.get_mock_data(module_args, "ec2")

        vm = self._task.get_variable_manager()
        if vm.extra_vars.get('no_monitor', False):

            def get_dict(context, key):
                return context.__context_dict[key]

            def set_dict(context, key, value):
                context.__context_dict[key] = value

            context = MagicMock()
            context.__context_dict = {}
            context.__getitem__ = get_dict
            context.__setitem__ = set_dict
        else:
            context = zmq.Context()
            socket = context.socket(zmq.REQ)
            socket.connect("tcp://localhost:5599")
            socket.RCVTIMEO = 2000

            if task_vars is None:
                task_vars = dict()
            if self._task.args.get('state', 'present') == 'present':
                action = 'present'
                base = self._task.args['instance_tags']['name']
                count = int(self._task.args.get('count', '1'))
                for index in range(1, count):
                    name = "{}({})".format(base, index)
                    msg = dict(status=dict(target=name, state='Provisioning'),
                               bar=10)
                    socket.send_string(str(msg))
                    socket.recv_string()
            elif self._task.args['state'] == 'absent':
                action = 'absent'
                name = "{}({})".format(
                    self._task.args['instance_tags']['name'],
                    self._task.args['instance_ids'])
                msg = dict(status=dict(target=name, state='Destryoing'),
                           bar=10)
                socket.send(str(msg).encode('utf-8'))
                socket.recv_string()

            result = super(ActionModule, self).run(tmp, task_vars)
            result = self._execute_module(task_vars=task_vars,
                                          wrap_async=self._task.async_val)

            del tmp  # tmp no longer has any effect
            done = False
            old_state = ''
            while not done:
                facts_args = \
                    dict(instance_ids=result['instance_ids'],
                         aws_access_key=self._task.args['aws_access_key'],
                         aws_secret_key=self._task.args['aws_secret_key'],
                         region=self._task.args['region'])
                info = self._execute_module(module_name='ec2_instance_facts',
                                            module_args=facts_args,
                                            task_vars=task_vars)
                done = True
                for instance in info['instances']:
                    state = instance['state']['name']
                    if state not in ['running', 'terminated']:
                        done = False
                    if state != old_state:
                        old_state = state
                        if state == 'pending':
                            bar = 40
                        if state == 'running':
                            state = 'Done'
                            bar = 50
                        if state == 'shutting-down':
                            bar = 40
                        if state == 'terminated':
                            state = 'Done'
                            bar = 50
                    else:
                        bar = 0
                    base = instance['tags']['name']
                    if action == 'present':
                        index = info['instances'].index(instance)
                    elif action == 'absent':
                        index = instance['instance_id']
                    name = "{}({})".format(base, index)
                    msg = dict(status=dict(target=name, state=state), bar=bar)
                    socket.send(str(msg).encode('utf-8'))
                    socket.recv_string()

            return result
        module_return = self._execute_module(module_args=module_args,
                                             task_vars=task_vars,
                                             tmp=tmp)

        return module_return