def test_normal_machine_recycle(self): from consuela import Consuela from job import Job from worker import Worker cleaner = Consuela() cleaner.job_pub_sub = mock.MagicMock() cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}] worker = Worker(None, None) worker.instance = 'some' cleaner.get_worker = mock.MagicMock() cleaner.get_worker.return_value = 'id', worker cleaner.client = mock.MagicMock() cleaner.client.exists.return_value = True cleaner.client.get.return_value = pickle.dumps( Job('finished', 'something')) cleaner.settings = mock.MagicMock() cleaner.settings.recycle_workers = True cleaner.recycle_worker = mock.MagicMock() cleaner.recycle_worker.return_value = True cleaner.run() assert cleaner.client.exists.call_count == 1 assert cleaner.client.get.call_count == 1 assert pickle.loads( cleaner.client.set.call_args_list[0][0][1]).job_id is None
def test_failed_job_machine_removal(self): from consuela import Consuela from job import Job from worker import Worker with mock.patch('consuela.terminate_worker') as worker_mock: cleaner = Consuela() cleaner.job_pub_sub = mock.MagicMock() cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}] worker = Worker(None, None) worker.instance = 'some' cleaner.get_worker = mock.MagicMock() cleaner.get_worker.return_value = 'id', worker cleaner.client = mock.MagicMock() cleaner.client.exists.return_value = True cleaner.client.get.return_value = pickle.dumps( Job('failed', 'something')) cleaner.settings = mock.MagicMock() cleaner.settings.recycle_workers = True cleaner.recycle_worker = mock.MagicMock() cleaner.recycle_worker.return_value = False cleaner.run() assert cleaner.client.exists.call_count == 1 assert worker_mock.call_count == 0
def test_no_job_machine_removal(self): from consuela import Consuela from worker import Worker with mock.patch('consuela.terminate_worker') as worker_mock: cleaner = Consuela() cleaner.job_pub_sub = mock.MagicMock() cleaner.job_pub_sub.listen.return_value = [{'data': 'test'}] worker = Worker(None, None) worker.instance = 'some' cleaner.get_worker = mock.MagicMock() cleaner.get_worker.return_value = 'id', worker cleaner.client = mock.MagicMock() cleaner.client.exists.return_value = False cleaner.run() assert cleaner.client.exists.call_count == 1 assert worker_mock.call_count == 1
from repository import AmiRepository from machine_midwife import MachineMidwife from consuela import Consuela app = Flask(__name__) auto = Autodoc(app) app.config['REPOSITORY'] = AmiRepository() if not os.path.exists('/tmp/store'): os.mkdir('/tmp/store') app.config['MM'] = MachineMidwife() app.config['MM'].start() app.config['CSU'] = Consuela() app.config['CSU'].start() def __get_amis__(): repository = app.config['REPOSITORY'] return Response(dumps(repository.get_all_amis()), mimetype='application/json') def __get_ami_status__(aid): status = aws.get_status(aid) if status: return Response(dumps(str(status)), mimetype='application/json') raise ApplicationException('Could not get status for %s' % aid)