Commit 632f0fc0 authored by Stavros-Anastasios Charismiadis's avatar Stavros-Anastasios Charismiadis
Browse files

Check if domain already interconnected

parent 44d792d8
Loading
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -42,6 +42,12 @@ class CapifDomainOperations(Resource):
        current_app.logger.debug("Interconnection: Add domain")
        current_app.logger.debug(capifdomaindetails)

        interconnected_col = self.db.get_col_by_name(self.db.interconnected)
        interconnected_ccf = interconnected_col.find_one({"dst_prov_dom": capifdomaindetails.dst_prov_dom})
        if interconnected_ccf:
            current_app.logger.debug("CAPIF domain already interconnected : {}".format(capifdomaindetails.dst_prov_dom))
            return make_response("CAPIF domain already interconnected", 409)

        url = "https://{}/helper/interconnection/connect".format(capifdomaindetails.dst_prov_dom)

        with open('server_certs/ca.crt', 'rb') as ca_cert:
@@ -54,15 +60,12 @@ class CapifDomainOperations(Resource):

        config_col = self.db.get_col_by_name(self.db.capif_configuration)
        config = config_col.find_one({}, {"_id": 0})
        # current_app.logger.debug(config)
        # current_app.logger.debug(config['ccf_id'])

        payload = json.dumps({
            "caRoot": server_ca.decode("utf-8"),
            "ccfId": config['ccf_id'],
            "dstProvDom": capifdomaindetails.dst_prov_dom,
            "publicKey": server_pub.decode("utf-8"),
            "srcProvDom": os.getenv("CAPIF_HOSTNAME")
            "dstProvDom": os.getenv("CAPIF_HOSTNAME"),
            "publicKey": server_pub.decode("utf-8")
        })
        headers = {
            'accept': 'application/json',
@@ -77,11 +80,6 @@ class CapifDomainOperations(Resource):
        current_app.logger.debug(inter_ccf)

        if response.status_code == 201:
            interconnected_col = self.db.get_col_by_name(self.db.interconnected)
            interconnected_ccf = interconnected_col.find_one({"ccf_id": inter_ccf['ccf_id']})
            if interconnected_ccf:
                current_app.logger.debug("CCF already interconnected : {}".format(inter_ccf['ccf_id']))
                return make_response("CCF already interconnected", 409)
            interconnected_col.insert_one(inter_ccf)

        ccfinstancedetails_new = CcfInstanceDetails().from_dict(dict_to_camel_case(inter_ccf))
+7 −7
Original line number Diff line number Diff line
@@ -39,6 +39,12 @@ class CcfInstanceOperations(Resource):
        current_app.logger.debug("Interconnection: Add instance")
        current_app.logger.debug(ccfinstancedetails)

        interconnected_col = self.db.get_col_by_name(self.db.interconnected)
        interconnected_ccf = interconnected_col.find_one({"ccf_id": ccfinstancedetails.ccf_id})
        if interconnected_ccf:
            current_app.logger.debug("CCF already interconnected : {}".format(ccfinstancedetails.ccf_id))
            return make_response("CCF already interconnected", 409)

        with open('server_certs/ca.crt', 'rb') as ca_cert:
            server_ca = ca_cert.read()
            ca_cert.close()
@@ -50,19 +56,13 @@ class CcfInstanceOperations(Resource):
        config_col = self.db.get_col_by_name(self.db.capif_configuration)
        config = config_col.find_one({}, {"_id": 0})

        interconnected_col = self.db.get_col_by_name(self.db.interconnected)
        interconnected_ccf = interconnected_col.find_one({"ccf_id": ccfinstancedetails.ccf_id})
        if interconnected_ccf:
            current_app.logger.debug("CCF already interconnected : {}".format(ccfinstancedetails.ccf_id))
            return make_response("CCF already interconnected", 409)

        ccfinstancedetails_dict = ccfinstancedetails.to_dict()
        interconnected_col.insert_one(ccfinstancedetails_dict)

        ccfinstancedetails_dict['ca_root'] = server_ca.decode("utf-8")
        ccfinstancedetails_dict['public_key'] = server_pub.decode("utf-8")
        ccfinstancedetails_dict['ccf_id'] = config['ccf_id']
        ccfinstancedetails_dict['dst_prov_dom'], ccfinstancedetails_dict['src_prov_dom'] = ccfinstancedetails_dict['src_prov_dom'], ccfinstancedetails_dict['dst_prov_dom']
        ccfinstancedetails_dict['dst_prov_dom'] = os.getenv("CAPIF_HOSTNAME")
        current_app.logger.debug(ccfinstancedetails_dict)

        ccfinstancedetails_new = CcfInstanceDetails().from_dict(dict_to_camel_case(ccfinstancedetails_dict))