Commit 4451b5e9 authored by Mohammad Ismaeel's avatar Mohammad Ismaeel
Browse files

Sync Optiaclcontroller with DB

parent e699253f
Loading
Loading
Loading
Loading

.context.log.swp

0 → 100644
+40 KiB

File added.

No diff preview for this file type.

+1 −1
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ export CRDB_DEPLOY_MODE="single"
export CRDB_DROP_DATABASE_IF_EXISTS=""

# Disable flag for re-deploying CockroachDB from scratch.
export CRDB_REDEPLOY=""
export CRDB_REDEPLOY="YES"


# ----- NATS -------------------------------------------------------------------
+45 −0
Original line number Diff line number Diff line


def convert_to_dict (single_val:int)->dict:
    slot= dict()
    bin_num = bin(single_val)
    sliced_num=bin_num[2:]
    for i in range(len(sliced_num)):
        slot[str(i+1)]=int(sliced_num[i])
    return slot   
 

def order_list (lst:list[tuple])->list:

    if (len(lst)<=1):
        return lst
    else :
        pivot,bit_val =lst[0]
        lst_smaller = []
        lst_greater = []
        for element in lst[1:]:
            key,val=element
            if (key <= pivot):
                lst_smaller.append(element)
            else :
                lst_greater.append(element)
        return order_list(lst_smaller) + [(pivot,bit_val)] + order_list(lst_greater)        
                
  
def list_to_dict (lst:list[tuple[int,int]])->dict:
    dct = dict()
    for ele in lst :
        key,value = ele
        dct[str(key)]=value
    return dct    
        
            
def order_dict (dct:dict)->dict:
   
    lst = list()  
    for key,value in sorted(dct.items()):
        lst.append((int(key),value))
    ordered_lst= order_list(lst)
    if (len(ordered_lst)>0):
        return list_to_dict (ordered_lst)    
      
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ def set_opticalconfig(db_engine : Engine, request : OpticalConfig):
                )
                stmt = stmt.returning(OpticalChannelModel.channel_uuid)
                opticalChannel_id = session.execute(stmt).fetchone()
                LOGGER.info(f"added successfully {opticalChannel_id}")
                
    opticalconfig_id = run_transaction(sessionmaker(bind=db_engine), callback)
    return {'opticalconfig_uuid': opticalconfig_id}
+12 −4
Original line number Diff line number Diff line
@@ -103,7 +103,8 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request
       


    
    LOGGER.info(f"update_link_uuid {link_uuid}")
    LOGGER.info(f"c_slots {request.optical_details.c_slots }")
    optical_link_data = [{
        'opticallink_uuid'     : link_uuid,
        'name'                 : link_name,
@@ -127,8 +128,15 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request
        stmt = stmt.on_conflict_do_update(
            index_elements=[OpticalLinkModel.opticallink_uuid],
            set_=dict(
                name           = stmt.excluded.name,
                updated_at          = stmt.excluded.updated_at,
                src_port      =stmt.excluded.src_port,
                dst_port      =stmt.excluded.dst_port,  
                local_peer_port   = stmt.excluded.local_peer_port,
                remote_peer_port  = stmt.excluded.remote_peer_port,
                used             = stmt.excluded.used ,
                c_slots          = stmt.excluded.c_slots,
                l_slots         =  stmt.excluded.l_slots,
                s_slots        = stmt.excluded.s_slots
            )
        )
        stmt = stmt.returning(OpticalLinkModel.created_at, OpticalLinkModel.updated_at)
@@ -180,14 +188,14 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request

def optical_link_delete(db_engine : Engine, messagebroker : MessageBroker, request : LinkId) -> Empty:
    link_uuid = link_get_uuid(request, allow_random=False)
    LOGGER.info(f"deleteing optical link {link_uuid}")
   
    def callback(session : Session) -> bool:
   
       
        num_deleted = session.query(OpticalLinkModel).filter_by(opticallink_uuid=link_uuid).delete()
        return num_deleted > 0
    deleted = run_transaction(sessionmaker(bind=db_engine), callback)
    LOGGER.info(f"deleted  {deleted}")

    link_id = json_link_id(link_uuid)
    if deleted:
        notify_event_link(messagebroker, EventTypeEnum.EVENTTYPE_REMOVE, link_id)
Loading