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

Context component:

- Added logic to manage link type
- Corrected deprecated method datetime.utcnow()
parent 473348d3
No related branches found
No related tags found
1 merge request!315Resolve "(CTTC) Define fields to specify type of link"
...@@ -74,7 +74,7 @@ def connection_set(db_engine : Engine, messagebroker : MessageBroker, request : ...@@ -74,7 +74,7 @@ def connection_set(db_engine : Engine, messagebroker : MessageBroker, request :
_,service_uuid = service_get_uuid(request.service_id, allow_random=False) _,service_uuid = service_get_uuid(request.service_id, allow_random=False)
settings = grpc_message_to_json_string(request.settings), settings = grpc_message_to_json_string(request.settings),
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
connection_data = [{ connection_data = [{
'connection_uuid': connection_uuid, 'connection_uuid': connection_uuid,
......
...@@ -82,7 +82,8 @@ def context_set(db_engine : Engine, messagebroker : MessageBroker, request : Con ...@@ -82,7 +82,8 @@ def context_set(db_engine : Engine, messagebroker : MessageBroker, request : Con
if len(request.slice_ids) > 0: # pragma: no cover if len(request.slice_ids) > 0: # pragma: no cover
LOGGER.warning('Items in field "slice_ids" ignored. This field is used for retrieval purposes only.') LOGGER.warning('Items in field "slice_ids" ignored. This field is used for retrieval purposes only.')
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
context_data = [{ context_data = [{
'context_uuid': context_uuid, 'context_uuid': context_uuid,
'context_name': context_name, 'context_name': context_name,
......
...@@ -92,7 +92,7 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi ...@@ -92,7 +92,7 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi
oper_status = grpc_to_enum__device_operational_status(request.device_operational_status) oper_status = grpc_to_enum__device_operational_status(request.device_operational_status)
device_drivers = [grpc_to_enum__device_driver(d) for d in request.device_drivers] device_drivers = [grpc_to_enum__device_driver(d) for d in request.device_drivers]
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
topology_uuids : Set[str] = set() topology_uuids : Set[str] = set()
related_topologies : List[Dict] = list() related_topologies : List[Dict] = list()
......
...@@ -22,11 +22,12 @@ from common.proto.context_pb2 import Empty, EventTypeEnum, Link, LinkId, LinkIdL ...@@ -22,11 +22,12 @@ from common.proto.context_pb2 import Empty, EventTypeEnum, Link, LinkId, LinkIdL
from common.message_broker.MessageBroker import MessageBroker from common.message_broker.MessageBroker import MessageBroker
from common.method_wrappers.ServiceExceptions import NotFoundException from common.method_wrappers.ServiceExceptions import NotFoundException
from common.tools.object_factory.Link import json_link_id from common.tools.object_factory.Link import json_link_id
from context.service.database.uuids.Topology import topology_get_uuid from .models.enums.LinkType import grpc_to_enum__link_type_enum
from .models.LinkModel import LinkModel, LinkEndPointModel from .models.LinkModel import LinkModel, LinkEndPointModel
from .models.TopologyModel import TopologyLinkModel, TopologyModel from .models.TopologyModel import TopologyLinkModel, TopologyModel
from .uuids.EndPoint import endpoint_get_uuid from .uuids.EndPoint import endpoint_get_uuid
from .uuids.Link import link_get_uuid from .uuids.Link import link_get_uuid
from .uuids.Topology import topology_get_uuid
from .Events import notify_event_context, notify_event_link, notify_event_topology from .Events import notify_event_context, notify_event_link, notify_event_topology
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
...@@ -68,7 +69,9 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) ...@@ -68,7 +69,9 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name
link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True) link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True)
now = datetime.datetime.utcnow() link_type = grpc_to_enum__link_type_enum(request.link_type)
now = datetime.datetime.now(datetime.timezone.utc)
topology_uuids : Set[str] = set() topology_uuids : Set[str] = set()
related_topologies : List[Dict] = list() related_topologies : List[Dict] = list()
...@@ -117,6 +120,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) ...@@ -117,6 +120,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
link_data = [{ link_data = [{
'link_uuid' : link_uuid, 'link_uuid' : link_uuid,
'link_name' : link_name, 'link_name' : link_name,
'link_type' : link_type,
'total_capacity_gbps' : total_capacity_gbps, 'total_capacity_gbps' : total_capacity_gbps,
'used_capacity_gbps' : used_capacity_gbps, 'used_capacity_gbps' : used_capacity_gbps,
'created_at' : now, 'created_at' : now,
...@@ -129,6 +133,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) ...@@ -129,6 +133,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
index_elements=[LinkModel.link_uuid], index_elements=[LinkModel.link_uuid],
set_=dict( set_=dict(
link_name = stmt.excluded.link_name, link_name = stmt.excluded.link_name,
link_type = stmt.excluded.link_type,
total_capacity_gbps = stmt.excluded.total_capacity_gbps, total_capacity_gbps = stmt.excluded.total_capacity_gbps,
used_capacity_gbps = stmt.excluded.used_capacity_gbps, used_capacity_gbps = stmt.excluded.used_capacity_gbps,
updated_at = stmt.excluded.updated_at, updated_at = stmt.excluded.updated_at,
......
...@@ -64,7 +64,7 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request ...@@ -64,7 +64,7 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request
link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name
link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True) link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True)
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
# By default, always add link to default Context/Topology # By default, always add link to default Context/Topology
topology_uuids : Set[str] = set() topology_uuids : Set[str] = set()
......
...@@ -84,7 +84,7 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : ...@@ -84,7 +84,7 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request :
'actionList': json_policyrule_basic.get('actionList', []), 'actionList': json_policyrule_basic.get('actionList', []),
}, sort_keys=True) }, sort_keys=True)
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
policyrule_data = [{ policyrule_data = [{
'policyrule_uuid' : policyrule_uuid, 'policyrule_uuid' : policyrule_uuid,
......
...@@ -91,7 +91,7 @@ def service_set(db_engine : Engine, messagebroker : MessageBroker, request : Ser ...@@ -91,7 +91,7 @@ def service_set(db_engine : Engine, messagebroker : MessageBroker, request : Ser
service_status = grpc_to_enum__service_status(request.service_status.service_status) service_status = grpc_to_enum__service_status(request.service_status.service_status)
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
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):
...@@ -180,7 +180,8 @@ def service_unset(db_engine : Engine, messagebroker : MessageBroker, request : S ...@@ -180,7 +180,8 @@ def service_unset(db_engine : Engine, messagebroker : MessageBroker, request : S
['should be == request.service_id.context_id.context_uuid.uuid({:s})'.format(raw_context_uuid)]) ['should be == request.service_id.context_id.context_uuid.uuid({:s})'.format(raw_context_uuid)])
service_endpoint_uuids.add(endpoint_get_uuid(endpoint_id, allow_random=False)[2]) service_endpoint_uuids.add(endpoint_get_uuid(endpoint_id, allow_random=False)[2])
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
constraints = compose_constraints_data(request.service_constraints, now, service_uuid=service_uuid) constraints = compose_constraints_data(request.service_constraints, now, service_uuid=service_uuid)
config_rules = compose_config_rules_data(request.service_config.config_rules, now, service_uuid=service_uuid) config_rules = compose_config_rules_data(request.service_config.config_rules, now, service_uuid=service_uuid)
......
...@@ -89,7 +89,7 @@ def slice_set(db_engine : Engine, messagebroker : MessageBroker, request : Slice ...@@ -89,7 +89,7 @@ def slice_set(db_engine : Engine, messagebroker : MessageBroker, request : Slice
slice_status = grpc_to_enum__slice_status(request.slice_status.slice_status) slice_status = grpc_to_enum__slice_status(request.slice_status.slice_status)
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
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):
...@@ -222,7 +222,8 @@ def slice_unset(db_engine : Engine, messagebroker : MessageBroker, request : Sli ...@@ -222,7 +222,8 @@ def slice_unset(db_engine : Engine, messagebroker : MessageBroker, request : Sli
for subslice_id in request.slice_subslice_ids for subslice_id in request.slice_subslice_ids
} }
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
constraints = compose_constraints_data(request.slice_constraints, now, slice_uuid=slice_uuid) constraints = compose_constraints_data(request.slice_constraints, now, slice_uuid=slice_uuid)
config_rules = compose_config_rules_data(request.slice_config.config_rules, now, slice_uuid=slice_uuid) config_rules = compose_config_rules_data(request.slice_config.config_rules, now, slice_uuid=slice_uuid)
......
...@@ -134,7 +134,8 @@ def topology_set(db_engine : Engine, messagebroker : MessageBroker, request : To ...@@ -134,7 +134,8 @@ def topology_set(db_engine : Engine, messagebroker : MessageBroker, request : To
MSG += 'Items in field "link_ids" ignored. This field is used for retrieval purposes only.' MSG += 'Items in field "link_ids" ignored. This field is used for retrieval purposes only.'
LOGGER.warning(MSG) LOGGER.warning(MSG)
now = datetime.datetime.utcnow() now = datetime.datetime.now(datetime.timezone.utc)
topology_data = [{ topology_data = [{
'context_uuid' : context_uuid, 'context_uuid' : context_uuid,
'topology_uuid': topology_uuid, 'topology_uuid': topology_uuid,
......
...@@ -13,17 +13,22 @@ ...@@ -13,17 +13,22 @@
# limitations under the License. # limitations under the License.
import operator import operator
from sqlalchemy import CheckConstraint, Column, DateTime, Float, ForeignKey, Integer, String from sqlalchemy import (
CheckConstraint, Column, DateTime, Enum, Float, ForeignKey, Integer, String
)
from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from typing import Dict from typing import Dict
from common.proto.context_pb2 import LinkTypeEnum
from ._Base import _Base from ._Base import _Base
from .enums.LinkType import ORM_LinkTypeEnum
class LinkModel(_Base): class LinkModel(_Base):
__tablename__ = 'link' __tablename__ = 'link'
link_uuid = Column(UUID(as_uuid=False), primary_key=True) link_uuid = Column(UUID(as_uuid=False), primary_key=True)
link_name = Column(String, nullable=False) link_name = Column(String, nullable=False)
link_type = Column(Enum(ORM_LinkTypeEnum), nullable=False)
total_capacity_gbps = Column(Float, nullable=True) total_capacity_gbps = Column(Float, nullable=True)
used_capacity_gbps = Column(Float, nullable=True) used_capacity_gbps = Column(Float, nullable=True)
created_at = Column(DateTime, nullable=False) created_at = Column(DateTime, nullable=False)
...@@ -44,11 +49,14 @@ class LinkModel(_Base): ...@@ -44,11 +49,14 @@ class LinkModel(_Base):
result = { result = {
'link_id' : self.dump_id(), 'link_id' : self.dump_id(),
'name' : self.link_name, 'name' : self.link_name,
'link_type' : self.link_type.value,
'link_endpoint_ids': [ 'link_endpoint_ids': [
link_endpoint.endpoint.dump_id() link_endpoint.endpoint.dump_id()
for link_endpoint in sorted(self.link_endpoints, key=operator.attrgetter('position')) for link_endpoint in sorted(self.link_endpoints, key=operator.attrgetter('position'))
], ],
} }
if self.link_type is None:
self.link_type = LinkTypeEnum.LINKTYPE_UNKNOWN
if self.total_capacity_gbps is not None: if self.total_capacity_gbps is not None:
attributes : Dict = result.setdefault('attributes', dict()) attributes : Dict = result.setdefault('attributes', dict())
attributes.setdefault('total_capacity_gbps', self.total_capacity_gbps) attributes.setdefault('total_capacity_gbps', self.total_capacity_gbps)
......
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