def setup_pod(self, name=None, namespace='default', metadata=None, spec=None, labels=None, custom_isolation = False, fq_network_name = {}, **kwargs): name = name or get_random_name('pod') metadata = metadata or {} spec = spec or {} labels = labels or {} metadata['name'] = metadata.get('name') or name if labels: metadata['labels'] = metadata.get('labels', {}) metadata['labels'].update(labels) return self.useFixture(PodFixture( connections=self.connections, namespace=namespace, metadata=metadata, spec=spec, custom_isolation = custom_isolation, fq_network_name = fq_network_name, **kwargs))
class SharedResources(with_metaclass(Singleton, object)): def __init__(self, connections): self.connections = connections self.setUp() def setUp(self): try: self.ns1 = NamespaceFixture(connections=self.connections, name="new-default") self.ns1.setUp() self.ns2 = NamespaceFixture(connections=self.connections, name="non-default") self.ns2.setUp() self.ns3 = NamespaceFixture(connections=self.connections, name="temp-ns") self.ns3.setUp() self.ns1.set_labels({'site': self.ns1.name}) self.ns2.set_labels({'site': self.ns2.name}) self.ns3.set_labels({'new_site': self.ns3.name}) web_label_ns1, web_label_ns2 = 'webns1', 'webns2' client1_label_ns1, client1_label_ns2, client1_label_ns3 = 'client1_ns1', 'client1_ns2', 'client1_ns3' client2_label_ns1, client2_label_ns2, client2_label_ns3 = 'client2_ns1', 'client2_ns2', 'client2_ns3' client3_label_ns3 = 'client3_ns3' nginx_spec_1 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_spec_2 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_metadata_ns1 = {'labels': {'app': web_label_ns1}} nginx_metadata_ns2 = {'labels': {'app': web_label_ns2}} self.web_pod_ns1 = PodFixture(connections=self.connections, namespace=self.ns1.name, metadata=nginx_metadata_ns1, spec=nginx_spec_1) self.web_pod_ns1.setUp() self.web_pod_ns2 = PodFixture(connections=self.connections, namespace=self.ns2.name, metadata=nginx_metadata_ns2, spec=nginx_spec_2) self.web_pod_ns2.setUp() busybox_spec_1 = { 'containers': [{ 'image': 'busybox', 'command': ['sleep', '1000000'], 'image_pull_policy': 'IfNotPresent', }], 'restart_policy': 'Always' } busybox_spec_2 = dict(busybox_spec_1) busybox_spec_3 = dict(busybox_spec_1) busybox_spec_4 = dict(busybox_spec_1) busybox_spec_5 = dict(busybox_spec_1) busybox_spec_6 = dict(busybox_spec_1) busybox_spec_7 = dict(busybox_spec_1) busybox_metadata_c1_ns1 = { 'labels': { 'app': client1_label_ns1 } } busybox_metadata_c1_ns2 = { 'labels': { 'app': client1_label_ns2 } } busybox_metadata_c1_ns3 = { 'labels': { 'app': client1_label_ns3 } } busybox_metadata_c2_ns1 = { 'labels': { 'app': client2_label_ns1 } } busybox_metadata_c2_ns2 = { 'labels': { 'app': client2_label_ns2 } } busybox_metadata_c2_ns3 = { 'labels': { 'app': client2_label_ns3 } } busybox_metadata_c3_ns3 = { 'labels': { 'app': client3_label_ns3 } } self.client1_pod_ns1 = PodFixture( connections=self.connections, namespace=self.ns1.name, metadata=busybox_metadata_c1_ns1, spec=busybox_spec_1) self.client1_pod_ns1.setUp() self.client2_pod_ns1 = PodFixture( connections=self.connections, namespace=self.ns1.name, metadata=busybox_metadata_c2_ns1, spec=busybox_spec_2) self.client2_pod_ns1.setUp() self.client1_pod_ns2 = PodFixture( connections=self.connections, namespace=self.ns2.name, metadata=busybox_metadata_c1_ns2, spec=busybox_spec_3) self.client1_pod_ns2.setUp() self.client2_pod_ns2 = PodFixture( connections=self.connections, namespace=self.ns2.name, metadata=busybox_metadata_c2_ns2, spec=busybox_spec_4) self.client2_pod_ns2.setUp() self.client1_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c1_ns3, spec=busybox_spec_5) self.client1_pod_ns3.setUp() self.client2_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c2_ns3, spec=busybox_spec_6) self.client2_pod_ns3.setUp() self.client3_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c3_ns3, spec=busybox_spec_7) self.client3_pod_ns3.setUp() assert self.ns1.verify_on_setup() assert self.ns2.verify_on_setup() assert self.ns3.verify_on_setup() assert self.web_pod_ns1.verify_on_setup() assert self.web_pod_ns2.verify_on_setup() assert self.client1_pod_ns1.verify_on_setup() assert self.client1_pod_ns2.verify_on_setup() assert self.client1_pod_ns3.verify_on_setup() assert self.client2_pod_ns1.verify_on_setup() assert self.client2_pod_ns2.verify_on_setup() assert self.client2_pod_ns3.verify_on_setup() assert self.client3_pod_ns3.verify_on_setup() except: self.cleanUp() raise def cleanUp(self): cleanup_list = list() if getattr(self, 'web_pod_ns1', None): cleanup_list.append(gevent.spawn(self.web_pod_ns1.cleanUp)) if getattr(self, 'web_pod_ns2', None): cleanup_list.append(gevent.spawn(self.web_pod_ns2.cleanUp)) if getattr(self, 'client1_pod_ns1', None): cleanup_list.append(gevent.spawn(self.client1_pod_ns1.cleanUp)) if getattr(self, 'client2_pod_ns1', None): cleanup_list.append(gevent.spawn(self.client2_pod_ns1.cleanUp)) if getattr(self, 'client1_pod_ns2', None): cleanup_list.append(gevent.spawn(self.client1_pod_ns2.cleanUp)) if getattr(self, 'client2_pod_ns2', None): cleanup_list.append(gevent.spawn(self.client2_pod_ns2.cleanUp)) if getattr(self, 'client1_pod_ns3', None): cleanup_list.append(gevent.spawn(self.client1_pod_ns3.cleanUp)) if getattr(self, 'client2_pod_ns3', None): cleanup_list.append(gevent.spawn(self.client2_pod_ns3.cleanUp)) if getattr(self, 'client3_pod_ns3', None): cleanup_list.append(gevent.spawn(self.client3_pod_ns3.cleanUp)) gevent.joinall(cleanup_list) if getattr(self, 'ns1', None): self.ns1.cleanUp() if getattr(self, 'ns2', None): self.ns2.cleanUp() if getattr(self, 'ns3', None): self.ns3.cleanUp()
def setUp(self): try: self.ns1 = NamespaceFixture(connections=self.connections, name="new-default") self.ns1.setUp() self.ns2 = NamespaceFixture(connections=self.connections, name="non-default") self.ns2.setUp() self.ns3 = NamespaceFixture(connections=self.connections, name="temp-ns") self.ns3.setUp() self.ns1.set_labels({'site': self.ns1.name}) self.ns2.set_labels({'site': self.ns2.name}) self.ns3.set_labels({'new_site': self.ns3.name}) web_label_ns1, web_label_ns2 = 'webns1', 'webns2' client1_label_ns1, client1_label_ns2, client1_label_ns3 = 'client1_ns1', 'client1_ns2', 'client1_ns3' client2_label_ns1, client2_label_ns2, client2_label_ns3 = 'client2_ns1', 'client2_ns2', 'client2_ns3' client3_label_ns3 = 'client3_ns3' nginx_spec_1 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_spec_2 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_metadata_ns1 = {'labels': {'app': web_label_ns1}} nginx_metadata_ns2 = {'labels': {'app': web_label_ns2}} self.web_pod_ns1 = PodFixture(connections=self.connections, namespace=self.ns1.name, metadata=nginx_metadata_ns1, spec=nginx_spec_1) self.web_pod_ns1.setUp() self.web_pod_ns2 = PodFixture(connections=self.connections, namespace=self.ns2.name, metadata=nginx_metadata_ns2, spec=nginx_spec_2) self.web_pod_ns2.setUp() busybox_spec_1 = { 'containers': [{ 'image': 'busybox', 'command': ['sleep', '1000000'], 'image_pull_policy': 'IfNotPresent', }], 'restart_policy': 'Always' } busybox_spec_2 = dict(busybox_spec_1) busybox_spec_3 = dict(busybox_spec_1) busybox_spec_4 = dict(busybox_spec_1) busybox_spec_5 = dict(busybox_spec_1) busybox_spec_6 = dict(busybox_spec_1) busybox_spec_7 = dict(busybox_spec_1) busybox_metadata_c1_ns1 = { 'labels': { 'app': client1_label_ns1 } } busybox_metadata_c1_ns2 = { 'labels': { 'app': client1_label_ns2 } } busybox_metadata_c1_ns3 = { 'labels': { 'app': client1_label_ns3 } } busybox_metadata_c2_ns1 = { 'labels': { 'app': client2_label_ns1 } } busybox_metadata_c2_ns2 = { 'labels': { 'app': client2_label_ns2 } } busybox_metadata_c2_ns3 = { 'labels': { 'app': client2_label_ns3 } } busybox_metadata_c3_ns3 = { 'labels': { 'app': client3_label_ns3 } } self.client1_pod_ns1 = PodFixture( connections=self.connections, namespace=self.ns1.name, metadata=busybox_metadata_c1_ns1, spec=busybox_spec_1) self.client1_pod_ns1.setUp() self.client2_pod_ns1 = PodFixture( connections=self.connections, namespace=self.ns1.name, metadata=busybox_metadata_c2_ns1, spec=busybox_spec_2) self.client2_pod_ns1.setUp() self.client1_pod_ns2 = PodFixture( connections=self.connections, namespace=self.ns2.name, metadata=busybox_metadata_c1_ns2, spec=busybox_spec_3) self.client1_pod_ns2.setUp() self.client2_pod_ns2 = PodFixture( connections=self.connections, namespace=self.ns2.name, metadata=busybox_metadata_c2_ns2, spec=busybox_spec_4) self.client2_pod_ns2.setUp() self.client1_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c1_ns3, spec=busybox_spec_5) self.client1_pod_ns3.setUp() self.client2_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c2_ns3, spec=busybox_spec_6) self.client2_pod_ns3.setUp() self.client3_pod_ns3 = PodFixture( connections=self.connections, namespace=self.ns3.name, metadata=busybox_metadata_c3_ns3, spec=busybox_spec_7) self.client3_pod_ns3.setUp() assert self.ns1.verify_on_setup() assert self.ns2.verify_on_setup() assert self.ns3.verify_on_setup() assert self.web_pod_ns1.verify_on_setup() assert self.web_pod_ns2.verify_on_setup() assert self.client1_pod_ns1.verify_on_setup() assert self.client1_pod_ns2.verify_on_setup() assert self.client1_pod_ns3.verify_on_setup() assert self.client2_pod_ns1.verify_on_setup() assert self.client2_pod_ns2.verify_on_setup() assert self.client2_pod_ns3.verify_on_setup() assert self.client3_pod_ns3.verify_on_setup() except: self.cleanUp() raise
def setUpClass(cls): super(TestNetworkPolicyRestart, cls).setUpClass() try: cls.ns1 = NamespaceFixture(connections=cls.connections, name="new-default") cls.ns1.setUp() cls.ns2 = NamespaceFixture(connections=cls.connections, name="non-default") cls.ns2.setUp() cls.ns3 = NamespaceFixture(connections=cls.connections, name="temp-ns") cls.ns3.setUp() #cls.ns1.set_labels({'project': cls.ns1.name}) cls.ns1.set_labels({'site': cls.ns1.name}) cls.ns2.set_labels({'site': cls.ns2.name}) cls.ns3.set_labels({'new_site': cls.ns3.name}) web_label_ns1, web_label_ns2 = 'webns1', 'webns2' client1_label_ns1, client1_label_ns2, client1_label_ns3 = 'client1_ns1', 'client1_ns2', 'client1_ns3' client2_label_ns1, client2_label_ns2, client2_label_ns3 = 'client2_ns1', 'client2_ns2', 'client2_ns3' client3_label_ns3 = 'client3_ns3' nginx_spec_1 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_spec_2 = { 'containers': [{ 'image': 'nginx', 'ports': [{ 'container_port': 80 }] }] } nginx_metadata_ns1 = {'labels': {'app': web_label_ns1}} nginx_metadata_ns2 = {'labels': {'app': web_label_ns2}} cls.web_pod_ns1 = PodFixture(connections=cls.connections, namespace=cls.ns1.name, metadata=nginx_metadata_ns1, spec=nginx_spec_1) cls.web_pod_ns1.setUp() cls.web_pod_ns2 = PodFixture(connections=cls.connections, namespace=cls.ns2.name, metadata=nginx_metadata_ns2, spec=nginx_spec_2) cls.web_pod_ns2.setUp() busybox_spec_1 = { 'containers': [{ 'image': 'busybox', 'command': ['sleep', '1000000'], 'image_pull_policy': 'IfNotPresent', }], 'restart_policy': 'Always' } busybox_spec_2 = dict(busybox_spec_1) busybox_spec_3 = dict(busybox_spec_1) busybox_spec_4 = dict(busybox_spec_1) busybox_spec_5 = dict(busybox_spec_1) busybox_spec_6 = dict(busybox_spec_1) busybox_spec_7 = dict(busybox_spec_1) busybox_metadata_c1_ns1 = {'labels': {'app': client1_label_ns1}} busybox_metadata_c1_ns2 = {'labels': {'app': client1_label_ns2}} busybox_metadata_c1_ns3 = {'labels': {'app': client1_label_ns3}} busybox_metadata_c2_ns1 = {'labels': {'app': client2_label_ns1}} busybox_metadata_c2_ns2 = {'labels': {'app': client2_label_ns2}} busybox_metadata_c2_ns3 = {'labels': {'app': client2_label_ns3}} busybox_metadata_c3_ns3 = {'labels': {'app': client3_label_ns3}} cls.client1_pod_ns1 = PodFixture(connections=cls.connections, namespace=cls.ns1.name, metadata=busybox_metadata_c1_ns1, spec=busybox_spec_1) cls.client1_pod_ns1.setUp() cls.client2_pod_ns1 = PodFixture(connections=cls.connections, namespace=cls.ns1.name, metadata=busybox_metadata_c2_ns1, spec=busybox_spec_2) cls.client2_pod_ns1.setUp() cls.client1_pod_ns2 = PodFixture(connections=cls.connections, namespace=cls.ns2.name, metadata=busybox_metadata_c1_ns2, spec=busybox_spec_3) cls.client1_pod_ns2.setUp() cls.client2_pod_ns2 = PodFixture(connections=cls.connections, namespace=cls.ns2.name, metadata=busybox_metadata_c2_ns2, spec=busybox_spec_4) cls.client2_pod_ns2.setUp() cls.client1_pod_ns3 = PodFixture(connections=cls.connections, namespace=cls.ns3.name, metadata=busybox_metadata_c1_ns3, spec=busybox_spec_5) cls.client1_pod_ns3.setUp() cls.client2_pod_ns3 = PodFixture(connections=cls.connections, namespace=cls.ns3.name, metadata=busybox_metadata_c2_ns3, spec=busybox_spec_6) cls.client2_pod_ns3.setUp() cls.client3_pod_ns3 = PodFixture(connections=cls.connections, namespace=cls.ns3.name, metadata=busybox_metadata_c3_ns3, spec=busybox_spec_7) cls.client3_pod_ns3.setUp() assert cls.ns1.verify_on_setup() assert cls.ns2.verify_on_setup() assert cls.ns3.verify_on_setup() assert cls.web_pod_ns1.verify_on_setup() assert cls.web_pod_ns2.verify_on_setup() assert cls.client1_pod_ns1.verify_on_setup() assert cls.client1_pod_ns2.verify_on_setup() assert cls.client1_pod_ns3.verify_on_setup() assert cls.client2_pod_ns1.verify_on_setup() assert cls.client2_pod_ns2.verify_on_setup() assert cls.client2_pod_ns3.verify_on_setup() assert cls.client3_pod_ns3.verify_on_setup() except: cls.tearDownClass() raise