Example #1
0
 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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)