Commit 9538dace authored by Mohammad Ismaeel's avatar Mohammad Ismaeel
Browse files

delete service route

parent 28d1efe9
Loading
Loading
Loading
Loading
+38 −98
Original line number Diff line number Diff line
@@ -91,18 +91,18 @@ def create_service ():
        else : 
            return make_response(response.text,400)
        
@service.route('/delete_service',methods= ['POST'])
def delete_service (): 
    data = request.json
    service_uuids = data.get('service_uuid',[])
    
    if  len(service_uuids) ==0 :
            
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<service_uuid>',methods= ['DELETE'])    
def delete_service (service_uuid): 
      
    
        if  service_uuid is None :
            return make_response("service_uuid is required", 400)
        
        try : 
            
            service_client.connect()
        for service_uuid in service_uuids :
            service_id = ServiceId()
            service_id.service_uuid.uuid = service_uuid
            service_id.context_id.context_uuid.uuid = 'admin'
@@ -115,87 +115,27 @@ def delete_service ():
            if service_client: 
                service_client.close()         
                
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<service_uuid>',methods= ['DELETE'])    
def delete_child_service (service_uuid): 
    data = request.json
    topologies = data.get('topologies',[])
    if len(topologies) ==0 :
        return make_response("topologies is required", 400)
    if not service_uuid:
        return make_response("service_uuid is required", 400)
    for topology in topologies :
        host = topology.get('host',None)
        port = topology.get('port',8008)

        if not host:    
            return make_response("host is required", 400)
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<service_uuid>', methods=['GET'])
@service.route('/restconf/data/tapi-connectivity:connectivity-service/', methods=['GET'])
def get_services(service_uuid=None):
    
        url = ('http://{}:{}/service/delete_service').format(host,port)
    try : 
     
            response = requests.post(url,json={'service_uuid': [service_uuid]})
            if response.status_code != 200:
                return make_response(f"Failed to delete child service: {response.text}", response.status_code)
            
        except Exception as e : 
            logging.info(f"error in deleting child service {e}") 
            return make_response(f'Error !! {e}' ,400)
    return make_response("Child services deleted successfully !!", 200)

@service.route('/get_service/<context_uuid>/<service_uuid>', methods=['GET'])
@service.route('/get_service/<context_uuid>', methods=['GET'])
def get_service(context_uuid,service_uuid=None):
     
    if not context_uuid:
        return make_response("context_uuid is required", 400) 
        context_id = ContextId()
    context_id.context_uuid.uuid = context_uuid
    try:
        context_id.context_uuid.uuid = 'admin'
        context_client.connect()
        if service_uuid:
        if service_uuid is None:
            services = context_client.ListServices(context_id)
            return make_response(json.dumps(MessageToDict(services)), 200)
        service_id = ServiceId()
        service_id.service_uuid.uuid = service_uuid
            service_id.context_id.context_uuid.uuid = context_uuid
        service_id.context_id.context_uuid.uuid = 'admin'
        service = context_client.GetService(service_id)
            if not service:
                return make_response("Service not found", 404)
            service_dict = MessageToDict(service, preserving_proto_field_name=True)
            return make_response(json.dumps(service_dict), 200)
        # If no service_uuid is provided, list all services in the context
        list_services = context_client.ListServices(context_id)
        if not list_services:
            return make_response("No services found", 404)
        services_list = []
        for service in list_services:
            service_dict = MessageToDict(service, preserving_proto_field_name=True)
            services_list.append(service_dict)
        return make_response(json.dumps(services_list), 200)
        return make_response(json.dumps(MessageToDict(service)), 200)
    except Exception as e : 
        logging.error(f"Error retrieving services: {e}")
        return make_response(f"Error retrieving services: {e}", 500)
        logging.info(f"error in getting service {e}") 
        return make_response(f'Error !! {e}' ,400)
    finally : 
        if context_client: 
            context_client.close()
        
 No newline at end of file
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<host>/<service_uuid>', methods=['GET'])
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<host>', methods=['GET'])
def get_child_services(host,service_uuid=None):
   
    
    if not host:
        return make_response("port is required", 400)
    port = 8008
    context_uuid =  'admin'

    url = ('http://{}:{}/service/get_service/{}/{}').format(host, port,context_uuid,service_uuid)
    
    try:
        response = requests.get(url)
        if response.status_code != 200:
            return make_response(f"Failed to retrieve child services: {response.text}", response.status_code)
        
        child_services = response.json()
        return make_response(json.dumps(child_services), 200)
    except Exception as e:
        logging.error(f"Error retrieving child services: {e}")
        return make_response(f"Error retrieving child services: {e}", 500)
 No newline at end of file