def setUp(self) -> None: load_dotenv() self.config_file = os.environ.get('TEST_KUBE_CONFIG_FILE') self.name = os.environ.get('TEST_KUBE_NAMESPACE') self.cluster = Cluster(default_namespace=self.name, config_file=self.config_file) self._ = Namespace(name=self.name, cluster=self.cluster)
class Delete_Pending_Pods: def __init__(self, namespace, config_file): self.cluster = Cluster(namespace=namespace, config_file=config_file) def delete_pods(self): deleted_pods = [] for pod in self.cluster.pods_pending(): pod_name = pod.get('name') if self.cluster.pod(pod_name=pod_name).delete(): deleted_pods.append(pod_name) else: print(f'Error: failed to delete pod {pod_name}') return deleted_pods
class test_Namespace(TestCase): def setUp(self) -> None: load_dotenv() self.config_file = os.environ.get('TEST_KUBE_CONFIG_FILE') self.name = os.environ.get('TEST_KUBE_NAMESPACE') self.cluster = Cluster(default_namespace=self.name, config_file=self.config_file) self._ = Namespace(name=self.name, cluster=self.cluster) def test__init__(self): assert file_exists(self.config_file) assert self._.name == self.name #def test_create(self): # pass # see test_create__delete def test_create__delete(self): namespace = Namespace(random_id(prefix='unit-test-'), cluster=self.cluster) assert namespace.exists() is False assert namespace.info() == {} assert namespace.create().get('message') == 'namespace created' assert namespace.exists() is True assert namespace.info().get('status').phase == 'Active' assert self.cluster.namespaces_names().index(namespace.name) > -1 assert namespace.delete().get('message') == 'namespace deleted' assert namespace.info().get('status').phase == 'Terminating'
def setUpClass(cls) -> None: cls.pod_name = 'temp-pod' cls.image_name = 'nginx' cls.pod_manifest = Manifest().pod_simple(cls.pod_name, cls.image_name) cls.cluster = Cluster() cls.pod = Pod(name=cls.pod_name, cluster=cls.cluster) cls.pod_info = cls.pod.create(cls.pod_manifest)
class test_Kubectl(TestCase): def setUp(self): self.cluster = Cluster() if self.cluster.load_config() is False: skip('no K8 clusters available in current environment') print() @pytest.mark.skip('refactor into a new Deployment class') def test_deployment(self): deployment_file = path_combine('../../test_files/deployment', 'nginx-deployment.yaml') assert file_exists(deployment_file) deployment = yaml_load(deployment_file) resp = self.cluster.api_apps().create_namespaced_deployment( body=deployment, namespace="default") print("Deployment created. status='%s'" % resp.metadata.name) def test_namespaces(self): assert len(self.cluster.namespaces()) > 0 def test_namespaces_infos(self): namespaces = self.cluster.namespaces_infos(index_by='name') assert 'default' in namespaces assert namespaces.get('default').get('name') == 'default' assert namespaces.get('default').get('status').phase == 'Active' def test_pods(self): assert type(self.cluster.pods()) is list def test_pods_all(self): assert len(self.cluster.pods_all()) > 0
class Start_Adaptation_Pods: def __init__(self, namespace, config_file): self.cluster = Cluster(default_namespace=namespace, config_file=config_file) self.image_name = 'nginx' self.name_prefix = 'temp-pods' def create_pods(self, count): pods = [] for i in range(0, count): pod = self.create_pod() pods.append(pod) return pods def create_pod(self): pod_name = append_random_string(self.name_prefix) pod_manifest = self.get_manifest(pod_name) pod = self.cluster.pod_create(name=pod_name, manifest=pod_manifest).get('pod') return pod def delete_pods(self): deleted_pods = [] for pod in self.cluster.pods(): pod_name = pod.name if pod_name.startswith(self.name_prefix): deleted_pods.append(pod_name) return deleted_pods def list_pods(self): return self.cluster.pods() def get_manifest(self, pod_name): return Manifest().pod_simple(pod_name, self.image_name) def setup(self): self.cluster.namespace().create() # make sure test namespace exists return self
def setUp(self): self.cluster = Cluster() if self.cluster.load_config() is False: skip('no K8 clusters available in current environment') print()
def __init__(self, namespace, config_file): self.cluster = Cluster(default_namespace=namespace, config_file=config_file) self.image_name = 'nginx' self.name_prefix = 'temp-pods'
def test_check_pods(self): cluster = Cluster(namespace=self.namespace, config_file=self.config_file) pprint(cluster.pod('adaptation-service-7c5b5b9548-2vb5w').info())
def __init__(self, namespace, config_file): self.cluster = Cluster(namespace=namespace, config_file=config_file)