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()))
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)
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()))