def setUp(self): """ Mock a fake supervisor, and also a fake log and group. """ self.transaction_id = 'transaction_id' self.job_id = 'job_id' patch(self, 'otter.supervisor.generate_job_id', return_value=self.job_id) self.state = GroupState('tenant', 'group', 'name', {}, {}, None, {}, False, ScalingGroupStatus.ACTIVE) self.group = mock_group(self.state, 'tenant', 'group') self.supervisor = iMock(ISupervisor) self.supervisor.deferred_pool = DeferredPool() self.completion_deferred = Deferred() self.supervisor.execute_config.return_value = self.completion_deferred self.log = mock_log() self.job = supervisor._Job(self.log, self.transaction_id, self.group, self.supervisor) self.del_job = patch(self, 'otter.supervisor._DeleteJob') self.mock_launch = {'type': 'launch_server', 'args': {'server': {'imageRef': 'imageID', 'flavorRef': '1'}}}
def setUp(self): self.tenant_id = 'tenant-id' self.group_id = 'group-id' self.state = GroupState(self.tenant_id, self.group_id, 'group-name', {}, {}, None, {}, False, ScalingGroupStatus.ACTIVE, desired=2) self.group = mock_group(self.state, self.tenant_id, self.group_id) self.lc = {'args': {'server': {'name': 'foo'}, 'loadBalancers': []}} self.desired_lbs = s(CLBDescription(lb_id='23', port=80)) self.servers = ( server('a', ServerState.ACTIVE, servicenet_address='10.0.0.1', desired_lbs=self.desired_lbs, links=freeze([{'href': 'link1', 'rel': 'self'}])), server('b', ServerState.ACTIVE, servicenet_address='10.0.0.2', desired_lbs=self.desired_lbs, links=freeze([{'href': 'link2', 'rel': 'self'}])) ) self.state_active = {} self.cache = [thaw(self.servers[0].json), thaw(self.servers[1].json)] self.gsgi = GetScalingGroupInfo(tenant_id='tenant-id', group_id='group-id') self.manifest = { # Many details elided! 'state': self.state, 'launchConfiguration': self.lc, } self.gsgi_result = (self.group, self.manifest) self.now = datetime(1970, 1, 1)
def setUp(self): """ Sample group, collection and dispatcher """ self.log = mock_log().bind(base_log=True) self.state = GroupState('tid', 'gid', 'g', {}, {}, None, {}, True, ScalingGroupStatus.ACTIVE) self.group = mock_group(self.state)
def setUp(self): """ Sample group, collection and dispatcher """ self.log = mock_log().bind(base_log=True) self.state = GroupState('tid', 'gid', 'g', {}, {}, None, {}, True, ScalingGroupStatus.ACTIVE) self.group = mock_group(self.state)
def setUp(self): """ Fake supervisor, group and state """ self.tid = 'trans_id' self.log = mock_log() self.state = GroupState('tid', 'gid', 'g', {'s0': {'id': 's0'}}, {}, None, None, None, desired=1) self.group = mock_group(self.state) self.gen_jobid = patch(self, 'otter.supervisor.generate_job_id', return_value='jid') self.supervisor = FakeSupervisor() set_supervisor(self.supervisor) self.addCleanup(set_supervisor, None)
def setUp(self): """ Fake supervisor, group and state """ self.tid = "trans_id" self.log = mock_log() self.state = GroupState( "tid", "gid", "g", {"s0": {"id": "s0"}}, {}, None, None, None, ScalingGroupStatus.ACTIVE, desired=1 ) self.group = mock_group(self.state) self.gen_jobid = patch(self, "otter.supervisor.generate_job_id", return_value="jid") self.supervisor = FakeSupervisor() set_supervisor(self.supervisor) self.addCleanup(set_supervisor, None) self.group.view_config.return_value = succeed({"minEntities": 0}) self.group.view_launch_config.return_value = succeed("launch")
def setUp(self): """ Fake supervisor, group and state """ self.tid = 'trans_id' self.log = mock_log() self.state = GroupState('tid', 'gid', 'g', {'s0': {'id': 's0'}}, {}, None, None, None, ScalingGroupStatus.ACTIVE, desired=1) self.group = mock_group(self.state) self.gen_jobid = patch(self, 'otter.supervisor.generate_job_id', return_value='jid') self.supervisor = FakeSupervisor() set_supervisor(self.supervisor) self.addCleanup(set_supervisor, None) self.group.view_config.return_value = succeed({'minEntities': 0}) self.group.view_launch_config.return_value = succeed('launch')
def setUp(self): """ Mock a fake supervisor, and also a fake log and group. """ self.transaction_id = "transaction_id" self.job_id = "job_id" patch(self, "otter.supervisor.generate_job_id", return_value=self.job_id) self.state = GroupState("tenant", "group", "name", {}, {}, None, {}, False, ScalingGroupStatus.ACTIVE) self.group = mock_group(self.state, "tenant", "group") self.supervisor = iMock(ISupervisor) self.supervisor.deferred_pool = DeferredPool() self.completion_deferred = Deferred() self.supervisor.execute_config.return_value = self.completion_deferred self.log = mock_log() self.job = supervisor._Job(self.log, self.transaction_id, self.group, self.supervisor) self.del_job = patch(self, "otter.supervisor._DeleteJob") self.mock_launch = {"type": "launch_server", "args": {"server": {"imageRef": "imageID", "flavorRef": "1"}}}
def setUp(self): """ Mock the interface :return: None """ self.mock_store = iMock(IScalingGroupCollection) # mock out modify state self.mock_state = mock.MagicMock(spec=[]) # so nothing can call it self.mock_group = mock_group(self.mock_state, '11111', 'one') self.mock_store.get_scaling_group.return_value = self.mock_group self.mock_generate_transaction_id = patch( self, 'otter.rest.decorators.generate_transaction_id', return_value='transaction-id') self.otter = Otter(self.mock_store, 'ord') self.root = self.otter.app.resource() # set pagination limits as it'll be used by all rest interfaces set_config_data({'limits': {'pagination': 100}, 'url_root': ''}) self.addCleanup(set_config_data, {})
def test_perform_eviction(self): """ Call supervisor's scrub metadata function. """ supervisor = FakeSupervisor() set_supervisor(supervisor) self.addCleanup(set_supervisor, None) log, group = (object(), mock_group(None)) intent = EvictServerFromScalingGroup( log=log, transaction_id='transaction_id', scaling_group=group, server_id='server_id') r = sync_perform( TypeDispatcher({ EvictServerFromScalingGroup: partial( perform_evict_server, supervisor) }), Effect(intent)) self.assertIsNone(r) self.assertEqual( supervisor.scrub_calls, [(log, "transaction_id", group.tenant_id, 'server_id')])
def test_perform_eviction(self): """ Call supervisor's scrub metadata function. """ supervisor = FakeSupervisor() set_supervisor(supervisor) self.addCleanup(set_supervisor, None) log, group = (object(), mock_group(None)) intent = EvictServerFromScalingGroup(log=log, transaction_id='transaction_id', scaling_group=group, server_id='server_id') r = sync_perform( TypeDispatcher({ EvictServerFromScalingGroup: partial(perform_evict_server, supervisor) }), Effect(intent)) self.assertIsNone(r) self.assertEqual( supervisor.scrub_calls, [(log, "transaction_id", group.tenant_id, 'server_id')])