def test_secret_set_name(self): name = "yoname" type = "secret" mount_path = "/path/on/container" secret_name = "yosecret" secret = utils.create_secret(name=secret_name) config = utils.create_config() vol = K8sVolume(config=config, name=name, type=type, mount_path=mount_path) vol.set_secret_name(secret) self.assertEqual(vol.model.secret_name, secret_name)
def test_secret_set_name_invalid_type(self): name = "yoname" type = "emptyDir" mount_path = "/path/on/container" secret_name = "yosecret" secret = utils.create_secret(name=secret_name) config = utils.create_config() vol = K8sVolume(config=config, name=name, type=type, mount_path=mount_path) with self.assertRaises(SyntaxError): vol.set_secret_name(secret)
def test_rc_secret(self): container_name = "nginx" container_image = "nginx:1.7.9" container_nginx = utils.create_container(name=container_name, image=container_image) container_name = "redis" container_image = "redis:3.0.7" container_redis = utils.create_container(name=container_name, image=container_image) secret_name = "yosecret" secret = utils.create_secret(name=secret_name) k = ".secret-file" v = "dmFsdWUtMg0KDQo=" secret.set_data(k, v) vol_name = "secret" vol_type = "secret" vol_mount = "/test-secret" volume = utils.create_volume(name=vol_name, type=vol_type, mount_path=vol_mount) volume.set_secret_name(secret) container_nginx.add_volume_mount(volume) container_redis.add_volume_mount(volume) rc_name = "app" rc = utils.create_rc(name=rc_name) rc.add_volume(volume) rc.add_container(container_nginx) rc.add_container(container_redis) rc.set_replicas(1) if utils.is_reachable(rc.config.api_host): secret.create() rc.create() vols = rc.model.model['spec']['template']['spec']['volumes'] volnames = [x['name'] for x in vols] self.assertIn(vol_name, volnames) vols = rc.model.pod_spec.model['volumes'] volnames = [x['name'] for x in vols] self.assertIn(vol_name, volnames) self.assertEqual(2, len(rc.model.model['spec']['template']['spec']['containers'])) mounts = rc.model.model['spec']['template']['spec']['containers'][0]['volumeMounts'] mountnames = [x['name'] for x in mounts] self.assertIn(vol_name, mountnames) self.assertEqual(2, len(rc.model.pod_spec.model['containers'])) mounts = rc.model.pod_spec.model['containers'][0]['volumeMounts'] mountnames = [x['name'] for x in mounts] self.assertIn(vol_name, mountnames)
def test_pod_secret(self): container_name = "nginx" container_image = "nginx:1.7.9" container = utils.create_container(name=container_name, image=container_image) secret_name = "yosecret" secret = utils.create_secret(name=secret_name) k = ".secret-file" v = "dmFsdWUtMg0KDQo=" secret.set_data(k, v) vol_name = "secret" vol_type = "secret" vol_mount = "/test-secret" volume = utils.create_volume(name=vol_name, type=vol_type, mount_path=vol_mount) volume.set_secret_name(secret) container.add_volume_mount(volume) pod_name = "nginx" pod = utils.create_pod(name=pod_name) pod.add_volume(volume) pod.add_container(container) if utils.is_reachable(pod.config.api_host): secret.create() pod.create() vols = pod.model.model['spec']['volumes'] volnames = [x['name'] for x in vols] self.assertIn(vol_name, volnames) vols = pod.model.pod_spec.model['volumes'] volnames = [x['name'] for x in vols] self.assertIn(vol_name, volnames) self.assertEqual(1, len(pod.model.model['spec']['containers'])) mounts = pod.model.model['spec']['containers'][0]['volumeMounts'] mountnames = [x['name'] for x in mounts] self.assertIn(vol_name, mountnames) self.assertEqual(1, len(pod.model.pod_spec.model['containers'])) mounts = pod.model.pod_spec.model['containers'][0]['volumeMounts'] mountnames = [x['name'] for x in mounts] self.assertIn(vol_name, mountnames)
def post(self, *args, **kwargs): if 'user' not in kwargs or args: self.raise401() grant_type = self.get_argument('grant_type', None) response_type = self.get_argument('response_type', None) redirect_uris = self.get_argument('redirect_uris', None) app_name = self.get_argument('app_name', None) description = self.get_argument('description', None) website = self.get_argument('website', None) try: user = kwargs['user'] client_id = create_id() client_secret = create_secret() grant_type = grant_type or 'authorization_code' response_type = response_type or 'code' # todo scopes default_scopes = ['tasks', 'projects', 'repos', 'users', 'teams'] scopes = default_scopes redirect_uris = parse_listed_strs(redirect_uris) # todo default default_redirect_uri = redirect_uris[0] if redirect_uris else '' client = Client( client_id=client_id, client_secret=client_secret, user=user, grant_type=grant_type, response_type=response_type, scopes=scopes, default_scopes=default_scopes, redirect_uris=redirect_uris, default_redirect_uri=default_redirect_uri, website=website, app_name=app_name, description=description) client.save() client_data = document_to_json(client, filter_set=_FILTER) self.set_status(201) self.write(client_data) except Exception as e: reason = e.message self.raise400(reason=reason)