def org_vdc_list(data, operation_context: ctx.OperationContext): """Request handler for org vdc list operation. This handler returns a paginated response. :return: Dictionary containing paginated response with Org VDC runtime info :rtype: dict """ query_params = data.get(RequestKey.QUERY_PARAMS, {}) page_number = int( query_params.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) page_size = int( query_params.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) result = ovdc_service.list_org_vdcs(operation_context, page_number=page_number, page_size=page_size) # remove duplicate /api path while forming the endpoint url base_uri = f"{operation_context.client.get_api_uri().strip('/api')}{data['url']}" # noqa: E501 return server_utils.create_links_and_construct_paginated_result( base_uri, result[PaginationKey.VALUES], result[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size)
def cluster_acl_info(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster acl list operation.""" rde_in_use = server_utils.get_rde_version_in_use() # Redirect to generic handler if the backend supports RDE-2.0 if semantic_version.Version(rde_in_use) >= semantic_version.Version( rde_constants.RDEVersion.RDE_2_0_0.value): # noqa: E501 return cluster_handler.cluster_acl_info(data=data, op_ctx=op_ctx) svc = cluster_service_factory.ClusterServiceFactory(op_ctx). \ get_cluster_service(rde_in_use) cluster_id = data[RequestKey.CLUSTER_ID] query = data.get(RequestKey.QUERY_PARAMS, {}) page = int( query.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) # noqa: E501 page_size = int( query.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # noqa: E501 result: dict = svc.get_cluster_acl_info(cluster_id, page, page_size) uri = f"{op_ctx.client.get_api_uri().strip('/api')}{data['url']}" return server_utils.create_links_and_construct_paginated_result( base_uri=uri, values=result.get(PaginationKey.VALUES, []), result_total=result.get(PaginationKey.RESULT_TOTAL, 0), page_number=page, page_size=page_size)
def cluster_acl_info(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster acl list operation.""" cluster_id = data[RequestKey.CLUSTER_ID] def_entity_service = entity_service.DefEntityService( op_ctx.cloudapi_client) # noqa: E501 def_entity = def_entity_service.get_entity(cluster_id) rde_utils.raise_error_if_tkgm_cluster_operation( def_entity.entity.kind) # noqa: E501 query = data.get(RequestKey.QUERY_PARAMS, {}) page = int( query.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) # noqa: E501 page_size = int( query.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # noqa: E501 op_ctx.entity_id = data[ RequestKey.CLUSTER_ID] # hack for passing entity id # noqa: E501 svc = cluster_service_factory.ClusterServiceFactory( _get_request_context(op_ctx)).get_cluster_service() # noqa: E501 result: dict = svc.get_cluster_acl_info(cluster_id, page, page_size) # remove duplicate /api path while forming the endpoint url uri = f"{op_ctx.client.get_api_uri().strip('/api')}{data['url']}" return server_utils.create_links_and_construct_paginated_result( base_uri=uri, values=result.get(PaginationKey.VALUES, []), result_total=result.get(PaginationKey.RESULT_TOTAL, 0), page_number=page, page_size=page_size)
def native_cluster_list(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster list operation. :return: List """ svc = cluster_service_factory.ClusterServiceFactory(op_ctx).get_cluster_service() # noqa: E501 filters = data.get(RequestKey.QUERY_PARAMS, {}) page_number = int(filters.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) page_size = int(filters.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # remove page number and page size from the filters as it is treated # differently from other filters if PaginationKey.PAGE_NUMBER in filters: del filters[PaginationKey.PAGE_NUMBER] if PaginationKey.PAGE_SIZE in filters: del filters[PaginationKey.PAGE_SIZE] # response needs to paginated result = svc.get_clusters_by_page(filters=filters) clusters = [def_entity.to_dict() for def_entity in result[PaginationKey.VALUES]] # noqa: E501 uri = data['url'] return server_utils.create_links_and_construct_paginated_result( uri, clusters, result_total=result[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size, query_params=filters)
def org_vdc_list(data, operation_context: ctx.OperationContext): """Request handler for org vdc list operation. This handler returns a paginated response. :return: Dictionary containing paginated response with Org VDC runtime info :rtype: dict """ query_params = data.get(RequestKey.V35_QUERY, {}) page_number = int( query_params.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) page_size = int( query_params.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) result = ovdc_service.list_org_vdcs(operation_context, page_number=page_number, page_size=page_size) api_path = CseServerOperationInfo.V35_ORG_VDC_LIST.api_path_format base_uri = f"{operation_context.client.get_api_uri().strip('/')}{api_path}" return server_utils.create_links_and_construct_paginated_result( base_uri, result[PaginationKey.VALUES], result[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size)
def native_cluster_list(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster list operation. :return: List """ rde_in_use = server_utils.get_rde_version_in_use() # Redirect to generic handler if the backend supports RDE-2.0 if semantic_version.Version(rde_in_use) >= semantic_version.Version( rde_constants.RDEVersion.RDE_2_0_0.value): # noqa: E501 response_data: dict = cluster_handler.native_cluster_list( data=data, op_ctx=op_ctx) # noqa: E501 rde_list: list[dict] = response_data[PaginationKey.VALUES] formatted_rde_list = [ _convert_rde_to_1_0_format(rde_data) for rde_data in rde_list ] # noqa: E501 response_data[PaginationKey.VALUES] = formatted_rde_list return response_data svc = cluster_service_factory.ClusterServiceFactory(op_ctx). \ get_cluster_service(rde_in_use) filters = data.get(RequestKey.QUERY_PARAMS, {}) page_number = int( filters.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) page_size = int( filters.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # remove page number and page size from the filters as it is treated # differently from other filters if PaginationKey.PAGE_NUMBER in filters: del filters[PaginationKey.PAGE_NUMBER] if PaginationKey.PAGE_SIZE in filters: del filters[PaginationKey.PAGE_SIZE] # response needs to paginated result = svc.get_clusters_by_page(filters=filters) clusters = [ def_entity.to_dict() for def_entity in result[PaginationKey.VALUES] ] # noqa: E501 # remove duplicate /api path while forming the endpoint url uri = f"{op_ctx.client.get_api_uri().strip('/api')}{data['url']}" return server_utils.create_links_and_construct_paginated_result( uri, clusters, result_total=result[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size, query_params=filters)
def cluster_acl_info(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster acl list operation.""" svc = cluster_service_factory.ClusterServiceFactory(op_ctx).get_cluster_service() # noqa: E501 cluster_id = data[RequestKey.CLUSTER_ID] query = data.get(RequestKey.QUERY_PARAMS, {}) page = int(query.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) # noqa: E501 page_size = int(query.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # noqa: E501 result: dict = svc.get_cluster_acl_info(cluster_id, page, page_size) uri = data['url'] return server_utils.create_links_and_construct_paginated_result( base_uri=uri, values=result.get(PaginationKey.VALUES, []), result_total=result.get(PaginationKey.RESULT_TOTAL, 0), page_number=page, page_size=page_size)
def native_cluster_list(request_data, op_ctx: ctx.OperationContext): """Request handler for cluster list operation. Optional data and default values: org_name=None, ovdc_name=None (data validation handled in broker) :return: List """ vcd_broker = VcdBroker(op_ctx) query_params = request_data.get(RequestKey.QUERY_PARAMS, {}) page_number = int(query_params.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) # noqa: E501 page_size = int(query_params.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # noqa: E501 = query_params_others = {} for k, v in query_params.items(): if k not in [PaginationKey.PAGE_NUMBER, PaginationKey.PAGE_SIZE]: query_params_others[k] = v data = req_utils.flatten_request_data( request_data, [RequestKey.QUERY_PARAMS]) vcd_clusters_info = vcd_broker.get_clusters_by_page( data=data, page_number=page_number, page_size=page_size) properties_to_retain = [ 'name', 'vdc', 'status', 'org_name', 'k8s_version', K8S_PROVIDER_KEY ] clusters = vcd_clusters_info[PaginationKey.VALUES] result = _retain_cluster_list_common_properties(clusters, properties_to_retain) # remove duplicate /api path while forming the endpoint url base_url = f"{op_ctx.client.get_api_uri().strip('/api')}" \ f"{request_data['url']}" return server_utils.create_links_and_construct_paginated_result( base_url, result, vcd_clusters_info[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size, query_params=query_params_others)
def cluster_acl_info(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster acl list operation.""" rde_in_use = server_utils.get_rde_version_in_use() svc = cluster_service_factory.ClusterServiceFactory(op_ctx). \ get_cluster_service(rde_in_use) cluster_id = data[RequestKey.CLUSTER_ID] query = data.get(RequestKey.V35_QUERY, {}) page = int( query.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) # noqa: E501 page_size = int( query.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # noqa: E501 result: dict = svc.get_cluster_acl_info(cluster_id, page, page_size) api_path = CseServerOperationInfo.V35_CLUSTER_ACL_LIST.api_path_format % cluster_id # noqa: E501 uri = f"{op_ctx.client.get_api_uri().strip('/')}{api_path}" return server_utils.create_links_and_construct_paginated_result( base_uri=uri, values=result.get(PaginationKey.VALUES, []), result_total=result.get(PaginationKey.RESULT_TOTAL, 0), page_number=page, page_size=page_size)
def native_cluster_list(data: dict, op_ctx: ctx.OperationContext): """Request handler for cluster list operation. :return: List """ rde_in_use = server_utils.get_rde_version_in_use() svc = cluster_service_factory.ClusterServiceFactory(op_ctx). \ get_cluster_service(rde_in_use) filters = data.get(RequestKey.V35_QUERY, {}) page_number = int( filters.get(PaginationKey.PAGE_NUMBER, CSE_PAGINATION_FIRST_PAGE_NUMBER)) page_size = int( filters.get(PaginationKey.PAGE_SIZE, CSE_PAGINATION_DEFAULT_PAGE_SIZE)) # remove page number and page size from the filters as it is treated # differently from other filters if PaginationKey.PAGE_NUMBER in filters: del filters[PaginationKey.PAGE_NUMBER] if PaginationKey.PAGE_SIZE in filters: del filters[PaginationKey.PAGE_SIZE] # response needs to paginated result = svc.get_clusters_by_page(filters=filters) clusters = [ asdict(def_entity) for def_entity in result[PaginationKey.VALUES] ] # noqa: E501 api_path = CseServerOperationInfo.V35_NATIVE_CLUSTER_LIST.api_path_format uri = f"{op_ctx.client.get_api_uri().strip('/')}{api_path}" return server_utils.create_links_and_construct_paginated_result( uri, clusters, result_total=result[PaginationKey.RESULT_TOTAL], page_number=page_number, page_size=page_size, query_params=filters)