예제 #1
0
    def test_run(self, sftp_put):
        ctxt_agent = CtxtAgent("/tmp/gen_data.json", "/tmp/vm_data.json")
        ctxt_agent.logger = self.logger
        ctxt_agent.contextualize_vm = MagicMock()
        ctxt_agent.contextualize_vm.return_value = {
            'SSH_WAIT': True,
            'OK': True,
            'CHANGE_CREDS': True,
            'basic': True
        }

        with open("/tmp/gen_data.json", "w+") as f:
            json.dump(self.gen_general_conf(), f)
        with open("/tmp/vm_data.json", "w+") as f:
            json.dump(self.gen_vm_conf(["basic"]), f)

        res = ctxt_agent.run(0)
        self.assertTrue(res)

        open("/tmp/ctxt_agent.log", 'a').close()
        res = ctxt_agent.run(1)
        self.assertTrue(res)
예제 #2
0
    def test_70_contextualize_vm(self, sftp_put, execute, test_connectivity):
        CtxtAgent.logger = self.logger
        CtxtAgent.changeVMCredentials = MagicMock()
        CtxtAgent.changeVMCredentials.return_value = True
        CtxtAgent.LaunchAnsiblePlaybook = MagicMock()
        queue = MagicMock()
        queue.get.return_value = None, (0, []), None
        thread = MagicMock()
        thread.is_alive.return_value = False
        CtxtAgent.LaunchAnsiblePlaybook.return_value = (thread, queue)
        CtxtAgent.wait_winrm_access = MagicMock()
        CtxtAgent.wait_winrm_access.return_value = True
        CtxtAgent.wait_ssh_access = MagicMock()
        CtxtAgent.wait_ssh_access.return_value = True
        CtxtAgent.removeRequiretty = MagicMock()
        CtxtAgent.removeRequiretty.return_value = True
        CtxtAgent.VM_CONF_DATA_FILENAME = "/tmp/conf.dat"
        CtxtAgent.CONF_DATA_FILENAME = "/tmp/gconf.dat"
        execute.return_value = "1", 1, 1

        ctxt_vm = None
        for vm in self.gen_general_conf()['vms']:
            if vm['id'] == self.gen_vm_conf(["basic"])['id']:
                ctxt_vm = vm

        with open("/tmp/ctxt_agent.out", 'w+') as f:
            f.write('{"OK": true}')
        res = CtxtAgent.contextualize_vm(self.gen_general_conf(),
                                         self.gen_vm_conf(["basic"]), ctxt_vm,
                                         0)
        expected_res = {
            'SSH_WAIT': True,
            'OK': True,
            'CHANGE_CREDS': True,
            'basic': True
        }
        self.assertEqual(res, expected_res)

        res = CtxtAgent.contextualize_vm(self.gen_general_conf(),
                                         self.gen_vm_conf(["basic"]), ctxt_vm,
                                         1)
        expected_res = {
            'SSH_WAIT': True,
            'OK': True,
            'CHANGE_CREDS': True,
            'basic': True
        }
        self.assertEqual(res, expected_res)

        ctxt_vm = None
        for vm in self.gen_general_conf()['vms']:
            if vm['id'] == self.gen_vm_conf(["main", "front"])['id']:
                ctxt_vm = vm

        res = CtxtAgent.contextualize_vm(self.gen_general_conf(),
                                         self.gen_vm_conf(["main", "front"]),
                                         ctxt_vm, 0)
        expected_res = {'OK': True, 'front': True, 'main': True}
        self.assertEqual(res, expected_res)

        res = CtxtAgent.contextualize_vm(self.gen_general_conf(),
                                         self.gen_vm_conf(["main", "front"]),
                                         ctxt_vm, 1)
        expected_res = {'OK': True, 'front': True, 'main': True}
        self.assertEqual(res, expected_res)
예제 #3
0
    def test_contextualize_vm(self, from_private_key, sftp_put_dir, sftp_mkdir,
                              sftp_put, execute, test_connectivity):
        ctxt_agent = CtxtAgent("/tmp/gconf.dat", "/tmp/conf.dat")
        ctxt_agent.logger = self.logger
        ctxt_agent.changeVMCredentials = MagicMock()
        ctxt_agent.changeVMCredentials.return_value = True
        ctxt_agent.LaunchAnsiblePlaybook = MagicMock()
        queue = MagicMock()
        queue.get.return_value = None, 0, None
        thread = MagicMock()
        thread.is_alive.return_value = False
        ctxt_agent.LaunchAnsiblePlaybook.return_value = (thread, queue)
        ctxt_agent.wait_winrm_access = MagicMock()
        ctxt_agent.wait_winrm_access.return_value = True
        ctxt_agent.wait_ssh_access = MagicMock()
        ctxt_agent.wait_ssh_access.return_value = True
        ctxt_agent.removeRequiretty = MagicMock()
        ctxt_agent.removeRequiretty.return_value = True
        execute.return_value = "1", 1, 1

        ctxt_vm = None
        for vm in self.gen_general_conf()['vms']:
            if vm['id'] == self.gen_vm_conf(["basic"])['id']:
                ctxt_vm = vm

        with open("/tmp/ctxt_agent.out", 'w+') as f:
            f.write('{"OK": true}')
        res = ctxt_agent.contextualize_vm(self.gen_general_conf(),
                                          self.gen_vm_conf(["basic"]), ctxt_vm,
                                          0)
        expected_res = {
            'SSH_WAIT': True,
            'OK': True,
            'CHANGE_CREDS': True,
            'basic': True
        }
        self.assertEqual(res, expected_res)

        res = ctxt_agent.contextualize_vm(self.gen_general_conf(),
                                          self.gen_vm_conf(["basic"]), ctxt_vm,
                                          1)
        expected_res = {'SSH_WAIT': True, 'OK': True, 'basic': True}
        self.assertEqual(res, expected_res)

        ctxt_vm = None
        for vm in self.gen_general_conf()['vms']:
            if vm['id'] == self.gen_vm_conf(["main", "front"])['id']:
                ctxt_vm = vm

        res = ctxt_agent.contextualize_vm(self.gen_general_conf(),
                                          self.gen_vm_conf(["main", "front"]),
                                          ctxt_vm, 0)
        expected_res = {'OK': True, 'front': True, 'main': True}
        self.assertEqual(res, expected_res)

        res = ctxt_agent.contextualize_vm(self.gen_general_conf(),
                                          self.gen_vm_conf(["main", "front"]),
                                          ctxt_vm, 1)
        expected_res = {'OK': True, 'front': True, 'main': True}
        self.assertEqual(res, expected_res)

        res = ctxt_agent.contextualize_vm(
            self.gen_general_conf(), self.gen_vm_conf(["copy_facts_cache"]),
            ctxt_vm, 0)
        expected_res = {'OK': True, 'copy_facts_cache': True}
        self.assertEqual(res, expected_res)