コード例 #1
0
ファイル: test_client.py プロジェクト: jamesgetx/bk-bcs-saas
 def test_failed(self, project_id, cluster_id):
     cluster = CtxCluster.create(cluster_id, project_id, token='token')
     querier = BcsAPIEnvironmentQuerier(cluster)
     with StubPaaSCCClient.get_cluster.mock(
             return_value=fake_cc_get_cluster_result_failed):
         with pytest.raises(ComponentError):
             assert querier.do()
コード例 #2
0
ファイル: test_pod.py プロジェクト: ielgnaw/bk-bcs-saas
 def common_patch(self):
     ctx_cluster = CtxCluster.create(TEST_CLUSTER_ID, TEST_PROJECT_ID, token='token')
     Pod(ctx_cluster).update_or_create(
         namespace=TEST_NAMESPACE, name=self.pod_name, body=gen_pod_body(self.pod_name)
     )
     yield
     Pod(ctx_cluster).delete(namespace=TEST_NAMESPACE, name=self.pod_name)
コード例 #3
0
 def test_create_nonexistent(self, common_patch):
     """ 测试获取不存在的命名空间(触发创建逻辑) """
     client = Namespace(
         CtxCluster.create(TEST_CLUSTER_ID, TEST_PROJECT_ID, token='token'))
     ret = client.get_or_create_cc_namespace(self.namespace_for_test,
                                             'admin')
     assert ret == {'name': self.namespace_for_test, 'namespace_id': 2}
     client.delete(name=self.namespace_for_test)
コード例 #4
0
ファイル: test_client.py プロジェクト: jamesgetx/bk-bcs-saas
    def test_normal(self, project_id, cluster_id):
        cluster = CtxCluster.create(cluster_id, project_id, token='token')
        querier = BcsAPIEnvironmentQuerier(cluster)
        with StubPaaSCCClient.get_cluster.mock(
                return_value=fake_cc_get_cluster_result_ok):
            api_env_name = querier.do()

        assert api_env_name == 'my_stag'
コード例 #5
0
def make_cluster_configuration(access_token: str, project_id: str,
                               cluster_id: str) -> Dict:
    ctx_cluster = CtxCluster.create(
        id=cluster_id,
        project_id=project_id,
        token=access_token,
    )
    return BcsKubeConfigurationService(ctx_cluster).make_configuration()
コード例 #6
0
ファイル: kube_client.py プロジェクト: jamesgetx/bk-bcs-saas
def generate_api_client(access_token: str, project_id: str,
                        cluster_id: str) -> ApiClient:
    """ 根据指定参数,生成 api_client """
    ctx_cluster = CtxCluster.create(id=cluster_id,
                                    project_id=project_id,
                                    token=access_token)
    config = BcsKubeConfigurationService(ctx_cluster).make_configuration()
    return ApiClient(config,
                     header_name='X-BKAPI-AUTHORIZATION',
                     header_value=json.dumps({"access_token": access_token}))
コード例 #7
0
 def common_patch(self, patch_get_dynamic_client):
     ctx_cluster = CtxCluster.create(TEST_CLUSTER_ID,
                                     TEST_PROJECT_ID,
                                     token='token')
     Deployment(ctx_cluster).update_or_create(namespace=TEST_NAMESPACE,
                                              name=self.deployment_name,
                                              body=gen_deployment_body(
                                                  self.deployment_name))
     yield
     Deployment(ctx_cluster).delete(namespace=TEST_NAMESPACE,
                                    name=self.deployment_name)
コード例 #8
0
ファイル: test_client.py プロジェクト: jamesgetx/bk-bcs-saas
    def test_make_configuration(self, project_id, cluster_id):
        cluster = CtxCluster.create(cluster_id, project_id, token='token')
        config_service = BcsKubeConfigurationService(cluster)

        faked_credentials = {
            'server_address_path': '/example-foo-cluster',
            'user_token': 'faked-foo-token'
        }
        with StubBcsApiClient.get_cluster_credentials.mock(
                return_value=faked_credentials):
            config = config_service.make_configuration()

        assert config.host == 'https://my-stag-bcs-server.example.com/example-foo-cluster'
        assert config.api_key[
            'authorization'] == f'Bearer {faked_credentials["user_token"]}'
コード例 #9
0
def get_dynamic_client(access_token: str, project_id: str,
                       cluster_id: str) -> CoreDynamicClient:
    """根据 token、cluster_id 等参数,构建访问 Kubernetes 集群的 Client 对象"""
    cluster = CtxCluster.create(id=cluster_id,
                                project_id=project_id,
                                token=access_token)
    config = BcsKubeConfigurationService(cluster).make_configuration()
    # TODO 考虑集群可能升级k8s版本的情况, 缓存文件会失效
    discoverer_cache = DiscovererCache(cache_key=f"osrcp-{cluster_id}.json")
    api_client = client.ApiClient(config,
                                  header_name='X-BKAPI-AUTHORIZATION',
                                  header_value=json.dumps(
                                      {"access_token": access_token}))
    return CoreDynamicClient(api_client,
                             cache_file=discoverer_cache,
                             discoverer=BcsLazyDiscoverer)
コード例 #10
0
 def test_get_existed(self, common_patch):
     """ 测试获取已经存在的命名空间 """
     client = Namespace(
         CtxCluster.create(TEST_CLUSTER_ID, TEST_PROJECT_ID, token='token'))
     ret = client.get_or_create_cc_namespace('default', 'admin')
     assert ret == {'name': 'default', 'namespace_id': 1}
コード例 #11
0
def ctx_cluster(project_id, cluster_id):
    return CtxCluster.create(cluster_id, project_id, token='token')