Пример #1
0
 def test_remove_inter_dep(self):
     '''Test ability to remove a dependency in a subgraph'''
     group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s2 = Service('beta')
     s3 = Service('lambda')
     group.add_inter_dep(target=s1)
     group.add_inter_dep(target=s2)
     group.add_inter_dep(target=s3)
     group.add_inter_dep(base=s1, target=s3)
     group.add_inter_dep(base=s2, target=s3)
     group.remove_inter_dep('lambda')
     self.assertTrue(s1.has_parent_dep('sink'))
     self.assertTrue(s2.has_parent_dep('sink'))
     self.assertTrue(s1.has_child_dep('source'))
     self.assertTrue(s2.has_child_dep('source'))
     self.assertFalse(s1.has_parent_dep('lambda'))
     self.assertFalse(s2.has_parent_dep('lambda'))
     group.remove_inter_dep('alpha')
     self.assertFalse(group._source.has_parent_dep('alpha'))
     self.assertTrue(group._source.has_parent_dep('beta'))
     self.assertFalse(group._sink.has_child_dep('alpha'))
     self.assertTrue(group._sink.has_child_dep('beta'))
     group.remove_inter_dep('beta')
     self.assertFalse(group._source.parents)
     self.assertFalse(group._sink.children)
Пример #2
0
 def test_remove_inter_dep(self):
     '''Test ability to remove a dependency in a subgraph'''
     group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s2 = Service('beta')
     s3 = Service('lambda')
     group.add_inter_dep(target=s1)
     group.add_inter_dep(target=s2)
     group.add_inter_dep(target=s3)
     group.add_inter_dep(base=s1, target=s3)
     group.add_inter_dep(base=s2, target=s3)
     group.remove_inter_dep('lambda')
     self.assertTrue(s1.has_parent_dep('sink'))
     self.assertTrue(s2.has_parent_dep('sink'))
     self.assertTrue(s1.has_child_dep('source'))
     self.assertTrue(s2.has_child_dep('source'))
     self.assertFalse(s1.has_parent_dep('lambda'))
     self.assertFalse(s2.has_parent_dep('lambda'))
     group.remove_inter_dep('alpha')
     self.assertFalse(group._source.has_parent_dep('alpha'))
     self.assertTrue(group._source.has_parent_dep('beta'))
     self.assertFalse(group._sink.has_child_dep('alpha'))
     self.assertTrue(group._sink.has_child_dep('beta'))
     group.remove_inter_dep('beta')
     self.assertFalse(group._source.parents)
     self.assertFalse(group._sink.children)
Пример #3
0
 def test_add_inter_dep_service_group_second(self):
     '''Test ability to add dependencies to the subgraph N2'''
     group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s2 = Service('beta')
     s3 = Service('lambda')
     group.add_inter_dep(target=s1)
     group.add_inter_dep(base=s1, target=s2)
     group.add_inter_dep(target=s3)
     group.add_inter_dep(base=s1, target=s3)
     self.assertTrue(s1.has_parent_dep('beta'))
     self.assertTrue(s1.has_parent_dep('lambda'))
     self.assertTrue(s1.has_child_dep('source'))
     self.assertTrue(s2.has_child_dep('alpha'))
     self.assertTrue(s3.has_child_dep('alpha'))
     self.assertTrue(s2.has_parent_dep('sink'))
     self.assertTrue(s3.has_parent_dep('sink'))
Пример #4
0
 def test_add_inter_dep_service_group_second(self):
     '''Test ability to add dependencies to the subgraph N2'''
     group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s2 = Service('beta')
     s3 = Service('lambda')
     group.add_inter_dep(target=s1)
     group.add_inter_dep(base=s1, target=s2)
     group.add_inter_dep(target=s3)
     group.add_inter_dep(base=s1, target=s3)
     self.assertTrue(s1.has_parent_dep('beta'))
     self.assertTrue(s1.has_parent_dep('lambda'))
     self.assertTrue(s1.has_child_dep('source'))
     self.assertTrue(s2.has_child_dep('alpha'))
     self.assertTrue(s3.has_child_dep('alpha'))
     self.assertTrue(s2.has_parent_dep('sink'))
     self.assertTrue(s3.has_parent_dep('sink'))
Пример #5
0
 def test_forget_service(self):
     '''The how the manager forgets a service properly'''
     manager = service_manager_self()
     s1 = Service('S1')
     s2 = Service('S2')
     s3 = Service('S3')
     s4 = Service('S4')
     s1.add_dep(target=s2)
     s2.add_dep(target=s3)
     s2.add_dep(target=s4)
     manager.register_services(s1, s2, s3, s4)
     manager.forget_service(s1)
     self.assertFalse(manager.has_service(s1))
     self.assertFalse(s1.has_parent_dep('S2'))
     self.assertFalse(s2.has_child_dep('S1'))
     manager.forget_services(s2, s4)
     self.assertFalse(manager.has_service(s2))
     self.assertFalse(manager.has_service(s4))
     self.assertFalse(s4.has_child_dep('S3'))
     self.assertFalse(s3.has_parent_dep('S4'))
Пример #6
0
 def test_add_dep_service_group(self):
     '''Test ability to add dependencies to a ServiceGroup'''
     ser_group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s1.add_action(Action('start', HOSTNAME, '/bin/true'))
     s2 = Service('beta')
     s2.add_action(Action('action', HOSTNAME, '/bin/true'))
     s3 = Service('lambda')
     ser_group.add_inter_dep(target=s1)
     ser_group.add_inter_dep(target=s2)
     ser_group.add_dep(target=s3)
     self.assertTrue(ser_group.has_action('start'))
     self.assertTrue(ser_group.has_action('action'))
     self.assertTrue(s1.name in ser_group._source.parents)
     self.assertTrue(s1.name in ser_group._sink.children)
     self.assertTrue(s2.name in ser_group._source.parents)
     self.assertTrue(s2.name in ser_group._sink.children)
     self.assertFalse(s3.name in ser_group.children)
     self.assertTrue(s3.name in ser_group.parents)
     s4 = Service('theta')
     s4.add_action(Action('fire', HOSTNAME, '/bin/true'))
     ser_group.add_dep(target=s4, parent=False)
     self.assertTrue(s4.name in ser_group.children)
     self.assertTrue(s4.has_parent_dep(ser_group.name))
Пример #7
0
 def test_add_dep_service_group(self):
     '''Test ability to add dependencies to a ServiceGroup'''
     ser_group = ServiceGroup('GROUP')
     s1 = Service('alpha')
     s1.add_action(Action('start', HOSTNAME, '/bin/true'))
     s2 = Service('beta')
     s2.add_action(Action('action', HOSTNAME, '/bin/true'))
     s3 = Service('lambda')
     ser_group.add_inter_dep(target=s1)
     ser_group.add_inter_dep(target=s2)
     ser_group.add_dep(target=s3)
     self.assertTrue(ser_group.has_action('start'))
     self.assertTrue(ser_group.has_action('action'))
     self.assertTrue(s1.name in ser_group._source.parents)
     self.assertTrue(s1.name in ser_group._sink.children)
     self.assertTrue(s2.name in ser_group._source.parents)
     self.assertTrue(s2.name in ser_group._sink.children)
     self.assertFalse(s3.name in ser_group.children)
     self.assertTrue(s3.name in ser_group.parents)
     s4 = Service('theta')
     s4.add_action(Action('fire', HOSTNAME,'/bin/true'))
     ser_group.add_dep(target=s4, parent=False)
     self.assertTrue(s4.name in ser_group.children)
     self.assertTrue(s4.has_parent_dep(ser_group.name))