Loading services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py +17 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,17 @@ from ..core.sign_certificate import sign_certificate from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case TOTAL_FEATURES = 2 SUPPORTED_FEATURES_HEX = "0" def return_negotiated_supp_feat_dict(supp_feat): final_supp_feat = bin(int(supp_feat, 16) & int(SUPPORTED_FEATURES_HEX, 16))[2:].zfill(TOTAL_FEATURES)[::-1] return { "PatchUpdate": True if final_supp_feat[0] == "1" else False, "RNAA": True if final_supp_feat[1] == "1" else False, "Final": hex(int(final_supp_feat[::-1], 2))[2:] } class ProviderManagementOperations(Resource): class ProviderManagementOperations(Resource): def __check_api_provider_domain(self, api_prov_dom_id): def __check_api_provider_domain(self, api_prov_dom_id): Loading Loading @@ -50,6 +61,9 @@ class ProviderManagementOperations(Resource): api_provider_enrolment_details.api_prov_dom_id = secrets.token_hex( api_provider_enrolment_details.api_prov_dom_id = secrets.token_hex( 15) 15) negotiated_supported_features = return_negotiated_supp_feat_dict(api_provider_enrolment_details.supp_feat) api_provider_enrolment_details.supp_feat = negotiated_supported_features["Final"] current_app.logger.debug("Generating certs to api prov funcs") current_app.logger.debug("Generating certs to api prov funcs") for api_provider_func in api_provider_enrolment_details.api_prov_funcs: for api_provider_func in api_provider_enrolment_details.api_prov_funcs: Loading Loading @@ -136,6 +150,9 @@ class ProviderManagementOperations(Resource): if isinstance(result, Response): if isinstance(result, Response): return result return result negotiated_supported_features = return_negotiated_supp_feat_dict(api_provider_enrolment_details.supp_feat) api_provider_enrolment_details.supp_feat = negotiated_supported_features["Final"] for func in api_provider_enrolment_details.api_prov_funcs: for func in api_provider_enrolment_details.api_prov_funcs: if func.api_prov_func_id is None: if func.api_prov_func_id is None: func.api_prov_func_id = func.api_prov_func_role + \ func.api_prov_func_id = func.api_prov_func_role + \ Loading Loading
services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py +17 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,17 @@ from ..core.sign_certificate import sign_certificate from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case TOTAL_FEATURES = 2 SUPPORTED_FEATURES_HEX = "0" def return_negotiated_supp_feat_dict(supp_feat): final_supp_feat = bin(int(supp_feat, 16) & int(SUPPORTED_FEATURES_HEX, 16))[2:].zfill(TOTAL_FEATURES)[::-1] return { "PatchUpdate": True if final_supp_feat[0] == "1" else False, "RNAA": True if final_supp_feat[1] == "1" else False, "Final": hex(int(final_supp_feat[::-1], 2))[2:] } class ProviderManagementOperations(Resource): class ProviderManagementOperations(Resource): def __check_api_provider_domain(self, api_prov_dom_id): def __check_api_provider_domain(self, api_prov_dom_id): Loading Loading @@ -50,6 +61,9 @@ class ProviderManagementOperations(Resource): api_provider_enrolment_details.api_prov_dom_id = secrets.token_hex( api_provider_enrolment_details.api_prov_dom_id = secrets.token_hex( 15) 15) negotiated_supported_features = return_negotiated_supp_feat_dict(api_provider_enrolment_details.supp_feat) api_provider_enrolment_details.supp_feat = negotiated_supported_features["Final"] current_app.logger.debug("Generating certs to api prov funcs") current_app.logger.debug("Generating certs to api prov funcs") for api_provider_func in api_provider_enrolment_details.api_prov_funcs: for api_provider_func in api_provider_enrolment_details.api_prov_funcs: Loading Loading @@ -136,6 +150,9 @@ class ProviderManagementOperations(Resource): if isinstance(result, Response): if isinstance(result, Response): return result return result negotiated_supported_features = return_negotiated_supp_feat_dict(api_provider_enrolment_details.supp_feat) api_provider_enrolment_details.supp_feat = negotiated_supported_features["Final"] for func in api_provider_enrolment_details.api_prov_funcs: for func in api_provider_enrolment_details.api_prov_funcs: if func.api_prov_func_id is None: if func.api_prov_func_id is None: func.api_prov_func_id = func.api_prov_func_role + \ func.api_prov_func_id = func.api_prov_func_role + \ Loading