Esempio n. 1
0
    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'}}}
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
    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")
Esempio n. 7
0
    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')
Esempio n. 8
0
    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"}}}
Esempio n. 9
0
    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, {})
Esempio n. 10
0
    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')])
Esempio n. 11
0
    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')])