def test_delete_mvs_seen_error(self):
     mock_pm = MagicMock(powermanager)
     mock_pm._mvs_seen = {
         'test_name_0': '0', 'test_name_1': '1', 'test_name_2': '2'}
     powermanager._delete_mvs_seen(mock_pm, 'test_name_1')
     self.assertIn(
         "Error trying to save INDIGO orchestrator plugin data", self.log.getvalue())
    def test_powermanager_power_on_max_vm(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._mvs_seen = ["test1", "test2", "test3"]
        mock_pm._INDIGO_ORCHESTRATOR_MAX_INSTANCES = 1

        self.assertEquals(
            powermanager.power_on(mock_pm, "test2"), (False, 'test2'))
    def test_power_off_exception(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._modify_deployment.side_effect = Exception()
        mock_pm._mvs_seen = {}

        self.assertEquals(powermanager._power_off(mock_pm, ['task2']), False)
        self.assertIn(
            "Error powering off nodes ['task2']", self.log.getvalue())
    def test_power_off_error(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._modify_deployment.return_value = 404, 'test'
        mock_pm._mvs_seen = {}

        self.assertEquals(powermanager._power_off(mock_pm, ['task2']), False)
        self.assertIn(
            "ERROR deleting nodes: ['task2']: test", self.log.getvalue())
    def test_power_off(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._modify_deployment.return_value = 200, 'test'
        mock_pm._mvs_seen = {}

        self.assertEquals(powermanager._power_off(mock_pm, ['task2']), True)
        self.assertIn(
            "Nodes ['task2'] successfully deleted", self.log.getvalue())
    def test_delete_mvs_seen(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._mvs_seen = {
            'test_name_0': '0', 'test_name_1': '1', 'test_name_2': '2'}
        mock_pm._db = MagicMock()
        mock_pm._db.sql_query.return_value = (True, "", "")
        powermanager._delete_mvs_seen(mock_pm, 'test_name_1')

        self.assertEquals(
            mock_pm._mvs_seen, {'test_name_0': '0', 'test_name_2': '2'})
        self.assertEquals(mock_pm._db.sql_query.call_args_list,
                          [call("DELETE FROM orchestrator_vms WHERE node_name = 'test_name_1'", True)])
    def test_add_mvs_seen(self):
        mock_pm = MagicMock(powermanager)
        mock_pm._mvs_seen = {'test_name_0': '0'}
        mock_pm._db = MagicMock()
        mock_pm._db.sql_query.return_value = (True, "", "")
        mock_vm = MagicMock()
        mock_vm.vm_id = 1
        powermanager._add_mvs_seen(mock_pm, 'test_name_1', mock_vm)

        self.assertEquals(
            mock_pm._mvs_seen, {'test_name_0': '0', 'test_name_1': mock_vm})
        self.assertEquals(mock_pm._db.sql_query.call_args_list,
                          [call("INSERT INTO orchestrator_vms VALUES ('test_name_1', '1')", True)])