def remove_instance(num): global current_instances num = int(num) for i in range(0, num): nova_client.servers.delete(current_instances[i].id) utils.wait_for_delete(nova_client.servers, current_instances[i].id) removed = current_instances[0:num] current_instances = current_instances[num:] return removed
def test_wait_for_delete_error_with_overrides_exception(self, mock_sleep): # Tests that we succeed if the resource is specific exception mock_get = mock.Mock(side_effect=Exception) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertTrue(utils.wait_for_delete(manager, res_id, exception_name=["Exception"])) mock_sleep.assert_not_called()
def test_wait_for_delete_error(self, mock_sleep): # Tests that we fail if the resource goes to error state while waiting. resource = mock.MagicMock(status="ERROR") mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id)) mock_sleep.assert_not_called()
def test_wait_for_delete_error_with_overrides(self, mock_sleep): # Tests that we fail if the resource is my_status=failed resource = mock.MagicMock(my_status="FAILED") mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id, status_field="my_status", error_status=["failed"])) mock_sleep.assert_not_called()
def test_wait_for_delete_error(self, mock_sleep): # Tests that we fail if the resource goes to error state while waiting. resource = mock.MagicMock(status='ERROR') mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id)) mock_sleep.assert_not_called()
def test_wait_for_delete_timeout(self, mock_sleep): # Tests that we fail if the resource is not deleted before the timeout. resource = mock.MagicMock(status="ACTIVE") mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id, sleep_time=1, timeout=1)) mock_sleep.assert_called_once_with(1)
def test_wait_for_delete_error_with_overrides_exception(self, mock_sleep): # Tests that we succeed if the resource is specific exception mock_get = mock.Mock(side_effect=Exception) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertTrue(utils.wait_for_delete(manager, res_id, exception_name=['Exception'])) mock_sleep.assert_not_called()
def test_wait_for_delete_timeout(self, mock_sleep): # Tests that we fail if the resource is not deleted before the timeout. resource = mock.MagicMock(status='ACTIVE') mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id, sleep_time=1, timeout=1)) mock_sleep.assert_called_once_with(1)
def test_wait_for_delete_error_with_overrides(self, mock_sleep): # Tests that we fail if the resource is my_status=failed resource = mock.MagicMock(my_status='FAILED') mock_get = mock.Mock(return_value=resource) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) self.assertFalse(utils.wait_for_delete(manager, res_id, status_field='my_status', error_status=['failed'])) mock_sleep.assert_not_called()
def test_wait_for_delete_ok(self, mock_sleep): # Tests the normal flow that the resource is deleted with a 404 coming # back on the 2nd iteration of the wait loop. resource = mock.MagicMock(status="ACTIVE", progress=None) mock_get = mock.Mock(side_effect=[resource, exceptions.NotFound(404)]) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) callback = mock.Mock() self.assertTrue(utils.wait_for_delete(manager, res_id, callback=callback)) mock_sleep.assert_called_once_with(5) callback.assert_called_once_with(0)
def test_wait_for_delete_ok(self, mock_sleep): # Tests the normal flow that the resource is deleted with a 404 coming # back on the 2nd iteration of the wait loop. resource = mock.MagicMock(status='ACTIVE', progress=None) mock_get = mock.Mock(side_effect=[resource, exceptions.NotFound(404)]) manager = mock.MagicMock(get=mock_get) res_id = str(uuid.uuid4()) callback = mock.Mock() self.assertTrue( utils.wait_for_delete(manager, res_id, callback=callback)) mock_sleep.assert_called_once_with(5) callback.assert_called_once_with(0)
def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: server_obj = utils.find_resource(compute_client.servers, server) compute_client.servers.delete(server_obj.id) if parsed_args.wait: if utils.wait_for_delete(compute_client.servers, server_obj.id, callback=_show_progress): sys.stdout.write("\n") else: self.log.error(_("Error deleting server: %s"), server_obj.id) sys.stdout.write(_("\nError deleting server")) raise SystemExit
def take_action(self, parsed_args): self.log.debug('take_action(%s)', parsed_args) compute_client = self.app.client_manager.compute for server in parsed_args.servers: server_obj = utils.find_resource(compute_client.servers, server) compute_client.servers.delete(server_obj.id) if parsed_args.wait: if utils.wait_for_delete( compute_client.servers, server_obj.id, callback=_show_progress, ): sys.stdout.write('\n') else: self.log.error(_('Error deleting server: %s'), server_obj.id) sys.stdout.write(_('\nError deleting server')) raise SystemExit return
def take_action(self, parsed_args): self.log.debug('take_action(%s)', parsed_args) compute_client = self.app.client_manager.compute for server in parsed_args.servers: server_obj = utils.find_resource( compute_client.servers, server) compute_client.servers.delete(server_obj.id) if parsed_args.wait: if utils.wait_for_delete( compute_client.servers, server_obj.id, callback=_show_progress, ): sys.stdout.write('\n') else: self.log.error(_('Error deleting server: %s'), server_obj.id) sys.stdout.write(_('\nError deleting server')) raise SystemExit return
from asg import nova_client,ASG_NAME import os import signal from openstackclient.common import utils f = open(ASG_NAME, 'r') content = f.readlines() if content: pid = content[0] os.kill(int(pid), signal.SIGTERM) for i in range(1:len(content)): server = nova_client.servers.find(id=content[i]) notify_LB_remove(server) nova_client.servers.delete(content[i]) utils.wait_for_delete(nova_client.servers, content[i]) print 'ok'