Skip to content
Snippets Groups Projects

Resolve: "(CNIT) Multi-Granular Optical Nodes and Optical Transpoders management"

Merged Lluis Gifre Renom requested to merge cnit_related_activity into develop
5 files
+ 42
64
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -16,10 +16,10 @@ import datetime, json, logging
from sqlalchemy import delete
#from sqlalchemy.dialects import postgresql
from sqlalchemy.dialects.postgresql import insert
from sqlalchemy.orm import Session
from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session
from typing import Dict, List, Optional, Set
from common.proto.context_pb2 import ConfigRule ,ServiceId ,ServiceConfigRule ,Empty
from common.proto.context_pb2 import ConfigRule, ServiceConfigRule, Empty
from common.tools.grpc.Tools import grpc_message_to_json_string
from .models.enums.ConfigAction import ORM_ConfigActionEnum, grpc_to_enum__config_action
from .models.ConfigRuleModel import (
@@ -27,7 +27,7 @@ from .models.ConfigRuleModel import (
from .uuids._Builder import get_uuid_from_string
from .uuids.EndPoint import endpoint_get_uuid
from sqlalchemy_cockroachdb import run_transaction
from sqlalchemy.orm import Session, selectinload, sessionmaker
from sqlalchemy.orm import Session, sessionmaker
LOGGER = logging.getLogger(__name__)
@@ -36,10 +36,8 @@ def compose_config_rules_data(
device_uuid : Optional[str] = None, service_uuid : Optional[str] = None, slice_uuid : Optional[str] = None
) -> List[Dict]:
dict_config_rules : List[Dict] = list()
for position,config_rule in enumerate(config_rules):
str_kind = config_rule.WhichOneof('config_rule')
kind = ConfigRuleKindEnum._member_map_.get(str_kind.upper()) # pylint: disable=no-member
dict_config_rule = {
'position' : position,
@@ -68,7 +66,6 @@ def compose_config_rules_data(
configrule_name = None
if kind == ConfigRuleKindEnum.CUSTOM:
configrule_name = '{:s}:{:s}:{:s}'.format(parent_kind, kind.value, config_rule.custom.resource_key)
elif kind == ConfigRuleKindEnum.ACL:
_, _, endpoint_uuid = endpoint_get_uuid(config_rule.acl.endpoint_id, allow_random=False)
@@ -157,23 +154,14 @@ def upsert_config_rules(
return delete_affected or upsert_affected
def delete_config_rule (db_engine : Engine,request:ServiceConfigRule):
config_rule=request.configrule_custom
service_id= request.service_id
parent_uuid = service_id.service_uuid.uuid
configrule_name = 'service:custom:{:s}'.format( config_rule.resource_key)
configrule_uuid = get_uuid_from_string(configrule_name, prefix_for_name=parent_uuid)
def callback(session : Session) -> bool:
num_deleted = session.query(ServiceConfigRuleModel).filter_by(configrule_uuid=configrule_uuid).delete()
return num_deleted > 0
deleted = run_transaction(sessionmaker(bind=db_engine), callback)
return Empty()
\ No newline at end of file
def delete_config_rule(db_engine : Engine, request : ServiceConfigRule):
config_rule = request.configrule_custom
service_id = request.service_id
parent_uuid = service_id.service_uuid.uuid
configrule_name = 'service:custom:{:s}'.format( config_rule.resource_key)
configrule_uuid = get_uuid_from_string(configrule_name, prefix_for_name=parent_uuid)
def callback(session : Session) -> bool:
num_deleted = session.query(ServiceConfigRuleModel).filter_by(configrule_uuid=configrule_uuid).delete()
return num_deleted > 0
deleted = run_transaction(sessionmaker(bind=db_engine), callback)
return Empty()
Loading