Пример #1
0
    def __call__(self, pl):
        pl.debug('Running powerline-kubernetes')

        self.pl = pl

	try:
            context = K8sConfig().current_context
	    namespace = K8sConfig().namespace
        except Exception as e:
            pl.error(e)
            return

        return self.build_segments(context,namespace)
Пример #2
0
 def test_init_api_host_valid_hostname_no_port(self):
     host = "yo-mama.com"
     config = K8sConfig(
         kubeconfig=None,
         api_host=host
     )
     self.assertIn(host, config.api_host)
Пример #3
0
 def test_get_by_name_nonexistent(self):
     name = "yopod-{0}".format(str(uuid.uuid4()))
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     if _utils.is_reachable(config):
         pods = K8sPod.get_by_name(config=config, name=name)
         self.assertIsInstance(pods, list)
         self.assertEqual(0, len(pods))
Пример #4
0
 def test_init_with_test_kubeconfig(self):
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     self.assertIsNotNone(config)
     self.assertIsInstance(config, K8sConfig)
     if config.api_host is not None:
         self.assertIsInstance(config.api_host, str)
     if config.auth is not None:
         self.assertIsInstance(config.auth, tuple)
     if config.ca_cert is not None:
         self.assertIsInstance(config.ca_cert, str)
     if config.ca_cert_data is not None:
         self.assertIsInstance(config.ca_cert_data, str)
     if config.cert is not None:
         self.assertIsInstance(config.cert, tuple)
     if config.client_certificate is not None:
         self.assertIsInstance(config.client_certificate, str)
     if config.client_key is not None:
         self.assertIsInstance(config.client_key, str)
     if config.clusters is not None:
         self.assertIsInstance(config.clusters, list)
     if config.contexts is not None:
         self.assertIsInstance(config.contexts, list)
     if config.current_context is not None:
         self.assertIsInstance(config.current_context, str)
     if config.preferences is not None:
         self.assertIsInstance(config.preferences, dict)
     if config.pull_secret is not None:
         self.assertIsInstance(config.pull_secret, str)
     if config.users is not None:
         self.assertIsInstance(config.users, list)
     if config.version is not None:
         self.assertIsInstance(config.version, str)
Пример #5
0
 def test_init_version(self):
     v = "v1"
     config = K8sConfig(
         kubeconfig=None,
         version=v
     )
     self.assertEqual(v, config.version)
Пример #6
0
 def test_init_token(self):
     token = "yomama"
     config = K8sConfig(
         kubeconfig=None,
         token=token
     )
     self.assertEqual(token, config.token)
Пример #7
0
 def test_init_with_config_and_pull_secrets(self):
     ps = [{'name': 'yomama'}]
     name = "sofat"
     cfg = K8sConfig(kubeconfig=utils.kubeconfig_fallback, pull_secret=ps)
     pod = utils.create_pod(config=cfg, name=name)
     self.assertIsNotNone(pod.config)
     self.assertEqual(ps, pod.config.pull_secret)
Пример #8
0
 def test_init_pull_secret(self):
     ps = [{'name': "yomama"}]
     config = K8sConfig(
         kubeconfig=None,
         pull_secret=ps
     )
     self.assertEqual(config.pull_secret, ps)
Пример #9
0
 def test_init_namespace(self):
     namespace = "yomama"
     config = K8sConfig(
         kubeconfig=None,
         namespace=namespace
     )
     self.assertEqual(namespace, config.namespace)
Пример #10
0
 def test_init_auth(self):
     auth = ("yo", "mama")
     config = K8sConfig(
         kubeconfig=None,
         auth=auth
     )
     self.assertEqual(auth, config.auth)
Пример #11
0
 def test_get_by_labels_nonexistent(self):
     name = "yopod-{0}".format(str(uuid.uuid4()))
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     if utils.is_reachable(config.api_host):
         pods = K8sPod.get_by_labels(config=config, labels={'name': name})
         self.assertIsInstance(pods, list)
         self.assertEqual(0, len(pods))
Пример #12
0
 def test_init_valid_ip_no_port(self):
     host = "192.168.99.100"
     config = K8sConfig(
         kubeconfig=None,
         api_host=host
     )
     self.assertIn(host, config.api_host)
Пример #13
0
 def test_init_api_host_invalid_hostname(self):
     try:
         K8sConfig(
             kubeconfig=None,
             api_host="yo_mama:1234"
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #14
0
 def test_object_pod_create_unprocessable(self):
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     ot = "Pod"
     name = "yomama-{}".format(str(uuid.uuid4()))
     if config is not None and _utils.is_reachable(config):
         obj = _utils.create_object(config=config, name=name, obj_type=ot)
         with self.assertRaises(UnprocessableEntityException):
             obj.create()
Пример #15
0
 def test_object_secret_update(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     ot = "Secret"
     name = "yomama-{}".format(str(uuid.uuid4()))
     obj = utils.create_object(config=config, name=name, obj_type=ot)
     if config.api_host is not None and utils.is_reachable(config.api_host):
         obj.create()
         obj.update()
Пример #16
0
 def test_init_api_host_invalid_ip_address(self):
     try:
         K8sConfig(
             kubeconfig=None,
             api_host="192671.62671283.735.23322:1234"
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #17
0
 def test_object_rc_delete_not_found(self):
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     if config is not None and _utils.is_reachable(config):
         ot = "ReplicationController"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = _utils.create_object(config=config, name=name, obj_type=ot)
         with self.assertRaises(NotFoundException):
             obj.delete()
Пример #18
0
 def test_object_secret_create(self):
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     if config is not None and _utils.is_reachable(config):
         ot = "Secret"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = _utils.create_object(config=config, name=name, obj_type=ot)
         obj.create()
         self.assertIsInstance(obj, K8sObject)
Пример #19
0
 def test_object_service_create_unprocessable(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     if config.api_host is not None and utils.is_reachable(config.api_host):
         ot = "Service"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = utils.create_object(config=config, name=name, obj_type=ot)
         with self.assertRaises(UnprocessableEntityException):
             obj.create()
Пример #20
0
 def test_init_invalid_version(self):
     try:
         K8sConfig(
             kubeconfig=None,
             version="yomama"
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #21
0
 def test_object_secret_get_model_doesnt_exist(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     if config.api_host is not None and utils.is_reachable(config.api_host):
         ot = "Secret"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = utils.create_object(config=config, name=name, obj_type=ot)
         with self.assertRaises(NotFoundException):
             obj.get_model()
Пример #22
0
 def test_object_service_delete_not_found(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     ot = "Service"
     name = "yomama-{}".format(str(uuid.uuid4()))
     if config.api_host is not None and utils.is_reachable(config.api_host):
         obj = utils.create_object(config=config, name=name, obj_type=ot)
         with self.assertRaises(NotFoundException):
             obj.delete()
Пример #23
0
 def test_object_rc_list_from_scratch(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     if config.api_host is not None and utils.is_reachable(config.api_host):
         ot = "ReplicationController"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = utils.create_object(config=config, name=name, obj_type=ot)
         r = obj.list()
         self.assertIsNotNone(r)
         self.assertEqual(0, len(r))
Пример #24
0
 def test_init_invalid_auth(self):
     auth = "yomama"
     try:
         K8sConfig(
             kubeconfig=None,
             auth=auth
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #25
0
 def test_init_invalid_namespace(self):
     namespace = 666
     try:
         K8sConfig(
             kubeconfig=None,
             namespace=namespace
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #26
0
 def test_init_invalid_pull_secret(self):
     ps = 666
     try:
         K8sConfig(
             kubeconfig=None,
             pull_secret=ps
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #27
0
 def test_init_invalid_token(self):
     token = 666
     try:
         K8sConfig(
             kubeconfig=None,
             token=token
         )
     except Exception as err:
         self.assertIsInstance(err, SyntaxError)
Пример #28
0
 def test_server_version_no_kubeconfig(self):
     api_host = "127.0.0.1:8001"
     cfg = K8sConfig(kubeconfig=None, api_host=api_host)
     if _utils.is_reachable(cfg.api_host):
         container = _utils.create_container(name="nginx", image="nginx:latest")
         cj = _utils.create_cronjob(config=cfg, name="test")
         cj.add_container(container)
         cj.create()
         self.assertIsInstance(cj, K8sCronJob)
Пример #29
0
 def test_object_pod_list_from_scratch(self):
     config = K8sConfig(kubeconfig=_utils.kubeconfig_fallback)
     if _utils.is_reachable(config):
         ot = "Pod"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = _utils.create_object(config=config, name=name, obj_type=ot)
         r = obj.list()
         self.assertIsNotNone(r)
         self.assertEqual(0, len(r))
Пример #30
0
 def test_object_get_with_params_nonexistent(self):
     config = K8sConfig(kubeconfig=utils.kubeconfig_fallback)
     if config.api_host is not None and utils.is_reachable(config.api_host):
         ot = "Pod"
         name = "yomama-{}".format(str(uuid.uuid4()))
         obj = utils.create_object(config=config, name=name, obj_type=ot)
         data = {'yokey': 'yovalue'}
         r = obj.get_with_params(data)
         self.assertIsNotNone(r)
         self.assertEqual(0, len(r))