def test_lifecycle(self, process_pending_tasks, get_deployment_status, get_resources_page, load_mvs_seen,
                       load_pending_tasks, create_db, cpyutils_db_create, now):
        now.return_value = 1.0
        create_db.return_value = True
        load_mvs_seen.return_value = {
            'vnode1': powermanager.VM_Node('ee6a8510-974c-411c-b8ff-71bb133148eb')}
        load_pending_tasks.return_value = []
        cpyutils_db_create.return_value = None
        get_resources_page.side_effect = self.get_resources_page
        get_deployment_status.return_value = "CREATE_COMPLETE"
        process_pending_tasks.return_value = True
        pm = powermanager()

        pm._clues_daemon = MagicMock()
        pm._db = MagicMock()
        pm._db.sql_query = Mock(return_value=True)
        monitoring_info = MagicMock()
        node = Node("vnode1", 1, 1, 512, 512)
        node.set_state(NodeInfo.OFF)
        monitoring_info.nodelist = {node}
        pm._clues_daemon.get_monitoring_info.return_value = monitoring_info
        now.return_value = 10000.0

        pm.lifecycle()

        self.assertEquals(
            str(pm._pending_tasks[0]), "Power Off on ee6a8510-974c-411c-b8ff-71bb133148eb")
    def test_power_on_timeout(self, modify_deployment, get_deployment_status, get_resources, load_mvs_seen,
                              load_pending_tasks, create_db, cpyutils_db_create, now, delete_task, power_off):

        now.return_value = 1.0
        create_db.return_value = True
        load_mvs_seen.return_value = {
            'vnode1': powermanager.VM_Node('ee6a8510-974c-411c-b8ff-71bb133148eb')}
        cpyutils_db_create.return_value = None
        get_deployment_status.return_value = "CREATE_COMPLETE"
        delete_task.return_value = True
        power_off.return_value = True
        get_resources.return_value = read_file_as_json(
            "test-files/get-resources-output.json")
        modify_deployment.return_value = 200, 'test'
        powermanager()._power_on('vnode1')
        self.assertIn("Node vnode1 successfully created", self.log.getvalue())
        self.assertIn(
            "Trying to get the uuids of the new node and get 0 uuids", self.log.getvalue())
 def test_get_vms(self, get_resources_page, load_mvs_seen, load_pending_tasks, create_db, cpyutils_db_create, now):
     now.return_value = 1.0
     create_db.return_value = True
     load_mvs_seen.return_value = {
         'vnode1': powermanager.VM_Node('ee6a8510-974c-411c-b8ff-71bb133148eb')}
     load_pending_tasks.return_value = []
     cpyutils_db_create.return_value = None
     get_resources_page.side_effect = self.get_resources_page
     vms = powermanager()._get_vms()
     self.assertEquals(vms["vnode1"].timestamp_seen, 1.0)
    def test_process_pending_tasks_power_off(self, get_deployment_status, get_resources_page, load_mvs_seen,
                                             load_pending_tasks, create_db, cpyutils_db_create, now,
                                             delete_task, power_off):
        now.return_value = 1.0
        create_db.return_value = True
        load_mvs_seen.return_value = {
            'vnode1': powermanager.VM_Node('ee6a8510-974c-411c-b8ff-71bb133148eb')}
        cpyutils_db_create.return_value = None
        get_resources_page.side_effect = self.get_resources_page
        get_deployment_status.return_value = "CREATE_COMPLETE"
        delete_task.return_value = True
        power_off.return_value = True

        task1 = powermanager.Task(powermanager.POWER_ON, 'task1')
        task2 = powermanager.Task(powermanager.POWER_OFF, 'task2')
        load_pending_tasks.return_value = [task2, task1]

        powermanager()._process_pending_tasks()

        self.assertEquals(delete_task.call_args_list, [call(task2)])
        self.assertEquals(power_off.call_args_list, [call(['task2'])])
        self.assertIn("Processing pending tasks:", self.log.getvalue())
        self.assertIn(
            "Task Power Off on task2 correctly processed", self.log.getvalue())