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'
Esempio n. 4
0
 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)
Esempio n. 5
0
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
Esempio n. 7
0
 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)