Commit bbc8be82 authored by Mohammad Ismaeel's avatar Mohammad Ismaeel
Browse files

save all changes

parent 9538dace
Loading
Loading
Loading
Loading
+47 −25
Original line number Original line Diff line number Diff line
@@ -33,17 +33,9 @@ service_client = ServiceClient()
slice_client = SliceClient()
slice_client = SliceClient()




def create_update_service (_add_services,_services) : 
    
    

@service.route('/set_service', methods = ['POST'])
def set_service () : 
    service_json = request.json
    _services= service_json.get('services',[])
    _add_services= get_descriptors_add_services(_services) 
    services_ids= []
    services_ids= []
    logging.info(f"set_service called {_services}")
    logging.info(f"_add_services  {_add_services}")
    
    try : 
    try : 
        for service in _add_services: 
        for service in _add_services: 
            try : 
            try : 
@@ -53,7 +45,7 @@ def set_service () :
                
                
            except Exception as e : 
            except Exception as e : 
                logging.info(f"error in creating service {e}") 
                logging.info(f"error in creating service {e}") 
                return make_response(f'error !! {e}' ,400)  
                return (False,f'error !! {e}')
        for service in _services : 
        for service in _services : 
            try : 
            try : 
              
              
@@ -62,14 +54,30 @@ def set_service () :
                    service_uuid = service_id.service_uuid.uuid    
                    service_uuid = service_id.service_uuid.uuid    
                    service_id=service_uuid
                    service_id=service_uuid
                    services_ids.append(service_id)
                    services_ids.append(service_id)
                return (True,services_ids)    
            except Exception as e : 
            except Exception as e : 
                logging.info(f"error in updating service {e}") 
                logging.info(f"error in updating service {e}") 
                return make_response(f'Updating Service !! {e}' ,400)
                return (False,f'Updating Service !! {e}' )
    finally :         
    finally :         
        if service_client: 
        if service_client: 
            service_client.close()
            service_client.close()
    if len(services_ids)>0 : 

        return make_response(f"Services {services_ids} was created Successfully !!", 200) 
@service.route('/set_service', methods = ['POST'])
def set_service () : 
    service_json = request.json
    _services= service_json.get('services',[])
    _add_services= get_descriptors_add_services(_services) 
    
    logging.info(f"set_service called {_services}")
    logging.info(f"_add_services  {_add_services}")
    
    success, msg = create_update_service(_add_services,_services)
    if not success :
        return make_response(msg, 400)
    else :
        
        if len(msg)>0 : 
            return make_response(f"Services {msg} was created Successfully !!", 200) 
        else:
        else:
            return make_response("No services were created.", 400)    
            return make_response("No services were created.", 400)    
            
            
@@ -82,16 +90,30 @@ def create_service ():
    logging.info(f"_services : {_services}")
    logging.info(f"_services : {_services}")
    if len(_services['services'])> 0  : 
    if len(_services['services'])> 0  : 
        
        
        if host and port and topology_uuid :
            headers = {"Content-Type": "application/json"}
            headers = {"Content-Type": "application/json"}
            url = ('http://{}:8008/set_service').format(host) 
            url = ('http://{}:8008/set_service').format(host) 
            response = requests.post(url,json=_services,headers=headers)
            response = requests.post(url,json=_services,headers=headers)
            
            
            if response.status_code == 200 : 
            if response.status_code == 200 : 
            return make_response('Service Created Successfully !!' , 200)
                return make_response(f'Service Created Successfully in topology {topology_uuid} at address {host} !!' , 200)
            else : 
            else : 
                return make_response(response.text,400)
                return make_response(response.text,400)
        
        
        else : 
           
            _add_services= get_descriptors_add_services(_services['services']) 
            success, msg = create_update_service(_add_services,_services['services'])
            if not success :
                return make_response(msg, 400)
            else :
                
                
                if len(msg)>0 : 
                    return make_response(f"Services {msg} was created Successfully !!", 200) 
                else:
                    return make_response("No services were created.", 400)    
                
    return make_response("No services were created.", 400)        
            
            
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<service_uuid>',methods= ['DELETE'])    
@service.route('/restconf/data/tapi-connectivity:connectivity-service/<service_uuid>',methods= ['DELETE'])    
def delete_service (service_uuid): 
def delete_service (service_uuid): 
+14 −5
Original line number Original line Diff line number Diff line
from common.proto.context_pb2 import (DeviceId , ChildDevice)
from common.proto.context_pb2 import (DeviceId , ChildDevice)
from common.tools.context_queries.Device import get_device
import logging
import logging
        
        


@@ -10,6 +11,12 @@ def get_topology_uuid (device_id,context_client):
        context_client.connect()
        context_client.connect()
        device = DeviceId()
        device = DeviceId()
        device.device_uuid.uuid = device_id
        device.device_uuid.uuid = device_id
        local_device = get_device(context_client, device_id)
        if local_device : 
            return [None ,None , None]
            
        else :
            
            topology_info = context_client.GetTopologyByDeviceId(device)
            topology_info = context_client.GetTopologyByDeviceId(device)
            if topology_info :
            if topology_info :
                return[topology_info.host, topology_info.port, topology_info.topology_id.topology_uuid.uuid]
                return[topology_info.host, topology_info.port, topology_info.topology_id.topology_uuid.uuid]
@@ -93,10 +100,12 @@ def service_composer (service_json,context_client) :
            composed_service['bidirectionality'] = '0'
            composed_service['bidirectionality'] = '0'
        topology_src= get_topology_uuid(composed_service['src_dev'],context_client) 
        topology_src= get_topology_uuid(composed_service['src_dev'],context_client) 
        topology_dst= get_topology_uuid(composed_service['dst_dev'],context_client)
        topology_dst= get_topology_uuid(composed_service['dst_dev'],context_client)
        if topology_src and topology_dst  and topology_src[2] == topology_dst[2] :   
     
        if  topology_src[2] == topology_dst[2] :   
            services['services'].append(service_builder(composed_service))    
            services['services'].append(service_builder(composed_service))    
        else : 
        else : 
            logging.info(f'''Error in service {composed_service['name']} :
            logging.info(f'''Error in service {composed_service['name']} :
                         source and destination devices are not in the same topology or topology is missing''')   
                         source and destination devices are not in the same topology or topology is missing''')   
         
         
    return [ services ,topology_src[0],topology_src[1],topology_src[2] ]  
    return [ services ,topology_src[0],topology_src[1],topology_src[2] ]  
+1 −1

File changed.

Contains only whitespace changes.