Esempio n. 1
0
    def test_sequenced_behaviors(self):
        """
        Cause a sequence of behaviors, and succeeds on 201.  When a test case
        is provided for which a cleanup should be added, delete is added as
        a cleanup.
        """
        criteria = [{"server_name": "name_criteria_.*"}]
        behaviors = [{"name": "behavior name", "parameters": {"behavior": "params"}}]

        _treq = get_fake_treq(
            self,
            "POST",
            "mimicnovaurl/behaviors/some_event",
            (
                (json.dumps({"criteria": criteria, "name": "sequence", "parameters": {"behaviors": behaviors}}),),
                self.expected_kwargs,
            ),
            (Response(201), '{"id": "behavior_id"}'),
        )

        test_case = _get_fake_test_case(_treq, self.delete_treq)

        mimic_nova = MimicNova(pool=self.pool, test_case=test_case, treq=_treq)
        d = mimic_nova.sequenced_behaviors(self.rcs, criteria, behaviors, event_description="some_event")
        self.assertEqual("behavior_id", self.successResultOf(d))

        self.assertEqual("successfully deleted behavior", self.successResultOf(test_case.cleanup()))
Esempio n. 2
0
 def test_pause_stops_convergence(self):
     """
     Pausing a group will stop any further convergence cycle. We do this by
     1. Setup mimic to build server for just before timeout
     2. Creating a group with 1 min entity
     3. Pause the group
     4. Wait for server to finish building in mimic
     5. Notice that group continues to think that server is building
     """
     mimic_nova = MimicNova(pool=self.helper.pool, test_case=self)
     server_build_time = convergence_interval + 5
     yield mimic_nova.sequenced_behaviors(
         self.rcs,
         criteria=[{"server_name": "pause-stops-convergence" + ".*"}],
         behaviors=[
             {"name": "build",
              "parameters": {"duration": server_build_time}}
         ])
     group, _ = self.helper.create_group(min_entities=1)
     yield group.start(self.rcs, self)
     one_building = ContainsDict({"pendingCapacity": Equals(1),
                                  "activeCapacity": Equals(0),
                                  "desiredCapacity": Equals(1),
                                  "status": Equals("ACTIVE")})
     yield self.helper.assert_group_state(group, one_building)
     yield group.pause(self.rcs)
     # Wait for server to build and few more convergence cycles after that
     yield sleep(reactor,
                 server_build_time + convergence_interval * 2)
     # The group still thinks that server is building
     yield self.helper.assert_group_state(group, one_building)
     returnValue(group)
Esempio n. 3
0
 def test_delete_behavior(self):
     """
     Delete an existing behavior.
     """
     d = MimicNova(pool=self.pool, treq=self.delete_treq).delete_behavior(
         self.rcs, "behavior_id", event_description="some_event")
     self.assertEqual('successfully deleted behavior',
                      self.successResultOf(d))
Esempio n. 4
0
    def test_sequenced_behaviors(self):
        """
        Cause a sequence of behaviors, and succeeds on 201.  When a test case
        is provided for which a cleanup should be added, delete is added as
        a cleanup.
        """
        criteria = [{"server_name": "name_criteria_.*"}]
        behaviors = [{
            'name': "behavior name",
            'parameters': {
                "behavior": "params"
            }
        }]

        _treq = get_fake_treq(self, 'POST',
                              "mimicnovaurl/behaviors/some_event",
                              ((json.dumps({
                                  'criteria': criteria,
                                  'name': "sequence",
                                  'parameters': {
                                      "behaviors": behaviors
                                  }
                              }), ), self.expected_kwargs),
                              (Response(201), '{"id": "behavior_id"}'))

        test_case = _get_fake_test_case(_treq, self.delete_treq)

        mimic_nova = MimicNova(pool=self.pool, test_case=test_case, treq=_treq)
        d = mimic_nova.sequenced_behaviors(self.rcs,
                                           criteria,
                                           behaviors,
                                           event_description="some_event")
        self.assertEqual("behavior_id", self.successResultOf(d))

        self.assertEqual("successfully deleted behavior",
                         self.successResultOf(test_case.cleanup()))
Esempio n. 5
0
    def test_change_server_statuses(self):
        """
        Change server statuses calls the right endpoint and succeeds on 201.
        """
        _treq = get_fake_treq(
            self, 'POST', "mimicnovaurl/attributes",
            ((json.dumps({'status': {
                'id1': 'ERROR',
                'id2': 'DELETED'
            }}), ), self.expected_kwargs),
            (Response(201), "successful change response"))

        d = MimicNova(pool=self.pool, treq=_treq).change_server_statuses(
            self.rcs, {
                'id1': 'ERROR',
                'id2': 'DELETED'
            })
        self.assertEqual('successful change response', self.successResultOf(d))