Skip to content
Snippets Groups Projects
Commit d2ef8068 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Context component:

- fixed check of endpoints in SetService
- fixed check of endpoints in SetSlice
- fixed slice-subslice relationship
parent 16f4fa13
No related branches found
No related tags found
2 merge requests!142Release TeraFlowSDN 2.1,!62Add relese/2.0.1 fixes
...@@ -77,8 +77,11 @@ def service_set(db_engine : Engine, request : Service) -> Tuple[Dict, bool]: ...@@ -77,8 +77,11 @@ def service_set(db_engine : Engine, request : Service) -> Tuple[Dict, bool]:
service_endpoints_data : List[Dict] = list() service_endpoints_data : List[Dict] = list()
for i,endpoint_id in enumerate(request.service_endpoint_ids): for i,endpoint_id in enumerate(request.service_endpoint_ids):
endpoint_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid endpoint_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid
if len(endpoint_context_uuid) == 0: endpoint_context_uuid = context_uuid if len(endpoint_context_uuid) == 0:
if endpoint_context_uuid not in {raw_context_uuid, context_uuid}: endpoint_context_uuid = context_get_uuid(request.service_id.context_id, allow_random=False)
else:
endpoint_context_uuid = context_get_uuid(endpoint_id.topology_id.context_id, allow_random=False)
if endpoint_context_uuid != context_uuid:
raise InvalidArgumentException( raise InvalidArgumentException(
'request.service_endpoint_ids[{:d}].topology_id.context_id.context_uuid.uuid'.format(i), 'request.service_endpoint_ids[{:d}].topology_id.context_id.context_uuid.uuid'.format(i),
endpoint_context_uuid, endpoint_context_uuid,
......
...@@ -77,8 +77,11 @@ def slice_set(db_engine : Engine, request : Slice) -> Tuple[Dict, bool]: ...@@ -77,8 +77,11 @@ def slice_set(db_engine : Engine, request : Slice) -> Tuple[Dict, bool]:
slice_endpoints_data : List[Dict] = list() slice_endpoints_data : List[Dict] = list()
for i,endpoint_id in enumerate(request.slice_endpoint_ids): for i,endpoint_id in enumerate(request.slice_endpoint_ids):
endpoint_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid endpoint_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid
if len(endpoint_context_uuid) == 0: endpoint_context_uuid = context_uuid if len(endpoint_context_uuid) == 0:
if endpoint_context_uuid not in {raw_context_uuid, context_uuid}: endpoint_context_uuid = context_get_uuid(request.slice_id.context_id, allow_random=False)
else:
endpoint_context_uuid = context_get_uuid(endpoint_id.topology_id.context_id, allow_random=False)
if endpoint_context_uuid != context_uuid:
raise InvalidArgumentException( raise InvalidArgumentException(
'request.slice_endpoint_ids[{:d}].topology_id.context_id.context_uuid.uuid'.format(i), 'request.slice_endpoint_ids[{:d}].topology_id.context_id.context_uuid.uuid'.format(i),
endpoint_context_uuid, endpoint_context_uuid,
...@@ -210,13 +213,13 @@ def slice_unset(db_engine : Engine, request : Slice) -> Tuple[Dict, bool]: ...@@ -210,13 +213,13 @@ def slice_unset(db_engine : Engine, request : Slice) -> Tuple[Dict, bool]:
)).delete() )).delete()
if len(slice_subslice_uuids) > 0: if len(slice_subslice_uuids) > 0:
num_deletes += session.query(SliceSubSliceModel)\ num_deletes += session.query(SliceSubSliceModel)\
.filter_by(and_( .filter(and_(
SliceSubSliceModel.slice_uuid == slice_uuid, SliceSubSliceModel.slice_uuid == slice_uuid,
SliceSubSliceModel.subslice_uuid.in_(slice_subslice_uuids) SliceSubSliceModel.subslice_uuid.in_(slice_subslice_uuids)
)).delete() )).delete()
if len(slice_endpoint_uuids) > 0: if len(slice_endpoint_uuids) > 0:
num_deletes += session.query(SliceEndPointModel)\ num_deletes += session.query(SliceEndPointModel)\
.filter_by(and_( .filter(and_(
SliceEndPointModel.slice_uuid == slice_uuid, SliceEndPointModel.slice_uuid == slice_uuid,
SliceEndPointModel.endpoint_uuid.in_(slice_endpoint_uuids) SliceEndPointModel.endpoint_uuid.in_(slice_endpoint_uuids)
)).delete() )).delete()
......
...@@ -100,3 +100,7 @@ class SliceSubSliceModel(_Base): ...@@ -100,3 +100,7 @@ class SliceSubSliceModel(_Base):
slice_uuid = Column(ForeignKey('slice.slice_uuid', ondelete='CASCADE' ), primary_key=True) slice_uuid = Column(ForeignKey('slice.slice_uuid', ondelete='CASCADE' ), primary_key=True)
subslice_uuid = Column(ForeignKey('slice.slice_uuid', ondelete='RESTRICT'), primary_key=True) subslice_uuid = Column(ForeignKey('slice.slice_uuid', ondelete='RESTRICT'), primary_key=True)
slice = relationship(
'SliceModel', foreign_keys='SliceSubSliceModel.slice_uuid', back_populates='slice_subslices', lazy='joined')
subslice = relationship('SliceModel', foreign_keys='SliceSubSliceModel.subslice_uuid', lazy='joined')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment