diff --git a/src/monitoring/context_pb2.py b/src/monitoring/context_pb2.py index 5930d483e211a51816f87595ed4bb12848ee9a44..e4acb11a579694017d1ee5572f1f94848731802a 100644 --- a/src/monitoring/context_pb2.py +++ b/src/monitoring/context_pb2.py @@ -1,8 +1,7 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: context.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +"""Generated protocol buffer code.""" from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -20,7 +19,8 @@ DESCRIPTOR = _descriptor.FileDescriptor( package='context', syntax='proto3', serialized_options=None, - serialized_pb=_b('\n\rcontext.proto\x12\x07\x63ontext\"\x07\n\x05\x45mpty\"T\n\x07\x43ontext\x12\x1f\n\x04topo\x18\x01 \x01(\x0b\x32\x11.context.Topology\x12(\n\x03\x63tl\x18\x02 \x01(\x0b\x32\x1b.context.TeraFlowController\"H\n\x08Topology\x12\x1f\n\x06\x64\x65vice\x18\x01 \x03(\x0b\x32\x0f.context.Device\x12\x1b\n\x04link\x18\x02 \x03(\x0b\x32\r.context.Link\"1\n\x04Link\x12)\n\x0c\x65ndpointList\x18\x01 \x03(\x0b\x32\x13.context.EndPointId\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"\xda\x01\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12>\n\x14\x64\x65vOperationalStatus\x18\x04 \x01(\x0e\x32 .context.DeviceOperationalStatus\x12\'\n\x0c\x65ndpointList\x18\x05 \x03(\x0b\x32\x11.context.EndPoint\"%\n\x0c\x44\x65viceConfig\x12\x15\n\rdevice_config\x18\x01 \x01(\t\"C\n\x08\x45ndPoint\x12$\n\x07port_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x11\n\tport_type\x18\x02 \x01(\t\"O\n\nEndPointId\x12\x1e\n\x07port_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\x12!\n\x06\x64\x65v_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\",\n\x08\x44\x65viceId\x12 \n\tdevice_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"F\n\x12TeraFlowController\x12\x1d\n\x06\x63tl_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\x12\x11\n\tipaddress\x18\x02 \x01(\t\"L\n\x14\x41uthenticationResult\x12\x1d\n\x06\x63tl_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*4\n\x17\x44\x65viceOperationalStatus\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x32\x44\n\x0e\x43ontextService\x12\x32\n\x0bGetTopology\x12\x0e.context.Empty\x1a\x11.context.Topology\"\x00\x62\x06proto3') + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\rcontext.proto\x12\x07\x63ontext\"\x07\n\x05\x45mpty\"{\n\x07\x43ontext\x12%\n\tcontextId\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x1f\n\x04topo\x18\x02 \x01(\x0b\x32\x11.context.Topology\x12(\n\x03\x63tl\x18\x03 \x01(\x0b\x32\x1b.context.TeraFlowController\"/\n\tContextId\x12\"\n\x0b\x63ontextUuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"m\n\x08Topology\x12#\n\x06topoId\x18\x02 \x01(\x0b\x32\x13.context.TopologyId\x12\x1f\n\x06\x64\x65vice\x18\x03 \x03(\x0b\x32\x0f.context.Device\x12\x1b\n\x04link\x18\x04 \x03(\x0b\x32\r.context.Link\"1\n\x04Link\x12)\n\x0c\x65ndpointList\x18\x01 \x03(\x0b\x32\x13.context.EndPointId\"R\n\nTopologyId\x12%\n\tcontextId\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x1d\n\x06topoId\x18\x02 \x01(\x0b\x32\r.context.Uuid\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"\xda\x01\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12>\n\x14\x64\x65vOperationalStatus\x18\x04 \x01(\x0e\x32 .context.DeviceOperationalStatus\x12\'\n\x0c\x65ndpointList\x18\x05 \x03(\x0b\x32\x11.context.EndPoint\"%\n\x0c\x44\x65viceConfig\x12\x15\n\rdevice_config\x18\x01 \x01(\t\"C\n\x08\x45ndPoint\x12$\n\x07port_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x11\n\tport_type\x18\x02 \x01(\t\"t\n\nEndPointId\x12#\n\x06topoId\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12!\n\x06\x64\x65v_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12\x1e\n\x07port_id\x18\x03 \x01(\x0b\x32\r.context.Uuid\",\n\x08\x44\x65viceId\x12 \n\tdevice_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"K\n\x12TeraFlowController\x12\"\n\x06\x63tl_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x11\n\tipaddress\x18\x02 \x01(\t\"Q\n\x14\x41uthenticationResult\x12\"\n\x06\x63tl_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*4\n\x17\x44\x65viceOperationalStatus\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x32\x44\n\x0e\x43ontextService\x12\x32\n\x0bGetTopology\x12\x0e.context.Empty\x1a\x11.context.Topology\"\x00\x62\x06proto3' ) _DEVICEOPERATIONALSTATUS = _descriptor.EnumDescriptor( @@ -28,20 +28,23 @@ _DEVICEOPERATIONALSTATUS = _descriptor.EnumDescriptor( full_name='context.DeviceOperationalStatus', filename=None, file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, values=[ _descriptor.EnumValueDescriptor( name='DISABLED', index=0, number=0, serialized_options=None, - type=None), + type=None, + create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( name='ENABLED', index=1, number=1, serialized_options=None, - type=None), + type=None, + create_key=_descriptor._internal_create_key), ], containing_type=None, serialized_options=None, - serialized_start=939, - serialized_end=991, + serialized_start=1195, + serialized_end=1247, ) _sym_db.RegisterEnumDescriptor(_DEVICEOPERATIONALSTATUS) @@ -57,6 +60,7 @@ _EMPTY = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ ], extensions=[ @@ -81,21 +85,29 @@ _CONTEXT = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='topo', full_name='context.Context.topo', index=0, + name='contextId', full_name='context.Context.contextId', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='ctl', full_name='context.Context.ctl', index=1, + name='topo', full_name='context.Context.topo', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ctl', full_name='context.Context.ctl', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -109,7 +121,39 @@ _CONTEXT = _descriptor.Descriptor( oneofs=[ ], serialized_start=35, - serialized_end=119, + serialized_end=158, +) + + +_CONTEXTID = _descriptor.Descriptor( + name='ContextId', + full_name='context.ContextId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contextUuid', full_name='context.ContextId.contextUuid', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=160, + serialized_end=207, ) @@ -119,21 +163,29 @@ _TOPOLOGY = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='device', full_name='context.Topology.device', index=0, - number=1, type=11, cpp_type=10, label=3, + name='topoId', full_name='context.Topology.topoId', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='context.Topology.device', index=1, + number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='link', full_name='context.Topology.link', index=1, - number=2, type=11, cpp_type=10, label=3, + name='link', full_name='context.Topology.link', index=2, + number=4, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -146,8 +198,8 @@ _TOPOLOGY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=121, - serialized_end=193, + serialized_start=209, + serialized_end=318, ) @@ -157,6 +209,7 @@ _LINK = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='endpointList', full_name='context.Link.endpointList', index=0, @@ -164,7 +217,46 @@ _LINK = _descriptor.Descriptor( has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=320, + serialized_end=369, +) + + +_TOPOLOGYID = _descriptor.Descriptor( + name='TopologyId', + full_name='context.TopologyId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contextId', full_name='context.TopologyId.contextId', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='topoId', full_name='context.TopologyId.topoId', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -177,8 +269,8 @@ _LINK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=195, - serialized_end=244, + serialized_start=371, + serialized_end=453, ) @@ -188,21 +280,22 @@ _CONSTRAINT = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='constraint_type', full_name='context.Constraint.constraint_type', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='constraint_value', full_name='context.Constraint.constraint_value', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -215,8 +308,8 @@ _CONSTRAINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=246, - serialized_end=309, + serialized_start=455, + serialized_end=518, ) @@ -226,6 +319,7 @@ _DEVICE = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='device_id', full_name='context.Device.device_id', index=0, @@ -233,35 +327,35 @@ _DEVICE = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='device_type', full_name='context.Device.device_type', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='device_config', full_name='context.Device.device_config', index=2, number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='devOperationalStatus', full_name='context.Device.devOperationalStatus', index=3, number=4, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='endpointList', full_name='context.Device.endpointList', index=4, number=5, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -274,8 +368,8 @@ _DEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=312, - serialized_end=530, + serialized_start=521, + serialized_end=739, ) @@ -285,14 +379,15 @@ _DEVICECONFIG = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='device_config', full_name='context.DeviceConfig.device_config', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -305,8 +400,8 @@ _DEVICECONFIG = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=532, - serialized_end=569, + serialized_start=741, + serialized_end=778, ) @@ -316,6 +411,7 @@ _ENDPOINT = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='port_id', full_name='context.EndPoint.port_id', index=0, @@ -323,14 +419,14 @@ _ENDPOINT = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='port_type', full_name='context.EndPoint.port_type', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -343,8 +439,8 @@ _ENDPOINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=571, - serialized_end=638, + serialized_start=780, + serialized_end=847, ) @@ -354,21 +450,29 @@ _ENDPOINTID = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='port_id', full_name='context.EndPointId.port_id', index=0, + name='topoId', full_name='context.EndPointId.topoId', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='dev_id', full_name='context.EndPointId.dev_id', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='port_id', full_name='context.EndPointId.port_id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -381,8 +485,8 @@ _ENDPOINTID = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=640, - serialized_end=719, + serialized_start=849, + serialized_end=965, ) @@ -392,6 +496,7 @@ _DEVICEID = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='device_id', full_name='context.DeviceId.device_id', index=0, @@ -399,7 +504,7 @@ _DEVICEID = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -412,8 +517,8 @@ _DEVICEID = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=721, - serialized_end=765, + serialized_start=967, + serialized_end=1011, ) @@ -423,14 +528,15 @@ _UUID = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='uuid', full_name='context.Uuid.uuid', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -443,8 +549,8 @@ _UUID = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=767, - serialized_end=787, + serialized_start=1013, + serialized_end=1033, ) @@ -454,6 +560,7 @@ _TERAFLOWCONTROLLER = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='ctl_id', full_name='context.TeraFlowController.ctl_id', index=0, @@ -461,14 +568,14 @@ _TERAFLOWCONTROLLER = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='ipaddress', full_name='context.TeraFlowController.ipaddress', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -481,8 +588,8 @@ _TERAFLOWCONTROLLER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=789, - serialized_end=859, + serialized_start=1035, + serialized_end=1110, ) @@ -492,6 +599,7 @@ _AUTHENTICATIONRESULT = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='ctl_id', full_name='context.AuthenticationResult.ctl_id', index=0, @@ -499,14 +607,14 @@ _AUTHENTICATIONRESULT = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='authenticated', full_name='context.AuthenticationResult.authenticated', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -519,29 +627,37 @@ _AUTHENTICATIONRESULT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=861, - serialized_end=937, + serialized_start=1112, + serialized_end=1193, ) +_CONTEXT.fields_by_name['contextId'].message_type = _CONTEXTID _CONTEXT.fields_by_name['topo'].message_type = _TOPOLOGY _CONTEXT.fields_by_name['ctl'].message_type = _TERAFLOWCONTROLLER +_CONTEXTID.fields_by_name['contextUuid'].message_type = _UUID +_TOPOLOGY.fields_by_name['topoId'].message_type = _TOPOLOGYID _TOPOLOGY.fields_by_name['device'].message_type = _DEVICE _TOPOLOGY.fields_by_name['link'].message_type = _LINK _LINK.fields_by_name['endpointList'].message_type = _ENDPOINTID +_TOPOLOGYID.fields_by_name['contextId'].message_type = _CONTEXTID +_TOPOLOGYID.fields_by_name['topoId'].message_type = _UUID _DEVICE.fields_by_name['device_id'].message_type = _DEVICEID _DEVICE.fields_by_name['device_config'].message_type = _DEVICECONFIG _DEVICE.fields_by_name['devOperationalStatus'].enum_type = _DEVICEOPERATIONALSTATUS _DEVICE.fields_by_name['endpointList'].message_type = _ENDPOINT _ENDPOINT.fields_by_name['port_id'].message_type = _ENDPOINTID -_ENDPOINTID.fields_by_name['port_id'].message_type = _UUID +_ENDPOINTID.fields_by_name['topoId'].message_type = _TOPOLOGYID _ENDPOINTID.fields_by_name['dev_id'].message_type = _DEVICEID +_ENDPOINTID.fields_by_name['port_id'].message_type = _UUID _DEVICEID.fields_by_name['device_id'].message_type = _UUID -_TERAFLOWCONTROLLER.fields_by_name['ctl_id'].message_type = _UUID -_AUTHENTICATIONRESULT.fields_by_name['ctl_id'].message_type = _UUID +_TERAFLOWCONTROLLER.fields_by_name['ctl_id'].message_type = _CONTEXTID +_AUTHENTICATIONRESULT.fields_by_name['ctl_id'].message_type = _CONTEXTID DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT +DESCRIPTOR.message_types_by_name['ContextId'] = _CONTEXTID DESCRIPTOR.message_types_by_name['Topology'] = _TOPOLOGY DESCRIPTOR.message_types_by_name['Link'] = _LINK +DESCRIPTOR.message_types_by_name['TopologyId'] = _TOPOLOGYID DESCRIPTOR.message_types_by_name['Constraint'] = _CONSTRAINT DESCRIPTOR.message_types_by_name['Device'] = _DEVICE DESCRIPTOR.message_types_by_name['DeviceConfig'] = _DEVICECONFIG @@ -554,95 +670,109 @@ DESCRIPTOR.message_types_by_name['AuthenticationResult'] = _AUTHENTICATIONRESULT DESCRIPTOR.enum_types_by_name['DeviceOperationalStatus'] = _DEVICEOPERATIONALSTATUS _sym_db.RegisterFileDescriptor(DESCRIPTOR) -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), dict( - DESCRIPTOR = _EMPTY, - __module__ = 'context_pb2' +Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { + 'DESCRIPTOR' : _EMPTY, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Empty) - )) + }) _sym_db.RegisterMessage(Empty) -Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), dict( - DESCRIPTOR = _CONTEXT, - __module__ = 'context_pb2' +Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), { + 'DESCRIPTOR' : _CONTEXT, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Context) - )) + }) _sym_db.RegisterMessage(Context) -Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), dict( - DESCRIPTOR = _TOPOLOGY, - __module__ = 'context_pb2' +ContextId = _reflection.GeneratedProtocolMessageType('ContextId', (_message.Message,), { + 'DESCRIPTOR' : _CONTEXTID, + '__module__' : 'context_pb2' + # @@protoc_insertion_point(class_scope:context.ContextId) + }) +_sym_db.RegisterMessage(ContextId) + +Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), { + 'DESCRIPTOR' : _TOPOLOGY, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Topology) - )) + }) _sym_db.RegisterMessage(Topology) -Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), dict( - DESCRIPTOR = _LINK, - __module__ = 'context_pb2' +Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), { + 'DESCRIPTOR' : _LINK, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Link) - )) + }) _sym_db.RegisterMessage(Link) -Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), dict( - DESCRIPTOR = _CONSTRAINT, - __module__ = 'context_pb2' +TopologyId = _reflection.GeneratedProtocolMessageType('TopologyId', (_message.Message,), { + 'DESCRIPTOR' : _TOPOLOGYID, + '__module__' : 'context_pb2' + # @@protoc_insertion_point(class_scope:context.TopologyId) + }) +_sym_db.RegisterMessage(TopologyId) + +Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), { + 'DESCRIPTOR' : _CONSTRAINT, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Constraint) - )) + }) _sym_db.RegisterMessage(Constraint) -Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), dict( - DESCRIPTOR = _DEVICE, - __module__ = 'context_pb2' +Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), { + 'DESCRIPTOR' : _DEVICE, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Device) - )) + }) _sym_db.RegisterMessage(Device) -DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), dict( - DESCRIPTOR = _DEVICECONFIG, - __module__ = 'context_pb2' +DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), { + 'DESCRIPTOR' : _DEVICECONFIG, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.DeviceConfig) - )) + }) _sym_db.RegisterMessage(DeviceConfig) -EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), dict( - DESCRIPTOR = _ENDPOINT, - __module__ = 'context_pb2' +EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), { + 'DESCRIPTOR' : _ENDPOINT, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.EndPoint) - )) + }) _sym_db.RegisterMessage(EndPoint) -EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), dict( - DESCRIPTOR = _ENDPOINTID, - __module__ = 'context_pb2' +EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), { + 'DESCRIPTOR' : _ENDPOINTID, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.EndPointId) - )) + }) _sym_db.RegisterMessage(EndPointId) -DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), dict( - DESCRIPTOR = _DEVICEID, - __module__ = 'context_pb2' +DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEID, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.DeviceId) - )) + }) _sym_db.RegisterMessage(DeviceId) -Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), dict( - DESCRIPTOR = _UUID, - __module__ = 'context_pb2' +Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), { + 'DESCRIPTOR' : _UUID, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.Uuid) - )) + }) _sym_db.RegisterMessage(Uuid) -TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), dict( - DESCRIPTOR = _TERAFLOWCONTROLLER, - __module__ = 'context_pb2' +TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), { + 'DESCRIPTOR' : _TERAFLOWCONTROLLER, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.TeraFlowController) - )) + }) _sym_db.RegisterMessage(TeraFlowController) -AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), dict( - DESCRIPTOR = _AUTHENTICATIONRESULT, - __module__ = 'context_pb2' +AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), { + 'DESCRIPTOR' : _AUTHENTICATIONRESULT, + '__module__' : 'context_pb2' # @@protoc_insertion_point(class_scope:context.AuthenticationResult) - )) + }) _sym_db.RegisterMessage(AuthenticationResult) @@ -653,8 +783,9 @@ _CONTEXTSERVICE = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=993, - serialized_end=1061, + create_key=_descriptor._internal_create_key, + serialized_start=1249, + serialized_end=1317, methods=[ _descriptor.MethodDescriptor( name='GetTopology', @@ -664,6 +795,7 @@ _CONTEXTSERVICE = _descriptor.ServiceDescriptor( input_type=_EMPTY, output_type=_TOPOLOGY, serialized_options=None, + create_key=_descriptor._internal_create_key, ), ]) _sym_db.RegisterServiceDescriptor(_CONTEXTSERVICE) diff --git a/src/monitoring/context_pb2_grpc.py b/src/monitoring/context_pb2_grpc.py index d64835e12d21e68616361612e959d3fd6393ab6a..262835313921800de8c293a12820bdec0381a771 100644 --- a/src/monitoring/context_pb2_grpc.py +++ b/src/monitoring/context_pb2_grpc.py @@ -1,46 +1,66 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" import grpc -import context_pb2 as context__pb2 +from . import context_pb2 as context__pb2 class ContextServiceStub(object): - # missing associated documentation comment in .proto file - pass + """Missing associated documentation comment in .proto file.""" - def __init__(self, channel): - """Constructor. + def __init__(self, channel): + """Constructor. - Args: - channel: A grpc.Channel. - """ - self.GetTopology = channel.unary_unary( - '/context.ContextService/GetTopology', - request_serializer=context__pb2.Empty.SerializeToString, - response_deserializer=context__pb2.Topology.FromString, - ) + Args: + channel: A grpc.Channel. + """ + self.GetTopology = channel.unary_unary( + '/context.ContextService/GetTopology', + request_serializer=context__pb2.Empty.SerializeToString, + response_deserializer=context__pb2.Topology.FromString, + ) class ContextServiceServicer(object): - # missing associated documentation comment in .proto file - pass + """Missing associated documentation comment in .proto file.""" - def GetTopology(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetTopology(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') def add_ContextServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetTopology': grpc.unary_unary_rpc_method_handler( - servicer.GetTopology, - request_deserializer=context__pb2.Empty.FromString, - response_serializer=context__pb2.Topology.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'context.ContextService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) + rpc_method_handlers = { + 'GetTopology': grpc.unary_unary_rpc_method_handler( + servicer.GetTopology, + request_deserializer=context__pb2.Empty.FromString, + response_serializer=context__pb2.Topology.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'context.ContextService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ContextService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTopology(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/context.ContextService/GetTopology', + context__pb2.Empty.SerializeToString, + context__pb2.Topology.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/monitoring/genproto.sh b/src/monitoring/genproto.sh index e687e882d5f2bc033b43a3e4e482e68cc766dd25..89a6e8db13edd4336d6274f2ed9730891e6f1b4f 100755 --- a/src/monitoring/genproto.sh +++ b/src/monitoring/genproto.sh @@ -18,3 +18,8 @@ python -m grpc_tools.protoc -I../../proto --python_out=. --grpc_python_out=. ../../proto/monitoring.proto python -m grpc_tools.protoc -I../../proto --python_out=. --grpc_python_out=. ../../proto/context.proto + +sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' monitoring_pb2.py +sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' monitoring_pb2_grpc.py +sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' context_pb2.py +sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' context_pb2_grpc.py diff --git a/src/monitoring/monitoring_client.py b/src/monitoring/monitoring_client.py index 905c09adaa43aece5db0f1c476a940141c11517a..a856b7646f6cd76730e6c72cff6b583493fdd453 100644 --- a/src/monitoring/monitoring_client.py +++ b/src/monitoring/monitoring_client.py @@ -1,60 +1,58 @@ import sys import grpc -import monitoring_pb2 as monitoring -import monitoring_pb2_grpc -import context_pb2 +from . import monitoring_pb2 +from . import monitoring_pb2_grpc +from . import context_pb2 -import json +#import json -from logger import getJSONLogger -logger = getJSONLogger('monitoring-client') -logger.setLevel('DEBUG') +from .logger import getJSONLogger +LOGGER = getJSONLogger('monitoring-client') +LOGGER.setLevel('DEBUG') class MonitoringClient: - def __init__(self, server="monitoring", port="7070"): - logger.info("init monitoringClient port " + port) - self.channel=grpc.insecure_channel(server+':'+port) - self.server=monitoring_pb2_grpc.MonitoringServiceStub(self.channel) + def __init__(self, server='monitoring', port='7070'): + endpoint = '{}:{}'.format(server, port) + LOGGER.info('init monitoringClient {}'.format(endpoint)) + self.channel = grpc.insecure_channel(endpoint) + self.server = monitoring_pb2_grpc.MonitoringServiceStub(self.channel) def IncludeKpi(self, request): - logger.info("IncludeKpi: {}".format(request)) + LOGGER.info('IncludeKpi: {}'.format(request)) response = self.server.IncludeKpi(request) - logger.info("IncludeKpi result: {}".format(response)) + LOGGER.info('IncludeKpi result: {}'.format(response)) return context_pb2.Empty() def MonitorKpi(self, request): - logger.info("MonitorKpi: {}".format(request)) + LOGGER.info('MonitorKpi: {}'.format(request)) response = self.server.IncludeKpi(request) - logger.info("MonitorKpi result: {}".format(response)) + LOGGER.info('MonitorKpi result: {}'.format(response)) return context_pb2.Empty() def GetStream_kpi(self, request): - logger.info("GetStream_kpi: {}".format(request)) + LOGGER.info('GetStream_kpi: {}'.format(request)) response = self.server.GetStream_kpi(request) - logger.info("GetStream_kpi result: {}".format(response)) + LOGGER.info('GetStream_kpi result: {}'.format(response)) yield response def GetInstantKpi(self, request): - logger.info("GetInstantKpi: {}".format(request)) + LOGGER.info('GetInstantKpi: {}'.format(request)) response = self.server.IncludeKpi(request) - logger.info("GetInstantKpi result: {}".format(response)) + LOGGER.info('GetInstantKpi result: {}'.format(response)) return response -if __name__ == "__main__": +if __name__ == '__main__': # get port - if len(sys.argv) > 1: - port = sys.argv[1] - else: - port = "7070" + port = sys.argv[1] if len(sys.argv) > 1 else '7070' # form request - kpi = monitoring.Kpi() - kpi.kpi_id.kpi_id = "KPIID0000" - kpi.kpiDescription = "KPI Desc" + kpi = monitoring_pb2.Kpi() + kpi.kpi_id.kpi_id = 'KPIID0000' + kpi.kpiDescription = 'KPI Desc' # make call to server - client = MonitoringClient(port) + client = MonitoringClient(port=port) response=client.IncludeKpi(kpi) diff --git a/src/monitoring/monitoring_pb2.py b/src/monitoring/monitoring_pb2.py index ec4e1a9560c4b0da040c5645c893eb97d84dd6aa..32394e232c196c4189a1e5c147980a66d6f8d34d 100644 --- a/src/monitoring/monitoring_pb2.py +++ b/src/monitoring/monitoring_pb2.py @@ -1,8 +1,7 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: monitoring.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +"""Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection @@ -12,7 +11,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -import context_pb2 as context__pb2 +from . import context_pb2 as context__pb2 DESCRIPTOR = _descriptor.FileDescriptor( @@ -20,7 +19,8 @@ DESCRIPTOR = _descriptor.FileDescriptor( package='monitoring', syntax='proto3', serialized_options=None, - serialized_pb=_b('\n\x10monitoring.proto\x12\nmonitoring\x1a\rcontext.proto\"|\n\x03Kpi\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x16\n\x0ekpiDescription\x18\x03 \x01(\t\x12\'\n\tkpi_value\x18\x04 \x01(\x0b\x32\x14.monitoring.KpiValue\"&\n\x05KpiId\x12\x1d\n\x06kpi_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"T\n\tKpiDevice\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"+\n\x07KpiList\x12 \n\x07kpiList\x18\x01 \x03(\x0b\x32\x0f.monitoring.Kpi\"M\n\x08KpiValue\x12\x10\n\x06intVal\x18\x01 \x01(\rH\x00\x12\x13\n\tstringVal\x18\x02 \x01(\tH\x00\x12\x11\n\x07\x62oolVal\x18\x03 \x01(\x08H\x00\x42\x07\n\x05value2\xeb\x01\n\x11MonitoringService\x12/\n\nIncludeKpi\x12\x0f.monitoring.Kpi\x1a\x0e.context.Empty\"\x00\x12\x35\n\nMonitorKpi\x12\x15.monitoring.KpiDevice\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetStream_kpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x30\x01\x12\x35\n\rGetInstantKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x62\x06proto3') + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x10monitoring.proto\x12\nmonitoring\x1a\rcontext.proto\"|\n\x03Kpi\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x16\n\x0ekpiDescription\x18\x03 \x01(\t\x12\'\n\tkpi_value\x18\x04 \x01(\x0b\x32\x14.monitoring.KpiValue\"&\n\x05KpiId\x12\x1d\n\x06kpi_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"T\n\tKpiDevice\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"+\n\x07KpiList\x12 \n\x07kpiList\x18\x01 \x03(\x0b\x32\x0f.monitoring.Kpi\"M\n\x08KpiValue\x12\x10\n\x06intVal\x18\x01 \x01(\rH\x00\x12\x13\n\tstringVal\x18\x02 \x01(\tH\x00\x12\x11\n\x07\x62oolVal\x18\x03 \x01(\x08H\x00\x42\x07\n\x05value2\xeb\x01\n\x11MonitoringService\x12/\n\nIncludeKpi\x12\x0f.monitoring.Kpi\x1a\x0e.context.Empty\"\x00\x12\x35\n\nMonitorKpi\x12\x15.monitoring.KpiDevice\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetStream_kpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x30\x01\x12\x35\n\rGetInstantKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x62\x06proto3' , dependencies=[context__pb2.DESCRIPTOR,]) @@ -33,6 +33,7 @@ _KPI = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='kpi_id', full_name='monitoring.Kpi.kpi_id', index=0, @@ -40,28 +41,28 @@ _KPI = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='timestamp', full_name='monitoring.Kpi.timestamp', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='kpiDescription', full_name='monitoring.Kpi.kpiDescription', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='kpi_value', full_name='monitoring.Kpi.kpi_value', index=3, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -85,6 +86,7 @@ _KPIID = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='kpi_id', full_name='monitoring.KpiId.kpi_id', index=0, @@ -92,7 +94,7 @@ _KPIID = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -116,6 +118,7 @@ _KPIDEVICE = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='kpi_id', full_name='monitoring.KpiDevice.kpi_id', index=0, @@ -123,14 +126,14 @@ _KPIDEVICE = _descriptor.Descriptor( has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='device_id', full_name='monitoring.KpiDevice.device_id', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -154,6 +157,7 @@ _KPILIST = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='kpiList', full_name='monitoring.KpiList.kpiList', index=0, @@ -161,7 +165,7 @@ _KPILIST = _descriptor.Descriptor( has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -185,6 +189,7 @@ _KPIVALUE = _descriptor.Descriptor( filename=None, file=DESCRIPTOR, containing_type=None, + create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='intVal', full_name='monitoring.KpiValue.intVal', index=0, @@ -192,21 +197,21 @@ _KPIVALUE = _descriptor.Descriptor( has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='stringVal', full_name='monitoring.KpiValue.stringVal', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='boolVal', full_name='monitoring.KpiValue.boolVal', index=2, number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -220,7 +225,9 @@ _KPIVALUE = _descriptor.Descriptor( oneofs=[ _descriptor.OneofDescriptor( name='value', full_name='monitoring.KpiValue.value', - index=0, containing_type=None, fields=[]), + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], serialized_start=344, serialized_end=421, @@ -248,39 +255,39 @@ DESCRIPTOR.message_types_by_name['KpiList'] = _KPILIST DESCRIPTOR.message_types_by_name['KpiValue'] = _KPIVALUE _sym_db.RegisterFileDescriptor(DESCRIPTOR) -Kpi = _reflection.GeneratedProtocolMessageType('Kpi', (_message.Message,), dict( - DESCRIPTOR = _KPI, - __module__ = 'monitoring_pb2' +Kpi = _reflection.GeneratedProtocolMessageType('Kpi', (_message.Message,), { + 'DESCRIPTOR' : _KPI, + '__module__' : 'monitoring_pb2' # @@protoc_insertion_point(class_scope:monitoring.Kpi) - )) + }) _sym_db.RegisterMessage(Kpi) -KpiId = _reflection.GeneratedProtocolMessageType('KpiId', (_message.Message,), dict( - DESCRIPTOR = _KPIID, - __module__ = 'monitoring_pb2' +KpiId = _reflection.GeneratedProtocolMessageType('KpiId', (_message.Message,), { + 'DESCRIPTOR' : _KPIID, + '__module__' : 'monitoring_pb2' # @@protoc_insertion_point(class_scope:monitoring.KpiId) - )) + }) _sym_db.RegisterMessage(KpiId) -KpiDevice = _reflection.GeneratedProtocolMessageType('KpiDevice', (_message.Message,), dict( - DESCRIPTOR = _KPIDEVICE, - __module__ = 'monitoring_pb2' +KpiDevice = _reflection.GeneratedProtocolMessageType('KpiDevice', (_message.Message,), { + 'DESCRIPTOR' : _KPIDEVICE, + '__module__' : 'monitoring_pb2' # @@protoc_insertion_point(class_scope:monitoring.KpiDevice) - )) + }) _sym_db.RegisterMessage(KpiDevice) -KpiList = _reflection.GeneratedProtocolMessageType('KpiList', (_message.Message,), dict( - DESCRIPTOR = _KPILIST, - __module__ = 'monitoring_pb2' +KpiList = _reflection.GeneratedProtocolMessageType('KpiList', (_message.Message,), { + 'DESCRIPTOR' : _KPILIST, + '__module__' : 'monitoring_pb2' # @@protoc_insertion_point(class_scope:monitoring.KpiList) - )) + }) _sym_db.RegisterMessage(KpiList) -KpiValue = _reflection.GeneratedProtocolMessageType('KpiValue', (_message.Message,), dict( - DESCRIPTOR = _KPIVALUE, - __module__ = 'monitoring_pb2' +KpiValue = _reflection.GeneratedProtocolMessageType('KpiValue', (_message.Message,), { + 'DESCRIPTOR' : _KPIVALUE, + '__module__' : 'monitoring_pb2' # @@protoc_insertion_point(class_scope:monitoring.KpiValue) - )) + }) _sym_db.RegisterMessage(KpiValue) @@ -291,6 +298,7 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=0, serialized_options=None, + create_key=_descriptor._internal_create_key, serialized_start=424, serialized_end=659, methods=[ @@ -302,6 +310,7 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor( input_type=_KPI, output_type=context__pb2._EMPTY, serialized_options=None, + create_key=_descriptor._internal_create_key, ), _descriptor.MethodDescriptor( name='MonitorKpi', @@ -311,6 +320,7 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor( input_type=_KPIDEVICE, output_type=context__pb2._EMPTY, serialized_options=None, + create_key=_descriptor._internal_create_key, ), _descriptor.MethodDescriptor( name='GetStream_kpi', @@ -320,6 +330,7 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor( input_type=_KPIID, output_type=_KPI, serialized_options=None, + create_key=_descriptor._internal_create_key, ), _descriptor.MethodDescriptor( name='GetInstantKpi', @@ -329,6 +340,7 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor( input_type=_KPIID, output_type=_KPI, serialized_options=None, + create_key=_descriptor._internal_create_key, ), ]) _sym_db.RegisterServiceDescriptor(_MONITORINGSERVICE) diff --git a/src/monitoring/monitoring_pb2_grpc.py b/src/monitoring/monitoring_pb2_grpc.py index 10904ec3785342e05b730de0456cf25b443af7d1..2be807eee81ba23cb335e8830fb196c6f19f1425 100644 --- a/src/monitoring/monitoring_pb2_grpc.py +++ b/src/monitoring/monitoring_pb2_grpc.py @@ -1,98 +1,166 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" import grpc -import context_pb2 as context__pb2 -import monitoring_pb2 as monitoring__pb2 +from . import context_pb2 as context__pb2 +from . import monitoring_pb2 as monitoring__pb2 class MonitoringServiceStub(object): - # missing associated documentation comment in .proto file - pass - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.IncludeKpi = channel.unary_unary( - '/monitoring.MonitoringService/IncludeKpi', - request_serializer=monitoring__pb2.Kpi.SerializeToString, - response_deserializer=context__pb2.Empty.FromString, - ) - self.MonitorKpi = channel.unary_unary( - '/monitoring.MonitoringService/MonitorKpi', - request_serializer=monitoring__pb2.KpiDevice.SerializeToString, - response_deserializer=context__pb2.Empty.FromString, - ) - self.GetStream_kpi = channel.unary_stream( - '/monitoring.MonitoringService/GetStream_kpi', - request_serializer=monitoring__pb2.KpiId.SerializeToString, - response_deserializer=monitoring__pb2.Kpi.FromString, - ) - self.GetInstantKpi = channel.unary_unary( - '/monitoring.MonitoringService/GetInstantKpi', - request_serializer=monitoring__pb2.KpiId.SerializeToString, - response_deserializer=monitoring__pb2.Kpi.FromString, - ) + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.IncludeKpi = channel.unary_unary( + '/monitoring.MonitoringService/IncludeKpi', + request_serializer=monitoring__pb2.Kpi.SerializeToString, + response_deserializer=context__pb2.Empty.FromString, + ) + self.MonitorKpi = channel.unary_unary( + '/monitoring.MonitoringService/MonitorKpi', + request_serializer=monitoring__pb2.KpiDevice.SerializeToString, + response_deserializer=context__pb2.Empty.FromString, + ) + self.GetStream_kpi = channel.unary_stream( + '/monitoring.MonitoringService/GetStream_kpi', + request_serializer=monitoring__pb2.KpiId.SerializeToString, + response_deserializer=monitoring__pb2.Kpi.FromString, + ) + self.GetInstantKpi = channel.unary_unary( + '/monitoring.MonitoringService/GetInstantKpi', + request_serializer=monitoring__pb2.KpiId.SerializeToString, + response_deserializer=monitoring__pb2.Kpi.FromString, + ) class MonitoringServiceServicer(object): - # missing associated documentation comment in .proto file - pass - - def IncludeKpi(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def MonitorKpi(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetStream_kpi(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetInstantKpi(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + """Missing associated documentation comment in .proto file.""" + + def IncludeKpi(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MonitorKpi(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetStream_kpi(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetInstantKpi(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') def add_MonitoringServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'IncludeKpi': grpc.unary_unary_rpc_method_handler( - servicer.IncludeKpi, - request_deserializer=monitoring__pb2.Kpi.FromString, - response_serializer=context__pb2.Empty.SerializeToString, - ), - 'MonitorKpi': grpc.unary_unary_rpc_method_handler( - servicer.MonitorKpi, - request_deserializer=monitoring__pb2.KpiDevice.FromString, - response_serializer=context__pb2.Empty.SerializeToString, - ), - 'GetStream_kpi': grpc.unary_stream_rpc_method_handler( - servicer.GetStream_kpi, - request_deserializer=monitoring__pb2.KpiId.FromString, - response_serializer=monitoring__pb2.Kpi.SerializeToString, - ), - 'GetInstantKpi': grpc.unary_unary_rpc_method_handler( - servicer.GetInstantKpi, - request_deserializer=monitoring__pb2.KpiId.FromString, - response_serializer=monitoring__pb2.Kpi.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'monitoring.MonitoringService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) + rpc_method_handlers = { + 'IncludeKpi': grpc.unary_unary_rpc_method_handler( + servicer.IncludeKpi, + request_deserializer=monitoring__pb2.Kpi.FromString, + response_serializer=context__pb2.Empty.SerializeToString, + ), + 'MonitorKpi': grpc.unary_unary_rpc_method_handler( + servicer.MonitorKpi, + request_deserializer=monitoring__pb2.KpiDevice.FromString, + response_serializer=context__pb2.Empty.SerializeToString, + ), + 'GetStream_kpi': grpc.unary_stream_rpc_method_handler( + servicer.GetStream_kpi, + request_deserializer=monitoring__pb2.KpiId.FromString, + response_serializer=monitoring__pb2.Kpi.SerializeToString, + ), + 'GetInstantKpi': grpc.unary_unary_rpc_method_handler( + servicer.GetInstantKpi, + request_deserializer=monitoring__pb2.KpiId.FromString, + response_serializer=monitoring__pb2.Kpi.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'monitoring.MonitoringService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class MonitoringService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def IncludeKpi(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/monitoring.MonitoringService/IncludeKpi', + monitoring__pb2.Kpi.SerializeToString, + context__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MonitorKpi(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/monitoring.MonitoringService/MonitorKpi', + monitoring__pb2.KpiDevice.SerializeToString, + context__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetStream_kpi(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/monitoring.MonitoringService/GetStream_kpi', + monitoring__pb2.KpiId.SerializeToString, + monitoring__pb2.Kpi.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetInstantKpi(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/monitoring.MonitoringService/GetInstantKpi', + monitoring__pb2.KpiId.SerializeToString, + monitoring__pb2.Kpi.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/monitoring/monitoring_server.py b/src/monitoring/monitoring_server.py index aaa0d3895d57061133f1dbe83ce937c0994f42aa..7a237bef6c7248f63b5d1eef9f677a6dde5f807f 100644 --- a/src/monitoring/monitoring_server.py +++ b/src/monitoring/monitoring_server.py @@ -2,86 +2,94 @@ import os from concurrent import futures +from src.monitoring import context_pb2 import grpc -import numpy +#import numpy import time -import monitoring_pb2 -import monitoring_pb2_grpc +from . import monitoring_pb2 +from . import monitoring_pb2_grpc from grpc_health.v1 import health from grpc_health.v1 import health_pb2 from grpc_health.v1 import health_pb2_grpc -from logger import getJSONLogger -logger = getJSONLogger('monitoringservice-server') -logger.setLevel('DEBUG') +from .logger import getJSONLogger +LOGGER = getJSONLogger('monitoringservice-server') +LOGGER.setLevel('DEBUG') import threading from prometheus_client import start_http_server, Summary from prometheus_client import Counter, Gauge +PORT = 7070 + MONITORING_GETINSTANTKPI_REQUEST_TIME = Summary('monitoring_getinstantkpi_processing_seconds', 'Time spent processing monitoring instant kpi request') MONITORING_INCLUDEKPI_COUNTER = Counter('monitoring_includekpi_counter', 'Monitoring include kpi request counter') -class monitoringService(monitoring_pb2_grpc.MonitoringServiceServicer): +class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceServicer): def __init__(self): - logger.info("init monitoringService") + LOGGER.info('Init monitoringService') def IncludeKpi(self, request, context): - #KPI, returns empty - logger.info("IncludeKpi") + # receives monitoring.KPI returns context.Empty + LOGGER.info('IncludeKpi') MONITORING_INCLUDEKPI_COUNTER.inc() - return + return context_pb2.Empty() def MonitorKpi ( self, request, context): - #KpiDevice returns (google.protobuf.Empty) {} - logger.info("IncludeKpi") - return + # receives monitoring.KpiDevice returns context.Empty + LOGGER.info('IncludeKpi') + return context_pb2.Empty() def GetStream_kpi ( self, request, context): - #KpiId ) returns (stream Kpi) {} - logger.info("IncludeKpi") + # receives monitoring.KpiId returns stream monitoring.Kpi + LOGGER.info('IncludeKpi') return @MONITORING_GETINSTANTKPI_REQUEST_TIME.time() def GetInstantKpi ( self, request, context): - #KpiId ) returns ( Kpi) {} - logger.info("IncludeKpi") - return - - -if __name__ == "__main__": - logger.info("initializing monitoringService") - - port = os.environ.get('PORT', "7070") + # receives monitoring.KpiId returns monitoring.Kpi + LOGGER.info('IncludeKpi') + return monitoring_pb2.Kpi() +def start_server(address='[::]', port=PORT, max_workers=10): # create gRPC server - serverGRPC = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) # ,interceptors=(tracer_interceptor,)) + serverGRPC = grpc.server(futures.ThreadPoolExecutor(max_workers=max_workers)) # ,interceptors=(tracer_interceptor,)) - # add class to gRPC server - service = monitoringService() - monitoring_pb2_grpc.add_MonitoringServiceServicer_to_server(service, serverGRPC) + # add monitoring servicer class to gRPC server + monitoring_servicer = MonitoringServiceServicerImpl() + monitoring_pb2_grpc.add_MonitoringServiceServicer_to_server(monitoring_servicer, serverGRPC) - health_servicer = health.HealthServicer(experimental_non_blocking=True,experimental_thread_pool=futures.ThreadPoolExecutor(max_workers=1)) + # add gRPC health checker servicer class to gRPC server + health_servicer = health.HealthServicer( + experimental_non_blocking=True, experimental_thread_pool=futures.ThreadPoolExecutor(max_workers=1)) health_pb2_grpc.add_HealthServicer_to_server(health_servicer, serverGRPC) # start server - logger.info("listening on port: " + port) - serverGRPC.add_insecure_port('[::]:'+port) + endpoint = '{}:{}'.format(address, port) + LOGGER.info('Listening on {}'.format(endpoint)) + serverGRPC.add_insecure_port(endpoint) serverGRPC.start() - health_servicer.set("", health_pb2.HealthCheckResponse.SERVING) + health_servicer.set('', health_pb2.HealthCheckResponse.SERVING) # pylint: disable=maybe-no-member + return(serverGRPC) + +def stop_server(serverGRPC, grace_period=0): + serverGRPC.stop(grace_period) + +if __name__ == '__main__': + LOGGER.info('initializing monitoringService') + port = os.environ.get('PORT', str(PORT)) + serverGRPC = start_server(port=port) # keep alive try: - while True: - time.sleep(0.1) + while True: time.sleep(0.1) except KeyboardInterrupt: - serverGRPC.stop(0) - + stop_server(serverGRPC) diff --git a/src/monitoring/requirements.in b/src/monitoring/requirements.in index b7eda3d6bcc625e18887caec6dc18a4f17b0c31c..bc7cb531e1c2b02215444d77a07565b8e393c0c7 100644 --- a/src/monitoring/requirements.in +++ b/src/monitoring/requirements.in @@ -7,4 +7,5 @@ python-json-logger google-cloud-profiler numpy prometheus-client - +pytest +pytest-benchmark diff --git a/src/monitoring/requirements.txt b/src/monitoring/requirements.txt index 7b000b30e0b048875b2bcf56b4d9c1999c9f5e16..b8ecdfb63b74289c39cd6263b671ee7d9d22ef69 100644 --- a/src/monitoring/requirements.txt +++ b/src/monitoring/requirements.txt @@ -1,9 +1,11 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.9 # To update, run: # # pip-compile --output-file=requirements.txt requirements.in # +attrs==21.2.0 + # via pytest cachetools==4.2.2 # via google-auth certifi==2021.5.30 @@ -20,16 +22,16 @@ google-api-python-client==2.8.0 # via # google-cloud-profiler # google-python-cloud-debugger -google-auth-httplib2==0.1.0 +google-auth==1.31.0 # via + # google-api-core # google-api-python-client + # google-auth-httplib2 # google-cloud-profiler # google-python-cloud-debugger -google-auth==1.31.0 +google-auth-httplib2==0.1.0 # via - # google-api-core # google-api-python-client - # google-auth-httplib2 # google-cloud-profiler # google-python-cloud-debugger google-cloud-profiler==3.0.4 @@ -38,42 +40,60 @@ google-python-cloud-debugger==2.17 # via -r requirements.in googleapis-common-protos==1.53.0 # via google-api-core -grpcio-health-checking==1.38.0 - # via -r requirements.in grpcio==1.38.0 # via # -r requirements.in # grpcio-health-checking +grpcio-health-checking==1.38.0 + # via -r requirements.in httplib2==0.19.1 # via # google-api-python-client # google-auth-httplib2 idna==2.10 # via requests +iniconfig==1.1.1 + # via pytest numpy==1.20.3 # via -r requirements.in -opencensus-context==0.1.2 - # via opencensus opencensus[stackdriver]==0.7.13 # via -r requirements.in +opencensus-context==0.1.2 + # via opencensus packaging==20.9 - # via google-api-core + # via + # google-api-core + # pytest +pluggy==0.13.1 + # via pytest +prometheus-client==0.11.0 + # via -r requirements.in protobuf==3.17.3 # via # google-api-core # google-cloud-profiler # googleapis-common-protos # grpcio-health-checking -pyasn1-modules==0.2.8 - # via google-auth +py==1.10.0 + # via pytest +py-cpuinfo==8.0.0 + # via pytest-benchmark pyasn1==0.4.8 # via # pyasn1-modules # rsa +pyasn1-modules==0.2.8 + # via google-auth pyparsing==2.4.7 # via # httplib2 # packaging +pytest==6.2.4 + # via + # -r requirements.in + # pytest-benchmark +pytest-benchmark==3.4.1 + # via -r requirements.in python-json-logger==2.0.1 # via -r requirements.in pytz==2021.1 @@ -95,6 +115,8 @@ six==1.16.0 # google-python-cloud-debugger # grpcio # protobuf +toml==0.10.2 + # via pytest uritemplate==3.0.1 # via google-api-python-client urllib3==1.26.5 diff --git a/src/monitoring/test_monitoring.py b/src/monitoring/test_monitoring.py new file mode 100644 index 0000000000000000000000000000000000000000..905b0de677dcf0cb07a5c2232fd9cf10560c30c2 --- /dev/null +++ b/src/monitoring/test_monitoring.py @@ -0,0 +1,53 @@ +import logging, pytest, time +from . import context_pb2 +from . import monitoring_pb2 +from .monitoring_server import start_server, stop_server +from .monitoring_client import MonitoringClient + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +SERVER_ADDRESS = '127.0.0.1' +LISTEN_ADDRESS = '[::]' +PORT = 7070 + +# This fixture will be requested by test cases and last during testing session +@pytest.fixture(scope='session') +def monitoring_service(): + LOGGER.warning('monitoring_service begin') + + LOGGER.info('Initializing MonitoringService...') + server = start_server(address=LISTEN_ADDRESS, port=PORT) + + # yield the server, when test finishes, execution will resume to stop it + LOGGER.warning('monitoring_service yielding') + yield server + + LOGGER.info('Terminating MonitoringService...') + stop_server(server) + +# This fixture will be requested by test cases and last during testing session. +# The client requires the server, so client fixture has the server as dependency. +@pytest.fixture(scope='session') +def monitoring_client(monitoring_service): + LOGGER.warning('monitoring_client begin') + client = MonitoringClient(server=SERVER_ADDRESS, port=PORT) # instantiate the client + LOGGER.warning('monitoring_client returning') + return client + +# Test case that makes use of client fixture to test server's IncludeKpi method +def test_include_kpi(monitoring_client): + LOGGER.warning('test_include_kpi begin') + # form request + kpi = monitoring_pb2.Kpi() + kpi.kpi_id.kpi_id.uuid = 'KPIID0000' # pylint: disable=maybe-no-member + kpi.kpiDescription = 'KPI Desc' + + # make call to server + LOGGER.warning('test_include_kpi requesting') + response = monitoring_client.IncludeKpi(kpi) + LOGGER.debug(str(response)) + assert isinstance(response, context_pb2.Empty) + +# You can add as many tests as you want. Just copy the "def test_include_kpi(monitoring_client):" and implement +# appropriate tests. monitoring_client and monitoring_service fixtures and their connection are reused along tests.