Commit 1bbcdabb authored by guillecxb's avatar guillecxb
Browse files

deletes invokers, providers and services working

parent 3a076240
Loading
Loading
Loading
Loading
+18 −17
Original line number Diff line number Diff line
@@ -23,6 +23,24 @@ def get_apis_pages_order():
    order = request.args.get('order', default="ascending", type=str)
    return operations.get_apis_pages_order(page, page_size, order)


# DELETE multiple apis
@apis_routes.route("/", methods=["DELETE"])
@jwt_required()
def delete_apis_route():
    try:
        apis = request.json.get('api', [])

        if not apis:
            return jsonify(message="No apis provided for delete."), 400

        responses = operations.delete_providers_services(apis)

        return jsonify(responses), 200

    except Exception as e:
        return jsonify(message="Error deleting apis", error=str(e)), 500

# # GET a JSON with all apis
@cross_origin()
@apis_routes.route("/apisTotal", methods=["GET"])
@@ -61,20 +79,3 @@ def get_num_apis():
#         return jsonify(response), status_code
#     except Exception as e:
#         return jsonify({"error": str(e)}), 500

# # DELETE multiple apis
# @apis_routes.route("/", methods=["DELETE"])
# @jwt_required()
# def delete_apis_route():
#     try:
#         apis = request.json.get('api', [])

#         if not apis:
#             return jsonify(message="No apis provided for delete."), 400

#         responses = operations.delete_providers_services(apis)

#         return jsonify(responses), 200

#     except Exception as e:
#         return jsonify(message="Error deleting apis", error=str(e)), 500
 No newline at end of file
+24 −23
Original line number Diff line number Diff line
@@ -23,6 +23,23 @@ def get_invokers_pages_order():
    order = request.args.get('order', default="ascending", type=str)
    return operations.get_invokers_pages_order(page, page_size, order)

# DELETE multiple invokers
@invokers_routes.route("/", methods=["DELETE"])
@jwt_required()
def delete_invokers_route():
    try:
        invoker_ids = request.json.get('invoker_ids', [])

        if not invoker_ids:
            return jsonify(message="No invoker IDs provided"), 400

        responses = operations.delete_invokers(invoker_ids)

        return jsonify(responses), 200

    except Exception as e:
        return jsonify(message="Error deleting invokers", error=str(e)), 500

# GET a JSON with all invokers
@cross_origin()
@invokers_routes.route("/invokersTotal", methods=["GET"])
@@ -81,27 +98,11 @@ def get_invoker_security_context(invoker_id):
    return operations.get_invoker_security_context(invoker_id)

# DELETE a single invoker
@cross_origin()
@invokers_routes.route("/<id>", methods=["DELETE"])
@jwt_required()
def delete_invoker(id):
    if id == "null":
        return jsonify(message="Invalid id", object=None), 400
    return operations.delete_invoker(id)
# @cross_origin()
# @invokers_routes.route("/<id>", methods=["DELETE"])
# @jwt_required()
# def delete_invoker(id):
#     if id == "null":
#         return jsonify(message="Invalid id", object=None), 400
#     return operations.delete_invoker(id)
# DELETE multiple invokers
@invokers_routes.route("/", methods=["DELETE"])
@jwt_required()
def delete_invokers_route():
    try:
        invoker_ids = request.json.get('invoker_ids', [])

        if not invoker_ids:
            return jsonify(message="No invoker IDs provided"), 400

        responses = operations.delete_invokers(invoker_ids)

        return jsonify(responses), 200

    except Exception as e:
        return jsonify(message="Error deleting invokers", error=str(e)), 500
 No newline at end of file
+17 −17
Original line number Diff line number Diff line
@@ -23,6 +23,23 @@ def get_providers_pages_order():
    order = request.args.get('order', default="ascending", type=str)
    return operations.get_providers_pages_order(page, page_size, order)

# DELETE multiple providers
@providers_routes.route("/", methods=["DELETE"])
@jwt_required()
def delete_providers_route():
    try:
        provider_ids = request.json.get('provider_ids', [])

        if not provider_ids:
            return jsonify(message="No provider IDs provided"), 400

        responses = operations.delete_providers(provider_ids)

        return jsonify(responses), 200

    except Exception as e:
        return jsonify(message="Error deleting providers", error=str(e)), 500

# # GET a JSON with all providers
@cross_origin()
@providers_routes.route("/providersTotal", methods=["GET"])
@@ -79,23 +96,6 @@ def get_num_providers():
#         return jsonify(message="Invalid id", object=None), 400
#     return operations.delete_provider(id)
    
# # DELETE multiple providers
# @providers_routes.route("/", methods=["DELETE"])
# @jwt_required()
# def delete_providers_route():
#     try:
#         provider_ids = request.json.get('provider_ids', [])

#         if not provider_ids:
#             return jsonify(message="No provider IDs provided"), 400

#         responses = operations.delete_providers(provider_ids)

#         return jsonify(responses), 200

#     except Exception as e:
#         return jsonify(message="Error deleting providers", error=str(e)), 500
    
# # DELETE a service from a provider
# @cross_origin()
# @providers_routes.route("/services/<apf_id>/<api_id>", methods=["DELETE"])
+101 −61
Original line number Diff line number Diff line
@@ -204,9 +204,11 @@ class Operations:
        except requests.exceptions.RequestException as e:
            return jsonify({"error": str(e)}), 500
        

    def delete_invokers(self, invoker_ids):
        try:
            responses = []
            response = None  # Inicializar la variable response

            for invoker_id in invoker_ids:
                if not invoker_id:
@@ -215,7 +217,7 @@ class Operations:

                url = 'https://{}/api-invoker-management/v1/onboardedInvokers/{}'.format(os.getenv('CAPIF_HOSTNAME'), invoker_id)
                response = requests.delete(url, cert=(
                    '/etc/ssl/certs/superadmin.cr',
                    '/etc/ssl/certs/superadmin.crt',
                    '/etc/ssl/private/superadmin.key'),
                    verify='/etc/ssl/certs/ca_root.crt')

@@ -227,7 +229,37 @@ class Operations:
            return responses

        except Exception as e:
            raise Exception("Error deleting invokers: " + response)
            error_message = str(e)
            if response is not None and hasattr(response, 'text'):
                error_message += " | Response content: " + response.text
            raise Exception("Error deleting invokers: " + error_message)

        
    # def delete_invokers(self, invoker_ids):
    #     try:
    #         responses = []
    #         response = None

    #         for invoker_id in invoker_ids:
    #             if not invoker_id:
    #                 responses.append({'invoker_id': None, 'message': 'Invalid invoker ID'})
    #                 continue
                
    #             url = 'https://{}/api-invoker-management/v1/onboardedInvokers/{}'.format(os.getenv('CAPIF_HOSTNAME'), invoker_id)
    #             response = requests.delete(url, cert=(
    #                 '/etc/ssl/certs/superadmin.cr',
    #                 '/etc/ssl/private/superadmin.key'),
    #                 verify='/etc/ssl/certs/ca_root.crt')

    #             if response.status_code == 204:
    #                 responses.append({'invoker_id': invoker_id, 'message': 'Invoker removed successfully'})
    #             else:
    #                 responses.append({'invoker_id': invoker_id, 'message': 'Failed to remove invoker'})

    #         return responses

    #     except Exception as e:
    #         raise Exception("Error deleting invokers: " + response)
        

    def get_num_invokers(self):
@@ -851,30 +883,30 @@ class Operations:
    #         return "Error request deleting invoker: ", e
        

    def delete_invokers(self, invoker_ids):
        try:
            responses = []
    # def delete_invokers(self, invoker_ids):
    #     try:
    #         responses = []

            for invoker_id in invoker_ids:
                if not invoker_id:
                    responses.append({'invoker_id': None, 'message': 'Invalid invoker ID'})
                    continue
    #         for invoker_id in invoker_ids:
    #             if not invoker_id:
    #                 responses.append({'invoker_id': None, 'message': 'Invalid invoker ID'})
    #                 continue
                
                url = 'https://{}/api-invoker-management/v1/onboardedInvokers/{}'.format(os.getenv('CAPIF_HOSTNAME'), invoker_id)
                response = requests.delete(url, cert=(
                    '/usr/src/app/backoffice_service/certs/backoffice_vault_cert.crt',
                    '/usr/src/app/backoffice_service/certs/backoffice_vault_private_key.key'),
                    verify='/usr/src/app/backoffice_service/certs/ca.crt')
    #             url = 'https://{}/api-invoker-management/v1/onboardedInvokers/{}'.format(os.getenv('CAPIF_HOSTNAME'), invoker_id)
    #             response = requests.delete(url, cert=(
    #                 '/usr/src/app/backoffice_service/certs/backoffice_vault_cert.crt',
    #                 '/usr/src/app/backoffice_service/certs/backoffice_vault_private_key.key'),
    #                 verify='/usr/src/app/backoffice_service/certs/ca.crt')

                if response.status_code == 204:
                    responses.append({'invoker_id': invoker_id, 'message': 'Invoker removed successfully'})
                else:
                    responses.append({'invoker_id': invoker_id, 'message': 'Failed to remove invoker'})
    #             if response.status_code == 204:
    #                 responses.append({'invoker_id': invoker_id, 'message': 'Invoker removed successfully'})
    #             else:
    #                 responses.append({'invoker_id': invoker_id, 'message': 'Failed to remove invoker'})

            return responses
    #         return responses

        except Exception as e:
            raise Exception("Error deleting invokers: " + str(e))
    #     except Exception as e:
    #         raise Exception("Error deleting invokers: " + str(e))
        
    # def delete_provider(self, provider_id):
    #     try:
@@ -891,30 +923,34 @@ class Operations:
    #     except Exception as e:
    #         return "Error request deleting provider: ", e
        
    # def delete_providers(self, provider_ids):
    #     try:
    #         responses = []
    def delete_providers(self, provider_ids):
        try:
            responses = []

    #         for provider_id in provider_ids:
    #             if not provider_id:
    #                 responses.append({'provider_id': None, 'message': 'Invalid provider ID'})
    #                 continue
            for provider_id in provider_ids:
                if not provider_id:
                    responses.append({'provider_id': None, 'message': 'Invalid provider ID'})
                    continue

    #             url = 'https://{}/api-provider-management/v1/registrations/{}'.format(os.getenv('CAPIF_HOSTNAME'), provider_id)
                url = 'https://{}/api-provider-management/v1/registrations/{}'.format(os.getenv('CAPIF_HOSTNAME'), provider_id)
                # response = requests.delete(url, cert=(
                #     '/usr/src/app/backoffice_service/certs/backoffice_vault_cert.crt',
                #     '/usr/src/app/backoffice_service/certs/backoffice_vault_private_key.key'),
                #     verify='/usr/src/app/backoffice_service/certs/ca.crt')
                response = requests.delete(url, cert=(
                    '/etc/ssl/certs/superadmin.crt',
                    '/etc/ssl/private/superadmin.key'),
                    verify='/etc/ssl/certs/ca_root.crt')

    #             if response.status_code == 204:
    #                 responses.append({'provider_id': provider_id, 'message': 'Provider removed successfully'})
    #             else:
    #                 responses.append({'provider_id': provider_id, 'message': 'Failed to remove provider'})
                if response.status_code == 204:
                    responses.append({'provider_id': provider_id, 'message': 'Provider removed successfully'})
                else:
                    responses.append({'provider_id': provider_id, 'message': 'Failed to remove provider'})

    #         return responses
            return responses

    #     except Exception as e:
    #         raise Exception("Error deleting provider: " + str(e))
        except Exception as e:
            raise Exception("Error deleting provider: " + str(e))
        
    # def delete_security_context(self, invoker_id, aef_id, api_id):
    #     try:
@@ -958,32 +994,36 @@ class Operations:
    #     except Exception as e:
    #         return "Error request deleting provider: ", e
        
    # # Delete API with Selector (more than one api at a time)
    # def delete_providers_services(self, apis):
    #     try:
    #         responses = []
    # Delete API with Selector (more than one api at a time)
    def delete_providers_services(self, apis):
        try:
            responses = []

    #         for api in apis:
    #             if not api:
    #                 responses.append({'api_id': api['api_id'], 'message': 'Invalid API.'})
    #                 continue
            for api in apis:
                if not api:
                    responses.append({'api_id': api['api_id'], 'message': 'Invalid API.'})
                    continue

    #             url = 'https://{}/published-apis/v1/{}/service-apis/{}'.format(os.getenv('CAPIF_HOSTNAME'), api['apf_id'], api['api_id'])
                url = 'https://{}/published-apis/v1/{}/service-apis/{}'.format(os.getenv('CAPIF_HOSTNAME'), api['apf_id'], api['api_id'])

                # response = requests.delete(url, cert=(
                #     '/usr/src/app/backoffice_service/certs/backoffice_vault_cert.crt',
                #     '/usr/src/app/backoffice_service/certs/backoffice_vault_private_key.key'),
                #     verify='/usr/src/app/backoffice_service/certs/ca.crt')
                response = requests.delete(url, cert=(
                    '/etc/ssl/certs/superadmin.crt',
                    '/etc/ssl/private/superadmin.key'),
                    verify='/etc/ssl/certs/ca_root.crt')

    #             if response.status_code == 204:
    #                 responses.append({'api_id': api['api_id'], 'message': 'Api removed successfully'})
    #             else:
    #                 responses.append({'api_id': api['api_id'], 'message': 'Failed to remove api'})
                if response.status_code == 204:
                    responses.append({'api_id': api['api_id'], 'message': 'Api removed successfully'})
                else:
                    responses.append({'api_id': api['api_id'], 'message': 'Failed to remove api'})

    #         return responses
            return responses

    #     except Exception as e:
    #         raise Exception("Error deleting apis: " + str(e))
        except Exception as e:
            raise Exception("Error deleting apis: " + str(e))
    
    # # Delete a single user
    # def delete_user(self, username, password):