diff --git a/.github/workflows/mock_service.yml b/.github/workflows/mock_service.yml index dc9d846..04084c0 100644 --- a/.github/workflows/mock_service.yml +++ b/.github/workflows/mock_service.yml @@ -126,7 +126,7 @@ jobs: shell: bash working-directory: mock_service run: | - python3 -m pip install -r ./requirements.txt + python3 -m pip install --pre -r ./requirements.txt python3 -m pip install -r ./requirements-dev.txt - name: Run tests diff --git a/mock_service/README.md b/mock_service/README.md index a6f6fe4..328b2d5 100644 --- a/mock_service/README.md +++ b/mock_service/README.md @@ -68,3 +68,7 @@ API documentation is generated from Python docs and embedded into markdown files ```bash ./update-api-docs.sh ``` + +# What's not supported? +Any form of array support e.g no VSS datapoint that has DataType.*ARRAY. +If values in Kuksa Databroker are modified outside of behaviors, the changes won't be picked up by the mock service. Instead try to model another behavior that listens to ACTUATOR_TARGET/VALUE and set it like this. diff --git a/mock_service/doc/pydoc/loader.md b/mock_service/doc/pydoc/loader.md index 1abc4d2..ab596cc 100644 --- a/mock_service/doc/pydoc/loader.md +++ b/mock_service/doc/pydoc/loader.md @@ -15,7 +15,7 @@ class PythonDslLoader(MockLoader) #### load ```python -def load(vdb_metadata) -> LoaderResult +def load(client) -> LoaderResult ``` Load mocking configuration from Python script. diff --git a/mock_service/doc/pydoc/mocking-dsl.md b/mock_service/doc/pydoc/mocking-dsl.md index 324cf05..c438a22 100644 --- a/mock_service/doc/pydoc/mocking-dsl.md +++ b/mock_service/doc/pydoc/mocking-dsl.md @@ -9,7 +9,7 @@ ```python def mock_datapoint(path: str, initial_value: Any, - behaviors: List[Behavior] = list()) + behaviors: List[Behavior] = None) ``` Mock a single datapoint. @@ -117,3 +117,25 @@ See `__resolve_value` for documentation of value resolution. - `AnimationAction` - The created AnimationAction. + + +#### create\_event\_trigger + +```python +def create_event_trigger(type: EventType, + path: Optional[str] = None) -> EventTrigger +``` + +Create an EventTrigger for the mocked datapoint in context of this call OR the explicitly passed one. + +**Arguments**: + +- `type` _EventType_ - The type of event which will activate the trigger. +- `path` _Optional[str]_ - The data point which shall raise the event. + If not set defaults to the mocked data point in context of the call. + + +**Returns**: + +- `EvenTrigger` - The created EventTrigger. + diff --git a/mock_service/kuksa/__init__.py b/mock_service/kuksa/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/kuksa/val/__init__.py b/mock_service/kuksa/val/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/kuksa/val/v1/__init__.py b/mock_service/kuksa/val/v1/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/kuksa/val/v1/types_pb2.py b/mock_service/kuksa/val/v1/types_pb2.py deleted file mode 100644 index dfc09fb..0000000 --- a/mock_service/kuksa/val/v1/types_pb2.py +++ /dev/null @@ -1,305 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: kuksa/val/v1/types.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18kuksa/val/v1/types.proto\x12\x0ckuksa.val.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9d\x01\n\tDataEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12\x30\n\x0f\x61\x63tuator_target\x18\x03 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12(\n\x08metadata\x18\n \x01(\x0b\x32\x16.kuksa.val.v1.Metadata\"\xdc\x04\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x06string\x18\x0b \x01(\tH\x00\x12\x0e\n\x04\x62ool\x18\x0c \x01(\x08H\x00\x12\x0f\n\x05int32\x18\r \x01(\x11H\x00\x12\x0f\n\x05int64\x18\x0e \x01(\x12H\x00\x12\x10\n\x06uint32\x18\x0f \x01(\rH\x00\x12\x10\n\x06uint64\x18\x10 \x01(\x04H\x00\x12\x0f\n\x05\x66loat\x18\x11 \x01(\x02H\x00\x12\x10\n\x06\x64ouble\x18\x12 \x01(\x01H\x00\x12\x31\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x19.kuksa.val.v1.StringArrayH\x00\x12-\n\nbool_array\x18\x16 \x01(\x0b\x32\x17.kuksa.val.v1.BoolArrayH\x00\x12/\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x18.kuksa.val.v1.Int32ArrayH\x00\x12/\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x18.kuksa.val.v1.Int64ArrayH\x00\x12\x31\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x19.kuksa.val.v1.Uint32ArrayH\x00\x12\x31\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x19.kuksa.val.v1.Uint64ArrayH\x00\x12/\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x18.kuksa.val.v1.FloatArrayH\x00\x12\x31\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x19.kuksa.val.v1.DoubleArrayH\x00\x42\x07\n\x05value\"\xc3\x03\n\x08Metadata\x12)\n\tdata_type\x18\x0b \x01(\x0e\x32\x16.kuksa.val.v1.DataType\x12+\n\nentry_type\x18\x0c \x01(\x0e\x32\x17.kuksa.val.v1.EntryType\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x63omment\x18\x0e \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65precation\x18\x0f \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04unit\x18\x10 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x11value_restriction\x18\x11 \x01(\x0b\x32\x1e.kuksa.val.v1.ValueRestriction\x12*\n\x08\x61\x63tuator\x18\x14 \x01(\x0b\x32\x16.kuksa.val.v1.ActuatorH\x00\x12&\n\x06sensor\x18\x1e \x01(\x0b\x32\x14.kuksa.val.v1.SensorH\x00\x12,\n\tattribute\x18( \x01(\x0b\x32\x17.kuksa.val.v1.AttributeH\x00\x42\x10\n\x0e\x65ntry_specificB\x0e\n\x0c_descriptionB\n\n\x08_commentB\x0e\n\x0c_deprecationB\x07\n\x05_unit\"\n\n\x08\x41\x63tuator\"\x08\n\x06Sensor\"\x0b\n\tAttribute\"\xfe\x01\n\x10ValueRestriction\x12\x36\n\x06string\x18\x15 \x01(\x0b\x32$.kuksa.val.v1.ValueRestrictionStringH\x00\x12\x33\n\x06signed\x18\x16 \x01(\x0b\x32!.kuksa.val.v1.ValueRestrictionIntH\x00\x12\x36\n\x08unsigned\x18\x17 \x01(\x0b\x32\".kuksa.val.v1.ValueRestrictionUintH\x00\x12=\n\x0e\x66loating_point\x18\x18 \x01(\x0b\x32#.kuksa.val.v1.ValueRestrictionFloatH\x00\x42\x06\n\x04type\"a\n\x13ValueRestrictionInt\x12\x10\n\x03min\x18\x01 \x01(\x12H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x12H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x12\x42\x06\n\x04_minB\x06\n\x04_max\"b\n\x14ValueRestrictionUint\x12\x10\n\x03min\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x04\x42\x06\n\x04_minB\x06\n\x04_max\"c\n\x15ValueRestrictionFloat\x12\x10\n\x03min\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x01\x42\x06\n\x04_minB\x06\n\x04_max\"0\n\x16ValueRestrictionString\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\t\"6\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\"B\n\x0e\x44\x61taEntryError\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\"\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01*\xa9\x05\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x41TA_TYPE_STRING\x10\x01\x12\x15\n\x11\x44\x41TA_TYPE_BOOLEAN\x10\x02\x12\x12\n\x0e\x44\x41TA_TYPE_INT8\x10\x03\x12\x13\n\x0f\x44\x41TA_TYPE_INT16\x10\x04\x12\x13\n\x0f\x44\x41TA_TYPE_INT32\x10\x05\x12\x13\n\x0f\x44\x41TA_TYPE_INT64\x10\x06\x12\x13\n\x0f\x44\x41TA_TYPE_UINT8\x10\x07\x12\x14\n\x10\x44\x41TA_TYPE_UINT16\x10\x08\x12\x14\n\x10\x44\x41TA_TYPE_UINT32\x10\t\x12\x14\n\x10\x44\x41TA_TYPE_UINT64\x10\n\x12\x13\n\x0f\x44\x41TA_TYPE_FLOAT\x10\x0b\x12\x14\n\x10\x44\x41TA_TYPE_DOUBLE\x10\x0c\x12\x17\n\x13\x44\x41TA_TYPE_TIMESTAMP\x10\r\x12\x1a\n\x16\x44\x41TA_TYPE_STRING_ARRAY\x10\x14\x12\x1b\n\x17\x44\x41TA_TYPE_BOOLEAN_ARRAY\x10\x15\x12\x18\n\x14\x44\x41TA_TYPE_INT8_ARRAY\x10\x16\x12\x19\n\x15\x44\x41TA_TYPE_INT16_ARRAY\x10\x17\x12\x19\n\x15\x44\x41TA_TYPE_INT32_ARRAY\x10\x18\x12\x19\n\x15\x44\x41TA_TYPE_INT64_ARRAY\x10\x19\x12\x19\n\x15\x44\x41TA_TYPE_UINT8_ARRAY\x10\x1a\x12\x1a\n\x16\x44\x41TA_TYPE_UINT16_ARRAY\x10\x1b\x12\x1a\n\x16\x44\x41TA_TYPE_UINT32_ARRAY\x10\x1c\x12\x1a\n\x16\x44\x41TA_TYPE_UINT64_ARRAY\x10\x1d\x12\x19\n\x15\x44\x41TA_TYPE_FLOAT_ARRAY\x10\x1e\x12\x1a\n\x16\x44\x41TA_TYPE_DOUBLE_ARRAY\x10\x1f\x12\x1d\n\x19\x44\x41TA_TYPE_TIMESTAMP_ARRAY\x10 *q\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x45NTRY_TYPE_ATTRIBUTE\x10\x01\x12\x15\n\x11\x45NTRY_TYPE_SENSOR\x10\x02\x12\x17\n\x13\x45NTRY_TYPE_ACTUATOR\x10\x03*}\n\x04View\x12\x14\n\x10VIEW_UNSPECIFIED\x10\x00\x12\x16\n\x12VIEW_CURRENT_VALUE\x10\x01\x12\x15\n\x11VIEW_TARGET_VALUE\x10\x02\x12\x11\n\rVIEW_METADATA\x10\x03\x12\x0f\n\x0bVIEW_FIELDS\x10\n\x12\x0c\n\x08VIEW_ALL\x10\x14*\x9c\x03\n\x05\x46ield\x12\x15\n\x11\x46IELD_UNSPECIFIED\x10\x00\x12\x0e\n\nFIELD_PATH\x10\x01\x12\x0f\n\x0b\x46IELD_VALUE\x10\x02\x12\x19\n\x15\x46IELD_ACTUATOR_TARGET\x10\x03\x12\x12\n\x0e\x46IELD_METADATA\x10\n\x12\x1c\n\x18\x46IELD_METADATA_DATA_TYPE\x10\x0b\x12\x1e\n\x1a\x46IELD_METADATA_DESCRIPTION\x10\x0c\x12\x1d\n\x19\x46IELD_METADATA_ENTRY_TYPE\x10\r\x12\x1a\n\x16\x46IELD_METADATA_COMMENT\x10\x0e\x12\x1e\n\x1a\x46IELD_METADATA_DEPRECATION\x10\x0f\x12\x17\n\x13\x46IELD_METADATA_UNIT\x10\x10\x12$\n FIELD_METADATA_VALUE_RESTRICTION\x10\x11\x12\x1b\n\x17\x46IELD_METADATA_ACTUATOR\x10\x14\x12\x19\n\x15\x46IELD_METADATA_SENSOR\x10\x1e\x12\x1c\n\x18\x46IELD_METADATA_ATTRIBUTE\x10(B\x13Z\x11/kuksa_grpc_protob\x06proto3') - -_DATATYPE = DESCRIPTOR.enum_types_by_name['DataType'] -DataType = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) -_ENTRYTYPE = DESCRIPTOR.enum_types_by_name['EntryType'] -EntryType = enum_type_wrapper.EnumTypeWrapper(_ENTRYTYPE) -_VIEW = DESCRIPTOR.enum_types_by_name['View'] -View = enum_type_wrapper.EnumTypeWrapper(_VIEW) -_FIELD = DESCRIPTOR.enum_types_by_name['Field'] -Field = enum_type_wrapper.EnumTypeWrapper(_FIELD) -DATA_TYPE_UNSPECIFIED = 0 -DATA_TYPE_STRING = 1 -DATA_TYPE_BOOLEAN = 2 -DATA_TYPE_INT8 = 3 -DATA_TYPE_INT16 = 4 -DATA_TYPE_INT32 = 5 -DATA_TYPE_INT64 = 6 -DATA_TYPE_UINT8 = 7 -DATA_TYPE_UINT16 = 8 -DATA_TYPE_UINT32 = 9 -DATA_TYPE_UINT64 = 10 -DATA_TYPE_FLOAT = 11 -DATA_TYPE_DOUBLE = 12 -DATA_TYPE_TIMESTAMP = 13 -DATA_TYPE_STRING_ARRAY = 20 -DATA_TYPE_BOOLEAN_ARRAY = 21 -DATA_TYPE_INT8_ARRAY = 22 -DATA_TYPE_INT16_ARRAY = 23 -DATA_TYPE_INT32_ARRAY = 24 -DATA_TYPE_INT64_ARRAY = 25 -DATA_TYPE_UINT8_ARRAY = 26 -DATA_TYPE_UINT16_ARRAY = 27 -DATA_TYPE_UINT32_ARRAY = 28 -DATA_TYPE_UINT64_ARRAY = 29 -DATA_TYPE_FLOAT_ARRAY = 30 -DATA_TYPE_DOUBLE_ARRAY = 31 -DATA_TYPE_TIMESTAMP_ARRAY = 32 -ENTRY_TYPE_UNSPECIFIED = 0 -ENTRY_TYPE_ATTRIBUTE = 1 -ENTRY_TYPE_SENSOR = 2 -ENTRY_TYPE_ACTUATOR = 3 -VIEW_UNSPECIFIED = 0 -VIEW_CURRENT_VALUE = 1 -VIEW_TARGET_VALUE = 2 -VIEW_METADATA = 3 -VIEW_FIELDS = 10 -VIEW_ALL = 20 -FIELD_UNSPECIFIED = 0 -FIELD_PATH = 1 -FIELD_VALUE = 2 -FIELD_ACTUATOR_TARGET = 3 -FIELD_METADATA = 10 -FIELD_METADATA_DATA_TYPE = 11 -FIELD_METADATA_DESCRIPTION = 12 -FIELD_METADATA_ENTRY_TYPE = 13 -FIELD_METADATA_COMMENT = 14 -FIELD_METADATA_DEPRECATION = 15 -FIELD_METADATA_UNIT = 16 -FIELD_METADATA_VALUE_RESTRICTION = 17 -FIELD_METADATA_ACTUATOR = 20 -FIELD_METADATA_SENSOR = 30 -FIELD_METADATA_ATTRIBUTE = 40 - - -_DATAENTRY = DESCRIPTOR.message_types_by_name['DataEntry'] -_DATAPOINT = DESCRIPTOR.message_types_by_name['Datapoint'] -_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] -_ACTUATOR = DESCRIPTOR.message_types_by_name['Actuator'] -_SENSOR = DESCRIPTOR.message_types_by_name['Sensor'] -_ATTRIBUTE = DESCRIPTOR.message_types_by_name['Attribute'] -_VALUERESTRICTION = DESCRIPTOR.message_types_by_name['ValueRestriction'] -_VALUERESTRICTIONINT = DESCRIPTOR.message_types_by_name['ValueRestrictionInt'] -_VALUERESTRICTIONUINT = DESCRIPTOR.message_types_by_name['ValueRestrictionUint'] -_VALUERESTRICTIONFLOAT = DESCRIPTOR.message_types_by_name['ValueRestrictionFloat'] -_VALUERESTRICTIONSTRING = DESCRIPTOR.message_types_by_name['ValueRestrictionString'] -_ERROR = DESCRIPTOR.message_types_by_name['Error'] -_DATAENTRYERROR = DESCRIPTOR.message_types_by_name['DataEntryError'] -_STRINGARRAY = DESCRIPTOR.message_types_by_name['StringArray'] -_BOOLARRAY = DESCRIPTOR.message_types_by_name['BoolArray'] -_INT32ARRAY = DESCRIPTOR.message_types_by_name['Int32Array'] -_INT64ARRAY = DESCRIPTOR.message_types_by_name['Int64Array'] -_UINT32ARRAY = DESCRIPTOR.message_types_by_name['Uint32Array'] -_UINT64ARRAY = DESCRIPTOR.message_types_by_name['Uint64Array'] -_FLOATARRAY = DESCRIPTOR.message_types_by_name['FloatArray'] -_DOUBLEARRAY = DESCRIPTOR.message_types_by_name['DoubleArray'] -DataEntry = _reflection.GeneratedProtocolMessageType('DataEntry', (_message.Message,), { - 'DESCRIPTOR' : _DATAENTRY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DataEntry) - }) -_sym_db.RegisterMessage(DataEntry) - -Datapoint = _reflection.GeneratedProtocolMessageType('Datapoint', (_message.Message,), { - 'DESCRIPTOR' : _DATAPOINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Datapoint) - }) -_sym_db.RegisterMessage(Datapoint) - -Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { - 'DESCRIPTOR' : _METADATA, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Metadata) - }) -_sym_db.RegisterMessage(Metadata) - -Actuator = _reflection.GeneratedProtocolMessageType('Actuator', (_message.Message,), { - 'DESCRIPTOR' : _ACTUATOR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Actuator) - }) -_sym_db.RegisterMessage(Actuator) - -Sensor = _reflection.GeneratedProtocolMessageType('Sensor', (_message.Message,), { - 'DESCRIPTOR' : _SENSOR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Sensor) - }) -_sym_db.RegisterMessage(Sensor) - -Attribute = _reflection.GeneratedProtocolMessageType('Attribute', (_message.Message,), { - 'DESCRIPTOR' : _ATTRIBUTE, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Attribute) - }) -_sym_db.RegisterMessage(Attribute) - -ValueRestriction = _reflection.GeneratedProtocolMessageType('ValueRestriction', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTION, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestriction) - }) -_sym_db.RegisterMessage(ValueRestriction) - -ValueRestrictionInt = _reflection.GeneratedProtocolMessageType('ValueRestrictionInt', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionInt) - }) -_sym_db.RegisterMessage(ValueRestrictionInt) - -ValueRestrictionUint = _reflection.GeneratedProtocolMessageType('ValueRestrictionUint', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONUINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionUint) - }) -_sym_db.RegisterMessage(ValueRestrictionUint) - -ValueRestrictionFloat = _reflection.GeneratedProtocolMessageType('ValueRestrictionFloat', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONFLOAT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionFloat) - }) -_sym_db.RegisterMessage(ValueRestrictionFloat) - -ValueRestrictionString = _reflection.GeneratedProtocolMessageType('ValueRestrictionString', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONSTRING, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionString) - }) -_sym_db.RegisterMessage(ValueRestrictionString) - -Error = _reflection.GeneratedProtocolMessageType('Error', (_message.Message,), { - 'DESCRIPTOR' : _ERROR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Error) - }) -_sym_db.RegisterMessage(Error) - -DataEntryError = _reflection.GeneratedProtocolMessageType('DataEntryError', (_message.Message,), { - 'DESCRIPTOR' : _DATAENTRYERROR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DataEntryError) - }) -_sym_db.RegisterMessage(DataEntryError) - -StringArray = _reflection.GeneratedProtocolMessageType('StringArray', (_message.Message,), { - 'DESCRIPTOR' : _STRINGARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.StringArray) - }) -_sym_db.RegisterMessage(StringArray) - -BoolArray = _reflection.GeneratedProtocolMessageType('BoolArray', (_message.Message,), { - 'DESCRIPTOR' : _BOOLARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.BoolArray) - }) -_sym_db.RegisterMessage(BoolArray) - -Int32Array = _reflection.GeneratedProtocolMessageType('Int32Array', (_message.Message,), { - 'DESCRIPTOR' : _INT32ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Int32Array) - }) -_sym_db.RegisterMessage(Int32Array) - -Int64Array = _reflection.GeneratedProtocolMessageType('Int64Array', (_message.Message,), { - 'DESCRIPTOR' : _INT64ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Int64Array) - }) -_sym_db.RegisterMessage(Int64Array) - -Uint32Array = _reflection.GeneratedProtocolMessageType('Uint32Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT32ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Uint32Array) - }) -_sym_db.RegisterMessage(Uint32Array) - -Uint64Array = _reflection.GeneratedProtocolMessageType('Uint64Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT64ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Uint64Array) - }) -_sym_db.RegisterMessage(Uint64Array) - -FloatArray = _reflection.GeneratedProtocolMessageType('FloatArray', (_message.Message,), { - 'DESCRIPTOR' : _FLOATARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.FloatArray) - }) -_sym_db.RegisterMessage(FloatArray) - -DoubleArray = _reflection.GeneratedProtocolMessageType('DoubleArray', (_message.Message,), { - 'DESCRIPTOR' : _DOUBLEARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DoubleArray) - }) -_sym_db.RegisterMessage(DoubleArray) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'Z\021/kuksa_grpc_proto' - _DATATYPE._serialized_start=2306 - _DATATYPE._serialized_end=2987 - _ENTRYTYPE._serialized_start=2989 - _ENTRYTYPE._serialized_end=3102 - _VIEW._serialized_start=3104 - _VIEW._serialized_end=3229 - _FIELD._serialized_start=3232 - _FIELD._serialized_end=3644 - _DATAENTRY._serialized_start=76 - _DATAENTRY._serialized_end=233 - _DATAPOINT._serialized_start=236 - _DATAPOINT._serialized_end=840 - _METADATA._serialized_start=843 - _METADATA._serialized_end=1294 - _ACTUATOR._serialized_start=1296 - _ACTUATOR._serialized_end=1306 - _SENSOR._serialized_start=1308 - _SENSOR._serialized_end=1316 - _ATTRIBUTE._serialized_start=1318 - _ATTRIBUTE._serialized_end=1329 - _VALUERESTRICTION._serialized_start=1332 - _VALUERESTRICTION._serialized_end=1586 - _VALUERESTRICTIONINT._serialized_start=1588 - _VALUERESTRICTIONINT._serialized_end=1685 - _VALUERESTRICTIONUINT._serialized_start=1687 - _VALUERESTRICTIONUINT._serialized_end=1785 - _VALUERESTRICTIONFLOAT._serialized_start=1787 - _VALUERESTRICTIONFLOAT._serialized_end=1886 - _VALUERESTRICTIONSTRING._serialized_start=1888 - _VALUERESTRICTIONSTRING._serialized_end=1936 - _ERROR._serialized_start=1938 - _ERROR._serialized_end=1992 - _DATAENTRYERROR._serialized_start=1994 - _DATAENTRYERROR._serialized_end=2060 - _STRINGARRAY._serialized_start=2062 - _STRINGARRAY._serialized_end=2091 - _BOOLARRAY._serialized_start=2093 - _BOOLARRAY._serialized_end=2120 - _INT32ARRAY._serialized_start=2122 - _INT32ARRAY._serialized_end=2150 - _INT64ARRAY._serialized_start=2152 - _INT64ARRAY._serialized_end=2180 - _UINT32ARRAY._serialized_start=2182 - _UINT32ARRAY._serialized_end=2211 - _UINT64ARRAY._serialized_start=2213 - _UINT64ARRAY._serialized_end=2242 - _FLOATARRAY._serialized_start=2244 - _FLOATARRAY._serialized_end=2272 - _DOUBLEARRAY._serialized_start=2274 - _DOUBLEARRAY._serialized_end=2303 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/kuksa/val/v1/types_pb2_grpc.py b/mock_service/kuksa/val/v1/types_pb2_grpc.py deleted file mode 100644 index 2daafff..0000000 --- a/mock_service/kuksa/val/v1/types_pb2_grpc.py +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - diff --git a/mock_service/kuksa/val/v1/val_pb2.py b/mock_service/kuksa/val/v1/val_pb2.py deleted file mode 100644 index 6f2f535..0000000 --- a/mock_service/kuksa/val/v1/val_pb2.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: kuksa/val/v1/val.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from kuksa.val.v1 import types_pb2 as kuksa_dot_val_dot_v1_dot_types__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16kuksa/val/v1/val.proto\x12\x0ckuksa.val.v1\x1a\x18kuksa/val/v1/types.proto\"c\n\x0c\x45ntryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"9\n\nGetRequest\x12+\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1a.kuksa.val.v1.EntryRequest\"\x89\x01\n\x0bGetResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\x12\"\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"Z\n\x0b\x45ntryUpdate\x12&\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12#\n\x06\x66ields\x18\x02 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"8\n\nSetRequest\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"_\n\x0bSetResponse\x12\"\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x13.kuksa.val.v1.Error\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\"e\n\x0eSubscribeEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"A\n\x10SubscribeRequest\x12-\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1c.kuksa.val.v1.SubscribeEntry\"?\n\x11SubscribeResponse\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"\x16\n\x14GetServerInfoRequest\"6\n\x15GetServerInfoResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t2\xa7\x02\n\x03VAL\x12:\n\x03Get\x12\x18.kuksa.val.v1.GetRequest\x1a\x19.kuksa.val.v1.GetResponse\x12:\n\x03Set\x12\x18.kuksa.val.v1.SetRequest\x1a\x19.kuksa.val.v1.SetResponse\x12N\n\tSubscribe\x12\x1e.kuksa.val.v1.SubscribeRequest\x1a\x1f.kuksa.val.v1.SubscribeResponse0\x01\x12X\n\rGetServerInfo\x12\".kuksa.val.v1.GetServerInfoRequest\x1a#.kuksa.val.v1.GetServerInfoResponseB\x13Z\x11/kuksa_grpc_protob\x06proto3') - - - -_ENTRYREQUEST = DESCRIPTOR.message_types_by_name['EntryRequest'] -_GETREQUEST = DESCRIPTOR.message_types_by_name['GetRequest'] -_GETRESPONSE = DESCRIPTOR.message_types_by_name['GetResponse'] -_ENTRYUPDATE = DESCRIPTOR.message_types_by_name['EntryUpdate'] -_SETREQUEST = DESCRIPTOR.message_types_by_name['SetRequest'] -_SETRESPONSE = DESCRIPTOR.message_types_by_name['SetResponse'] -_SUBSCRIBEENTRY = DESCRIPTOR.message_types_by_name['SubscribeEntry'] -_SUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name['SubscribeRequest'] -_SUBSCRIBERESPONSE = DESCRIPTOR.message_types_by_name['SubscribeResponse'] -_GETSERVERINFOREQUEST = DESCRIPTOR.message_types_by_name['GetServerInfoRequest'] -_GETSERVERINFORESPONSE = DESCRIPTOR.message_types_by_name['GetServerInfoResponse'] -EntryRequest = _reflection.GeneratedProtocolMessageType('EntryRequest', (_message.Message,), { - 'DESCRIPTOR' : _ENTRYREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.EntryRequest) - }) -_sym_db.RegisterMessage(EntryRequest) - -GetRequest = _reflection.GeneratedProtocolMessageType('GetRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetRequest) - }) -_sym_db.RegisterMessage(GetRequest) - -GetResponse = _reflection.GeneratedProtocolMessageType('GetResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETRESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetResponse) - }) -_sym_db.RegisterMessage(GetResponse) - -EntryUpdate = _reflection.GeneratedProtocolMessageType('EntryUpdate', (_message.Message,), { - 'DESCRIPTOR' : _ENTRYUPDATE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.EntryUpdate) - }) -_sym_db.RegisterMessage(EntryUpdate) - -SetRequest = _reflection.GeneratedProtocolMessageType('SetRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SetRequest) - }) -_sym_db.RegisterMessage(SetRequest) - -SetResponse = _reflection.GeneratedProtocolMessageType('SetResponse', (_message.Message,), { - 'DESCRIPTOR' : _SETRESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SetResponse) - }) -_sym_db.RegisterMessage(SetResponse) - -SubscribeEntry = _reflection.GeneratedProtocolMessageType('SubscribeEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEENTRY, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeEntry) - }) -_sym_db.RegisterMessage(SubscribeEntry) - -SubscribeRequest = _reflection.GeneratedProtocolMessageType('SubscribeRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeRequest) - }) -_sym_db.RegisterMessage(SubscribeRequest) - -SubscribeResponse = _reflection.GeneratedProtocolMessageType('SubscribeResponse', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBERESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeResponse) - }) -_sym_db.RegisterMessage(SubscribeResponse) - -GetServerInfoRequest = _reflection.GeneratedProtocolMessageType('GetServerInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETSERVERINFOREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetServerInfoRequest) - }) -_sym_db.RegisterMessage(GetServerInfoRequest) - -GetServerInfoResponse = _reflection.GeneratedProtocolMessageType('GetServerInfoResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETSERVERINFORESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetServerInfoResponse) - }) -_sym_db.RegisterMessage(GetServerInfoResponse) - -_VAL = DESCRIPTOR.services_by_name['VAL'] -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'Z\021/kuksa_grpc_proto' - _ENTRYREQUEST._serialized_start=66 - _ENTRYREQUEST._serialized_end=165 - _GETREQUEST._serialized_start=167 - _GETREQUEST._serialized_end=224 - _GETRESPONSE._serialized_start=227 - _GETRESPONSE._serialized_end=364 - _ENTRYUPDATE._serialized_start=366 - _ENTRYUPDATE._serialized_end=456 - _SETREQUEST._serialized_start=458 - _SETREQUEST._serialized_end=514 - _SETRESPONSE._serialized_start=516 - _SETRESPONSE._serialized_end=611 - _SUBSCRIBEENTRY._serialized_start=613 - _SUBSCRIBEENTRY._serialized_end=714 - _SUBSCRIBEREQUEST._serialized_start=716 - _SUBSCRIBEREQUEST._serialized_end=781 - _SUBSCRIBERESPONSE._serialized_start=783 - _SUBSCRIBERESPONSE._serialized_end=846 - _GETSERVERINFOREQUEST._serialized_start=848 - _GETSERVERINFOREQUEST._serialized_end=870 - _GETSERVERINFORESPONSE._serialized_start=872 - _GETSERVERINFORESPONSE._serialized_end=926 - _VAL._serialized_start=929 - _VAL._serialized_end=1224 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/kuksa/val/v1/val_pb2_grpc.py b/mock_service/kuksa/val/v1/val_pb2_grpc.py deleted file mode 100644 index f0010f5..0000000 --- a/mock_service/kuksa/val/v1/val_pb2_grpc.py +++ /dev/null @@ -1,208 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from kuksa.val.v1 import val_pb2 as kuksa_dot_val_dot_v1_dot_val__pb2 - - -class VALStub(object): - """Note on authorization: - Tokens (auth-token or auth-uuid) are sent as (GRPC / http2) metadata. - - The auth-token is a JWT compliant token as the examples found here: - https://github.com/eclipse/kuksa.val/tree/master/kuksa_certificates/jwt - - See also https://github.com/eclipse/kuksa.val/blob/master/doc/jwt.md - - Upon reception of auth-token, server shall generate an auth-uuid in metadata - that the client can use instead of auth-token in subsequent calls. - - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Get = channel.unary_unary( - '/kuksa.val.v1.VAL/Get', - request_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetRequest.SerializeToString, - response_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetResponse.FromString, - ) - self.Set = channel.unary_unary( - '/kuksa.val.v1.VAL/Set', - request_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.SetRequest.SerializeToString, - response_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.SetResponse.FromString, - ) - self.Subscribe = channel.unary_stream( - '/kuksa.val.v1.VAL/Subscribe', - request_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeRequest.SerializeToString, - response_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeResponse.FromString, - ) - self.GetServerInfo = channel.unary_unary( - '/kuksa.val.v1.VAL/GetServerInfo', - request_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoRequest.SerializeToString, - response_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoResponse.FromString, - ) - - -class VALServicer(object): - """Note on authorization: - Tokens (auth-token or auth-uuid) are sent as (GRPC / http2) metadata. - - The auth-token is a JWT compliant token as the examples found here: - https://github.com/eclipse/kuksa.val/tree/master/kuksa_certificates/jwt - - See also https://github.com/eclipse/kuksa.val/blob/master/doc/jwt.md - - Upon reception of auth-token, server shall generate an auth-uuid in metadata - that the client can use instead of auth-token in subsequent calls. - - """ - - def Get(self, request, context): - """Get entries - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Set(self, request, context): - """Set entries - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Subscribe(self, request, context): - """Subscribe to a set of entries - - Returns a stream of notifications. - - InvalidArgument is returned if the request is malformed. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetServerInfo(self, request, context): - """Shall return information that allows the client to determine - what server/server implementation/version it is talking to - eg. kuksa-databroker 0.5.1 - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_VALServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Get': grpc.unary_unary_rpc_method_handler( - servicer.Get, - request_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetRequest.FromString, - response_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetResponse.SerializeToString, - ), - 'Set': grpc.unary_unary_rpc_method_handler( - servicer.Set, - request_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.SetRequest.FromString, - response_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.SetResponse.SerializeToString, - ), - 'Subscribe': grpc.unary_stream_rpc_method_handler( - servicer.Subscribe, - request_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeRequest.FromString, - response_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeResponse.SerializeToString, - ), - 'GetServerInfo': grpc.unary_unary_rpc_method_handler( - servicer.GetServerInfo, - request_deserializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoRequest.FromString, - response_serializer=kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'kuksa.val.v1.VAL', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class VAL(object): - """Note on authorization: - Tokens (auth-token or auth-uuid) are sent as (GRPC / http2) metadata. - - The auth-token is a JWT compliant token as the examples found here: - https://github.com/eclipse/kuksa.val/tree/master/kuksa_certificates/jwt - - See also https://github.com/eclipse/kuksa.val/blob/master/doc/jwt.md - - Upon reception of auth-token, server shall generate an auth-uuid in metadata - that the client can use instead of auth-token in subsequent calls. - - """ - - @staticmethod - def Get(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, '/kuksa.val.v1.VAL/Get', - kuksa_dot_val_dot_v1_dot_val__pb2.GetRequest.SerializeToString, - kuksa_dot_val_dot_v1_dot_val__pb2.GetResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Set(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, '/kuksa.val.v1.VAL/Set', - kuksa_dot_val_dot_v1_dot_val__pb2.SetRequest.SerializeToString, - kuksa_dot_val_dot_v1_dot_val__pb2.SetResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Subscribe(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, '/kuksa.val.v1.VAL/Subscribe', - kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeRequest.SerializeToString, - kuksa_dot_val_dot_v1_dot_val__pb2.SubscribeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetServerInfo(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, '/kuksa.val.v1.VAL/GetServerInfo', - kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoRequest.SerializeToString, - kuksa_dot_val_dot_v1_dot_val__pb2.GetServerInfoResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/mock_service/lib/action.py b/mock_service/lib/action.py index 02741b2..e127462 100644 --- a/mock_service/lib/action.py +++ b/mock_service/lib/action.py @@ -85,20 +85,23 @@ def execute( action_context: ActionContext, animators: List[Animator], ): - if self._target_value_resolver is not None: - self._resolve_target_values(action_context) - - # remove previous reference of this animator instance - if self._animator is not None and self._animator in animators: - animators.remove(self._animator) - - self._animator = ValueAnimator( - self._resolved_values, - self._duration, - self._repeat_mode, - lambda x: action_context.datapoint.set_value(x), - ) - animators.append(self._animator) + if not action_context.datapoint.has_discrete_value_type(): + if self._target_value_resolver is not None: + self._resolve_target_values(action_context) + + # remove previous reference of this animator instance + if self._animator is not None and self._animator in animators: + animators.remove(self._animator) + + self._animator = ValueAnimator( + self._resolved_values, + self._duration, + self._repeat_mode, + lambda x: action_context.datapoint.set_value(x), + ) + animators.append(self._animator) + else: + log.error("Datapoint for animation has discrete value") class SetAction(Action): @@ -124,5 +127,5 @@ def execute( self._resolved_value = self._target_value_resolver( action_context, self._value ) - - action_context.datapoint.set_value(self._resolved_value) + if self._resolved_value is not None: + action_context.datapoint.set_value(self._resolved_value) diff --git a/mock_service/lib/baseservice.py b/mock_service/lib/baseservice.py index 25f7c06..9f69f28 100644 --- a/mock_service/lib/baseservice.py +++ b/mock_service/lib/baseservice.py @@ -16,19 +16,17 @@ import os import time from abc import ABC, abstractmethod -from concurrent.futures import ThreadPoolExecutor from threading import Thread -from typing import Optional, Tuple import grpc -from kuksa.val.v1.val_pb2_grpc import VALStub -from sdv.databroker.v1.broker_pb2_grpc import BrokerStub -from sdv.databroker.v1.collector_pb2_grpc import CollectorStub +from kuksa_client.grpc import VSSClient log = logging.getLogger("base_service") # VehicleDataBroker address, overridden if "DAPR_GRPC_PORT" is set in environment VDB_ADDRESS = os.getenv("VDB_ADDRESS", "127.0.0.1:55555") +VDB_IP = VDB_ADDRESS.split(":")[0] +VDB_PORT = VDB_ADDRESS.split(":")[1] def is_grpc_fatal_error(e: grpc.RpcError) -> bool: @@ -56,15 +54,11 @@ def __init__(self, service_address: str, service_name: str): self._vdb_address = f"127.0.0.1:{grpc_port}" else: self._vdb_address = VDB_ADDRESS - self._metadata: Optional[Tuple[Tuple[str, Optional[str]]]] = None self._address = service_address self._service_name = service_name self._connected = False self._shutdown = False - self._channel = None - self._stub = None - self._stub_val = None - self._stub_broker: Optional[BrokerStub] = None + self._client = VSSClient(VDB_IP, VDB_PORT) self._databroker_thread = Thread( target=self._connect_to_databroker, daemon=True, name="databroker-connector" ) @@ -80,44 +74,11 @@ def _connect_to_databroker(self) -> None: time.sleep(2) else: self._metadata = None - self._channel: grpc.Channel = grpc.insecure_channel(self._vdb_address) - self._stub = CollectorStub(self._channel) - self._stub_val = VALStub(self._channel) - self._stub_broker = BrokerStub(self._channel) - - log.info("Using gRPC metadata: %s", self._metadata) - self._channel.subscribe( - self._on_broker_connectivity_change, - try_to_connect=False, - ) - self._run() + self._client.connect() + self._connected = True + self.on_databroker_connected() - def _on_broker_connectivity_change(self, connectivity): - log.info("[%s] Connectivity changed to: %s", self._vdb_address, connectivity) - if ( - connectivity == grpc.ChannelConnectivity.READY - or connectivity == grpc.ChannelConnectivity.IDLE - ): - # Can change between READY and IDLE. Only act if coming from - # unconnected state - if not self._connected: - log.info("Connected to data broker") - try: - self.on_databroker_connected() - except grpc.RpcError as err: - log.error("Failed to register datapoints") - is_grpc_fatal_error(err) - # log.error("Failed to register datapoints", exc_info=True) - except Exception: - log.error("Failed to register datapoints", exc_info=True) - self._connected = True - else: - if self._connected: - log.info("Disconnected from data broker") - else: - if connectivity == grpc.ChannelConnectivity.CONNECTING: - log.info("Trying to connect to data broker") - self._connected = False + self._run() def _run(self): while self._shutdown is False: @@ -132,17 +93,8 @@ def _run(self): def on_databroker_connected(self): pass - def serve(self): - log.info(f"Starting {self._service_name}") - server = grpc.server(ThreadPoolExecutor(max_workers=10)) - server.add_insecure_port(self._address) - server.start() - server.wait_for_termination() - async def close(self): - """Closes runtime gRPC channel.""" - if self._channel: - await self._channel.close() + self._client.disconnect() def __enter__(self) -> "BaseService": return self diff --git a/mock_service/lib/behavior.py b/mock_service/lib/behavior.py index a5a452c..d124022 100644 --- a/mock_service/lib/behavior.py +++ b/mock_service/lib/behavior.py @@ -14,13 +14,16 @@ import logging from typing import Any, Callable, Dict, List +from kuksa_client.grpc import VSSClient from lib.action import Action, ActionContext from lib.animator import Animator from lib.datapoint import MockedDataPoint from lib.trigger import Trigger, TriggerResult from lib.types import Event, ExecutionContext -log = logging.getLogger("behavior") +SERVICE_NAME = "mock_service" + +log = logging.getLogger(SERVICE_NAME) class Behavior: @@ -65,10 +68,12 @@ def __init__( mocked_datapoints: Dict[str, MockedDataPoint], behaviors: Dict[str, List[Behavior]], pending_event_list: List[Event], + client: VSSClient, ): self._mocked_datapoints = mocked_datapoints self._behaviors = behaviors self._pending_event_list = pending_event_list + self._client = client def execute(self, delta_time: float, animators): """Executes all behaviors in order given that their trigger has activated and their respective conditions are met.""" @@ -77,17 +82,18 @@ def execute(self, delta_time: float, animators): matched_datapoint = self._mocked_datapoints[path] for behavior in behaviors: execution_context = ExecutionContext( - path, self._pending_event_list, self._mocked_datapoints, delta_time + path, self._pending_event_list, delta_time, self._client ) - trigger_result = behavior.check_trigger(execution_context) - if trigger_result.is_active() and behavior.is_condition_fulfilled( - execution_context - ): - log.info(f"Running behavior for {path}") - behavior.execute( - ActionContext( - trigger_result, execution_context, matched_datapoint - ), - animators, - ) - break + if behavior.is_condition_fulfilled( + execution_context + ): + trigger_result = behavior.check_trigger(execution_context) + if trigger_result.is_active(): + log.info(f"Running behavior for {path}") + behavior.execute( + ActionContext( + trigger_result, execution_context, matched_datapoint + ), + animators, + ) + break diff --git a/mock_service/lib/datapoint.py b/mock_service/lib/datapoint.py index d6cf7fd..c606b74 100644 --- a/mock_service/lib/datapoint.py +++ b/mock_service/lib/datapoint.py @@ -13,7 +13,7 @@ from typing import Any, Callable, Optional -from sdv.databroker.v1.types_pb2 import DataType +from kuksa_client.grpc import DataType class MockedDataPoint: @@ -35,10 +35,7 @@ def __init__( def has_discrete_value_type(self): """Return if the datapoint has a discrete value type.""" - return ( - DataType.Name(self.data_type) == "BOOL" - or DataType.Name(self.data_type) == "STRING" - ) + return self.data_type == DataType.BOOLEAN or self.data_type == DataType.STRING def set_value(self, new_value): """Set the value of the datapoint.""" diff --git a/mock_service/lib/dsl.py b/mock_service/lib/dsl.py index ae3af05..70099fd 100644 --- a/mock_service/lib/dsl.py +++ b/mock_service/lib/dsl.py @@ -12,12 +12,12 @@ # ********************************************************************************/ import logging -from typing import Any, Callable, Dict, List +from typing import Any, Callable, Dict, List, Optional from lib.action import Action, ActionContext, AnimationAction, SetAction from lib.animator import RepeatMode from lib.behavior import Behavior, ExecutionContext -from lib.trigger import EventTriggerResult, Trigger +from lib.trigger import EventTrigger, EventTriggerResult, EventType, Trigger _mocked_datapoints: List[Dict] = list() _required_datapoint_paths: List[str] = list() @@ -25,7 +25,7 @@ log = logging.getLogger("dsl") -def mock_datapoint(path: str, initial_value: Any, behaviors: List[Behavior] = list()): +def mock_datapoint(path: str, initial_value: Any, behaviors: List[Behavior] = None): """Mock a single datapoint. Args: @@ -33,6 +33,8 @@ def mock_datapoint(path: str, initial_value: Any, behaviors: List[Behavior] = li initial_value (Any): The initial value the datapoint will assume on registration. behaviors (List[Behavior]): A list of programmed behaviors to execute for the mocked datapoint. """ + if behaviors is None: + behaviors = [] _mocked_datapoints.append( {"path": path, "initial_value": initial_value, "behaviors": behaviors} ) @@ -72,9 +74,14 @@ def get_datapoint_value(context: ExecutionContext, path: str, default: Any = 0) """ if path not in _mocked_datapoints: _required_datapoint_paths.append(path) + curr_vals = context.client.get_current_values( + [ + path, + ] + ) + if curr_vals[path] is not None: + return curr_vals[path].value - if path in context.datapoints_cache: - return context.datapoints_cache[path].value return default @@ -101,6 +108,7 @@ def __resolve_value(action_context: ActionContext, value: Any) -> Any: return get_datapoint_value( action_context.execution_context, action_context.datapoint.path ) + elif value == "$event.value": if isinstance(action_context.trigger, EventTriggerResult): return action_context.trigger.get_event().value @@ -110,7 +118,6 @@ def __resolve_value(action_context: ActionContext, value: Any) -> Any: ) elif value.startswith("$"): return get_datapoint_value(action_context.execution_context, value[1:]) - return value @@ -143,3 +150,19 @@ def create_animation_action( AnimationAction: The created AnimationAction. """ return AnimationAction(duration, repeat_mode, values, __resolve_value) + + +def create_event_trigger(type: EventType, path: Optional[str] = None) -> EventTrigger: + """Create an EventTrigger for the mocked datapoint in context of this call OR the explicitly passed one. + + Args: + type (EventType): The type of event which will activate the trigger. + path (Optional[str]): The data point which shall raise the event. + If not set defaults to the mocked data point in context of the call. + + Returns: + EvenTrigger: The created EventTrigger. + """ + if path is not None: + _required_datapoint_paths.append(path) + return EventTrigger(type, path) diff --git a/mock_service/lib/loader.py b/mock_service/lib/loader.py index 34b056f..b513f20 100644 --- a/mock_service/lib/loader.py +++ b/mock_service/lib/loader.py @@ -26,7 +26,7 @@ EventTriggerResult, ) from lib.types import Event, ExecutionContext -from sdv.databroker.v1.types_pb2 import DataType +from kuksa_client.grpc import DataType log = logging.getLogger("loader") @@ -45,24 +45,24 @@ def load(self, vdb_metadata) -> LoaderResult: class PythonDslLoader(MockLoader): def _has_supported_type(self, data_type: DataType) -> bool: return ( - DataType.Name(data_type) == "BOOL" - or DataType.Name(data_type) == "FLOAT" - or DataType.Name(data_type) == "DOUBLE" - or DataType.Name(data_type) == "INT8" - or DataType.Name(data_type) == "UINT8" - or DataType.Name(data_type) == "INT16" - or DataType.Name(data_type) == "UINT16" - or DataType.Name(data_type) == "INT32" - or DataType.Name(data_type) == "UINT32" - or DataType.Name(data_type) == "INT64" - or DataType.Name(data_type) == "UINT64" - or DataType.Name(data_type) == "STRING" + data_type == DataType.BOOLEAN + or data_type == DataType.FLOAT + or data_type == DataType.DOUBLE + or data_type == DataType.INT8 + or data_type == DataType.UINT8 + or data_type == DataType.INT16 + or data_type == DataType.UINT16 + or data_type == DataType.INT32 + or data_type == DataType.UINT32 + or data_type == DataType.INT64 + or data_type == DataType.UINT64 + or data_type == DataType.STRING ) - def _load_mocked_datapoints(self, vdb_metadata) -> Dict[str, MockedDataPoint]: + def _load_mocked_datapoints(self, client) -> Dict[str, MockedDataPoint]: mocked_datapoints: Dict[str, MockedDataPoint] = dict() for datapoint in _mocked_datapoints: - metadata = vdb_metadata[datapoint["path"]] + metadata = client.get_metadata([datapoint['path'], ])[datapoint['path']] if not self._has_supported_type(metadata.data_type): log.error(f"Mocked datapoint {datapoint['path']} has unsupported type!") @@ -73,13 +73,13 @@ def _load_mocked_datapoints(self, vdb_metadata) -> Dict[str, MockedDataPoint]: return mocked_datapoints def _load_behaviors( - self, vdb_metadata, mocked_datapoints: Dict[str, MockedDataPoint] + self, client, mocked_datapoints: Dict[str, MockedDataPoint] ) -> Tuple[Dict[str, List[Behavior]], Dict[str, MockedDataPoint]]: required_datapoints: Dict[str, MockedDataPoint] = dict() behavior_dict: Dict[str, List[Behavior]] = dict() for datapoint in _mocked_datapoints: - metadata = vdb_metadata[datapoint["path"]] + metadata = client.get_metadata([datapoint['path'], ])[datapoint['path']] if self._has_supported_type(metadata.data_type): behavior_dict[datapoint["path"]] = list() @@ -90,7 +90,7 @@ def _load_behaviors( # force execution of condition and action # to identify and register all non-mocked, required datapoints exe_context = ExecutionContext( - datapoint["path"], list(), dict(), 0.0 + datapoint["path"], list(), 0.0, client ) behavior.is_condition_fulfilled(exe_context) @@ -121,13 +121,13 @@ def _load_behaviors( for required_dp in _required_datapoint_paths: if required_dp not in mocked_datapoints: - log.error(f"Creating required datapoint for {required_dp}") + log.info(f"Creating required datapoint for {required_dp}") mocked_datapoint = MockedDataPoint(required_dp, None, None, False) required_datapoints[required_dp] = mocked_datapoint return behavior_dict, required_datapoints - def load(self, vdb_metadata) -> LoaderResult: + def load(self, client) -> LoaderResult: """Load mocking configuration from Python script.""" import importlib.util import sys @@ -137,9 +137,9 @@ def load(self, vdb_metadata) -> LoaderResult: sys.modules["mock"] = mod spec.loader.exec_module(mod) - mocked_datapoints = self._load_mocked_datapoints(vdb_metadata) + mocked_datapoints = self._load_mocked_datapoints(client) behaviors, required_datapoints = self._load_behaviors( - vdb_metadata, mocked_datapoints + client, mocked_datapoints ) # convert required datapoints into "normal" mocked datapoints diff --git a/mock_service/lib/types.py b/mock_service/lib/types.py index a656d38..d6f906c 100644 --- a/mock_service/lib/types.py +++ b/mock_service/lib/types.py @@ -15,6 +15,7 @@ from lib.datapoint import MockedDataPoint +from kuksa_client.grpc import VSSClient class Event(NamedTuple): """Structure for holding event data.""" @@ -28,6 +29,6 @@ class ExecutionContext(NamedTuple): """Context in which behaviors are executed""" calling_signal_path: str - pending_event_list: List[Event] - datapoints_cache: Dict[str, MockedDataPoint] + pending_event_list: List[Event] delta_time: float + client: VSSClient diff --git a/mock_service/mock.py b/mock_service/mock.py index 2edbf3f..ca7b137 100644 --- a/mock_service/mock.py +++ b/mock_service/mock.py @@ -11,16 +11,16 @@ # * SPDX-License-Identifier: Apache-2.0 # ********************************************************************************/ +from lib.animator import RepeatMode from lib.dsl import ( create_animation_action, create_behavior, + create_event_trigger, create_set_action, get_datapoint_value, mock_datapoint, ) -from lib.trigger import ClockTrigger, EventTrigger, EventType - -from lib.animator import RepeatMode +from lib.trigger import ClockTrigger, EventType mock_datapoint( path="Vehicle.Speed", @@ -42,7 +42,7 @@ initial_value=0, behaviors=[ create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), action=create_animation_action( duration=10.0, values=["$self", "$event.value"], @@ -56,7 +56,7 @@ initial_value="STOP_HOLD", behaviors=[ create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), action=create_set_action("$event.value"), ) ], @@ -67,7 +67,7 @@ initial_value=0, behaviors=[ create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), action=create_set_action("$event.value"), ) ], @@ -78,7 +78,7 @@ initial_value=0, behaviors=[ create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), condition=lambda ctx: get_datapoint_value( ctx, "Vehicle.Body.Windshield.Front.Wiping.System.Mode" ) @@ -86,7 +86,7 @@ action=create_set_action(0), ), create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), condition=lambda ctx: get_datapoint_value( ctx, "Vehicle.Body.Windshield.Front.Wiping.System.Mode" ) @@ -100,7 +100,7 @@ ), ), create_behavior( - trigger=EventTrigger(EventType.ACTUATOR_TARGET), + trigger=create_event_trigger(EventType.ACTUATOR_TARGET), condition=lambda ctx: get_datapoint_value( ctx, "Vehicle.Body.Windshield.Front.Wiping.System.Mode" ) @@ -121,7 +121,27 @@ initial_value=False, behaviors=[ create_behavior( - EventTrigger(EventType.ACTUATOR_TARGET), create_set_action("$event.value") + create_event_trigger(EventType.ACTUATOR_TARGET), + create_set_action("$event.value"), ) ], ) + +mock_datapoint( + path="Vehicle.Body.Lights.Brake.IsActive", + initial_value="INACTIVE", + behaviors=[ + create_behavior( + trigger=create_event_trigger( + EventType.VALUE, "Vehicle.Body.Lights.Brake.IsDefect" + ), + action=create_set_action("INACTIVE"), + ), + create_behavior( + trigger=create_event_trigger( + EventType.ACTUATOR_TARGET, "Vehicle.Body.Lights.Brake.IsActive" + ), + action=create_set_action("$event.value"), + ), + ], +) diff --git a/mock_service/mockservice.py b/mock_service/mockservice.py index 9feafab..08d8352 100644 --- a/mock_service/mockservice.py +++ b/mock_service/mockservice.py @@ -21,27 +21,34 @@ from typing import Any, Dict, Iterator, List import grpc -from kuksa.val.v1.types_pb2 import Field -from kuksa.val.v1.val_pb2 import SubscribeEntry, SubscribeRequest, SubscribeResponse +from kuksa_client.grpc import Datapoint, Metadata from lib.animator import Animator from lib.baseservice import BaseService, is_grpc_fatal_error from lib.behavior import Behavior, BehaviorExecutor from lib.datapoint import MockedDataPoint from lib.loader import PythonDslLoader from lib.types import Event -from sdv.databroker.v1.broker_pb2 import GetMetadataReply, GetMetadataRequest -from sdv.databroker.v1.collector_pb2 import ( - RegisterDatapointsRequest, - RegistrationMetadata, - UpdateDatapointsRequest, -) -from sdv.databroker.v1.types_pb2 import DataType, Metadata SERVICE_NAME = "mock_service" log = logging.getLogger(SERVICE_NAME) + +# Create a file handler and set the log file name +file_handler = logging.FileHandler("mock_service.log") + +# Create a log formatter and set the format of log records +formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") +file_handler.setFormatter(formatter) + +# Add the file handler to the log +log.addHandler(file_handler) + + event = threading.Event() +# Set the log level to suppress log messages because we call connect/disconnect of client quite often +logging.getLogger("kuksa_client").setLevel(logging.WARNING) + # Mock Service bind "host:port" MOCK_ADDRESS = os.getenv("MOCK_ADDR", "0.0.0.0:50053") @@ -69,18 +76,15 @@ def __init__(self, service_address: str): def on_databroker_connected(self): """Callback when a connection to the data broker is established.""" if not self._registered: - self._read_metadata() - - loader_result = PythonDslLoader().load(self._vdb_metadata) + loader_result = PythonDslLoader().load(self._client) self._mocked_datapoints = loader_result.mocked_datapoints for _, datapoint in self._mocked_datapoints.items(): datapoint.value_listener = self._on_datapoint_updated self._behaviors = loader_result.behavior_dict self._behavior_executor = BehaviorExecutor( - self._mocked_datapoints, self._behaviors, self._pending_event_list + self._mocked_datapoints, self._behaviors, self._pending_event_list, self._client ) - self._register_datapoints() self._subscribe_to_mocked_datapoints() self._feed_initial_values() self._registered = True @@ -114,63 +118,30 @@ def main_loop(self): def _on_datapoint_updated(self, datapoint: MockedDataPoint): """Callback whenever the value of a mocked datapoint changes.""" - self._set_datapoint(datapoint.path, datapoint.data_type, datapoint.value) - - def _read_metadata(self): - """Read metadata from data broker.""" - request = GetMetadataRequest() - reply: GetMetadataReply = self._stub_broker.GetMetadata( - request, metadata=self._metadata - ) - for metadata in reply.list: - self._vdb_metadata[metadata.name] = metadata - - def _register_datapoints(self): - """Register mocked datapoints at data broker.""" - for datapoint in self._mocked_datapoints.values(): - if datapoint.is_mocked: - metadata = self._vdb_metadata[datapoint.path] - self._register(datapoint.path, metadata.data_type, metadata.change_type) + self._set_datapoint(datapoint.path, datapoint.value) def _feed_initial_values(self): """Provide initial values of all mocked datapoints to data broker.""" for datapoint in self._mocked_datapoints.values(): if datapoint.data_type is not None: - self._set_datapoint( - datapoint.path, datapoint.data_type, datapoint.value - ) + self._set_datapoint(datapoint.path, datapoint.value) def _mock_update_request_handler( - self, response_iterator: Iterator[SubscribeResponse] + self, + response_iter: Iterator, + type, ) -> None: """Callback when an update event is received from data broker.""" try: - for response in response_iterator: - for update in response.updates: - if update.entry.HasField(EVENT_KEY_ACTUATOR_TARGET): - mocked_datapoint = self._mocked_datapoints[update.entry.path] - raw_value = getattr( - update.entry.actuator_target, - MockService._get_value_attribute_name( - mocked_datapoint.data_type - ), - ) - self._pending_event_list.append( - Event( - EVENT_KEY_ACTUATOR_TARGET, update.entry.path, raw_value + for updates in response_iter: + for path, dp in updates.items(): + if dp is not None: + # else it would register a new event at startup because event with value None would occur + if dp.value is not None: + raw_value = dp.value + self._pending_event_list.append( + Event(type, path, raw_value) ) - ) - if update.entry.HasField(EVENT_KEY_VALUE): - mocked_datapoint = self._mocked_datapoints[update.entry.path] - raw_value = getattr( - update.entry.value, - MockService._get_value_attribute_name( - mocked_datapoint.data_type - ), - ) - self._pending_event_list.append( - Event(EVENT_KEY_VALUE, update.entry.path, raw_value) - ) except Exception as e: log.exception(e) raise @@ -179,55 +150,38 @@ def _subscribe_to_mocked_datapoints(self): """Subscribe to mocked datapoints.""" log.info("Subscribing to mocked datapoints...") - # wait until the stub is available - while self._stub_val is None: - time.sleep(1) - - request = SubscribeRequest() - for mocked_datapoint in self._mocked_datapoints.values(): - entry = SubscribeEntry(path=mocked_datapoint.path) - if mocked_datapoint.data_type is not None: - entry.fields.append(Field.FIELD_ACTUATOR_TARGET) - else: - entry.fields.append(Field.FIELD_VALUE) - request.entries.append(entry) + response_iter_target = self._client.subscribe_target_values( + self._mocked_datapoints + ) + response_iter_current = self._client.subscribe_current_values( + self._mocked_datapoints + ) - response_iter = self._stub_val.Subscribe(request, metadata=self._metadata) self._executor = ThreadPoolExecutor() - self._executor.submit(self._mock_update_request_handler, response_iter) - - def _register(self, name, data_type, change_type): - """Register a single data point with data broker.""" - request = RegisterDatapointsRequest() - registration_metadata = RegistrationMetadata() - registration_metadata.name = name - registration_metadata.data_type = data_type - registration_metadata.description = "" - registration_metadata.change_type = change_type - request.list.append(registration_metadata) - response = self._stub.RegisterDatapoints(request, metadata=self._metadata) - self._ids[name] = response.results[name] - - @staticmethod - def _get_value_attribute_name(data_type: DataType, suffix: str = "") -> str: - """Get the value attribute name for datapoint types returned via gRPC.""" - return f"{DataType.Name(data_type).lower().replace('8','32').replace('16', '32')}{suffix}" - - def _set_datapoint(self, name: str, data_type: DataType, value: Any): - """Set the value of a datapoint within databroker.""" - _id = self._ids[name] - request = UpdateDatapointsRequest() - - setattr( - request.datapoints[_id], - MockService._get_value_attribute_name(data_type, "_value"), - value, + self._executor.submit( + self._mock_update_request_handler, + response_iter_target, + EVENT_KEY_ACTUATOR_TARGET, + ) + self._executor.submit( + self._mock_update_request_handler, response_iter_current, EVENT_KEY_VALUE ) + + def _set_datapoint(self, path: str, value: Any): + """Set the value of a datapoint within databroker.""" try: - log.info("Feeding '%s' with value %s", name, value) - self._stub.UpdateDatapoints(request, metadata=self._metadata) + log.info("Feeding '%s' with value %s", path, value) + self._client.set_current_values({path: Datapoint(value)}) + # remove events set through set_datapoint + event_to_remove = None + for event in self._pending_event_list: + if "value" == event.name and event.path == path: + event_to_remove = event + + if event_to_remove is not None: + self._pending_event_list.remove(event_to_remove) except grpc.RpcError as err: - log.warning("Feeding %s failed", name, exc_info=True) + log.warning("Feeding %s failed", path, exc_info=True) self._connected = is_grpc_fatal_error(err) raise err diff --git a/mock_service/requirements.txt b/mock_service/requirements.txt index 8be0fa8..5f78500 100644 --- a/mock_service/requirements.txt +++ b/mock_service/requirements.txt @@ -2,3 +2,4 @@ grpcio>=1.44.0 protobuf>=3.19.4 types-protobuf scipy>=1.10.1 +kuksa_client diff --git a/mock_service/sdv/__init__.py b/mock_service/sdv/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/databroker/__init__.py b/mock_service/sdv/databroker/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/databroker/v1/__init__.py b/mock_service/sdv/databroker/v1/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/databroker/v1/broker_pb2.py b/mock_service/sdv/databroker/v1/broker_pb2.py deleted file mode 100644 index debd695..0000000 --- a/mock_service/sdv/databroker/v1/broker_pb2.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: sdv/databroker/v1/broker.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esdv/databroker/v1/broker.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"*\n\x14GetDatapointsRequest\x12\x12\n\ndatapoints\x18\x01 \x03(\t\"\xb0\x01\n\x12GetDatapointsReply\x12I\n\ndatapoints\x18\x01 \x03(\x0b\x32\x35.sdv.databroker.v1.GetDatapointsReply.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"!\n\x10SubscribeRequest\x12\r\n\x05query\x18\x02 \x01(\t\"\x9c\x01\n\x0eSubscribeReply\x12=\n\x06\x66ields\x18\x01 \x03(\x0b\x32-.sdv.databroker.v1.SubscribeReply.FieldsEntry\x1aK\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"#\n\x12GetMetadataRequest\x12\r\n\x05names\x18\x01 \x03(\t\"=\n\x10GetMetadataReply\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.sdv.databroker.v1.Metadata2\x9b\x02\n\x06\x42roker\x12_\n\rGetDatapoints\x12\'.sdv.databroker.v1.GetDatapointsRequest\x1a%.sdv.databroker.v1.GetDatapointsReply\x12U\n\tSubscribe\x12#.sdv.databroker.v1.SubscribeRequest\x1a!.sdv.databroker.v1.SubscribeReply0\x01\x12Y\n\x0bGetMetadata\x12%.sdv.databroker.v1.GetMetadataRequest\x1a#.sdv.databroker.v1.GetMetadataReplyb\x06proto3') - - - -_GETDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['GetDatapointsRequest'] -_GETDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['GetDatapointsReply'] -_GETDATAPOINTSREPLY_DATAPOINTSENTRY = _GETDATAPOINTSREPLY.nested_types_by_name['DatapointsEntry'] -_SUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name['SubscribeRequest'] -_SUBSCRIBEREPLY = DESCRIPTOR.message_types_by_name['SubscribeReply'] -_SUBSCRIBEREPLY_FIELDSENTRY = _SUBSCRIBEREPLY.nested_types_by_name['FieldsEntry'] -_GETMETADATAREQUEST = DESCRIPTOR.message_types_by_name['GetMetadataRequest'] -_GETMETADATAREPLY = DESCRIPTOR.message_types_by_name['GetMetadataReply'] -GetDatapointsRequest = _reflection.GeneratedProtocolMessageType('GetDatapointsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsRequest) - }) -_sym_db.RegisterMessage(GetDatapointsRequest) - -GetDatapointsReply = _reflection.GeneratedProtocolMessageType('GetDatapointsReply', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _GETDATAPOINTSREPLY_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsReply.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _GETDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsReply) - }) -_sym_db.RegisterMessage(GetDatapointsReply) -_sym_db.RegisterMessage(GetDatapointsReply.DatapointsEntry) - -SubscribeRequest = _reflection.GeneratedProtocolMessageType('SubscribeRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeRequest) - }) -_sym_db.RegisterMessage(SubscribeRequest) - -SubscribeReply = _reflection.GeneratedProtocolMessageType('SubscribeReply', (_message.Message,), { - - 'FieldsEntry' : _reflection.GeneratedProtocolMessageType('FieldsEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREPLY_FIELDSENTRY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeReply.FieldsEntry) - }) - , - 'DESCRIPTOR' : _SUBSCRIBEREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeReply) - }) -_sym_db.RegisterMessage(SubscribeReply) -_sym_db.RegisterMessage(SubscribeReply.FieldsEntry) - -GetMetadataRequest = _reflection.GeneratedProtocolMessageType('GetMetadataRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETMETADATAREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetMetadataRequest) - }) -_sym_db.RegisterMessage(GetMetadataRequest) - -GetMetadataReply = _reflection.GeneratedProtocolMessageType('GetMetadataReply', (_message.Message,), { - 'DESCRIPTOR' : _GETMETADATAREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetMetadataReply) - }) -_sym_db.RegisterMessage(GetMetadataReply) - -_BROKER = DESCRIPTOR.services_by_name['Broker'] -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._options = None - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_options = b'8\001' - _SUBSCRIBEREPLY_FIELDSENTRY._options = None - _SUBSCRIBEREPLY_FIELDSENTRY._serialized_options = b'8\001' - _GETDATAPOINTSREQUEST._serialized_start=84 - _GETDATAPOINTSREQUEST._serialized_end=126 - _GETDATAPOINTSREPLY._serialized_start=129 - _GETDATAPOINTSREPLY._serialized_end=305 - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_start=226 - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_end=305 - _SUBSCRIBEREQUEST._serialized_start=307 - _SUBSCRIBEREQUEST._serialized_end=340 - _SUBSCRIBEREPLY._serialized_start=343 - _SUBSCRIBEREPLY._serialized_end=499 - _SUBSCRIBEREPLY_FIELDSENTRY._serialized_start=424 - _SUBSCRIBEREPLY_FIELDSENTRY._serialized_end=499 - _GETMETADATAREQUEST._serialized_start=501 - _GETMETADATAREQUEST._serialized_end=536 - _GETMETADATAREPLY._serialized_start=538 - _GETMETADATAREPLY._serialized_end=599 - _BROKER._serialized_start=602 - _BROKER._serialized_end=885 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/sdv/databroker/v1/broker_pb2_grpc.py b/mock_service/sdv/databroker/v1/broker_pb2_grpc.py deleted file mode 100644 index fb8bb19..0000000 --- a/mock_service/sdv/databroker/v1/broker_pb2_grpc.py +++ /dev/null @@ -1,146 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from sdv.databroker.v1 import broker_pb2 as sdv_dot_databroker_dot_v1_dot_broker__pb2 - - -class BrokerStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.GetDatapoints = channel.unary_unary( - '/sdv.databroker.v1.Broker/GetDatapoints', - request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsReply.FromString, - ) - self.Subscribe = channel.unary_stream( - '/sdv.databroker.v1.Broker/Subscribe', - request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeReply.FromString, - ) - self.GetMetadata = channel.unary_unary( - '/sdv.databroker.v1.Broker/GetMetadata', - request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataReply.FromString, - ) - - -class BrokerServicer(object): - """Missing associated documentation comment in .proto file.""" - - def GetDatapoints(self, request, context): - """Request a set of datapoints (values) - - Returns a list of requested data points. - - InvalidArgument is returned if the request is malformed. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Subscribe(self, request, context): - """Subscribe to a set of data points or conditional expressions - using the Data Broker Query Syntax (described in QUERY.md) - - Returns a stream of replies. - - InvalidArgument is returned if the request is malformed. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetMetadata(self, request, context): - """Request the metadata of a set of datapoints - - Returns metadata of the requested data points that exist. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_BrokerServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetDatapoints': grpc.unary_unary_rpc_method_handler( - servicer.GetDatapoints, - request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsReply.SerializeToString, - ), - 'Subscribe': grpc.unary_stream_rpc_method_handler( - servicer.Subscribe, - request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeReply.SerializeToString, - ), - 'GetMetadata': grpc.unary_unary_rpc_method_handler( - servicer.GetMetadata, - request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'sdv.databroker.v1.Broker', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Broker(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def GetDatapoints(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, '/sdv.databroker.v1.Broker/GetDatapoints', - sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Subscribe(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, '/sdv.databroker.v1.Broker/Subscribe', - sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetMetadata(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, '/sdv.databroker.v1.Broker/GetMetadata', - sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_broker__pb2.GetMetadataReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/mock_service/sdv/databroker/v1/collector_pb2.py b/mock_service/sdv/databroker/v1/collector_pb2.py deleted file mode 100644 index 13725b8..0000000 --- a/mock_service/sdv/databroker/v1/collector_pb2.py +++ /dev/null @@ -1,196 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: sdv/databroker/v1/collector.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sdv/databroker/v1/collector.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"\xba\x01\n\x17UpdateDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15UpdateDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"\xba\x01\n\x17StreamDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15StreamDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"R\n\x19RegisterDatapointsRequest\x12\x35\n\x04list\x18\x01 \x03(\x0b\x32\'.sdv.databroker.v1.RegistrationMetadata\"/\n\x1eSubscribeActuatorTargetRequest\x12\r\n\x05paths\x18\x01 \x03(\t\"\xd4\x01\n\x1cSubscribeActuatorTargetReply\x12^\n\x10\x61\x63tuator_targets\x18\x01 \x03(\x0b\x32\x44.sdv.databroker.v1.SubscribeActuatorTargetReply.ActuatorTargetsEntry\x1aT\n\x14\x41\x63tuatorTargetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\x9d\x01\n\x14RegistrationMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\tdata_type\x18\x02 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x32\n\x0b\x63hange_type\x18\x04 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\"\x93\x01\n\x17RegisterDatapointsReply\x12H\n\x07results\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x32\xd6\x03\n\tCollector\x12n\n\x12RegisterDatapoints\x12,.sdv.databroker.v1.RegisterDatapointsRequest\x1a*.sdv.databroker.v1.RegisterDatapointsReply\x12h\n\x10UpdateDatapoints\x12*.sdv.databroker.v1.UpdateDatapointsRequest\x1a(.sdv.databroker.v1.UpdateDatapointsReply\x12l\n\x10StreamDatapoints\x12*.sdv.databroker.v1.StreamDatapointsRequest\x1a(.sdv.databroker.v1.StreamDatapointsReply(\x01\x30\x01\x12\x80\x01\n\x18SubscribeActuatorTargets\x12\x31.sdv.databroker.v1.SubscribeActuatorTargetRequest\x1a/.sdv.databroker.v1.SubscribeActuatorTargetReply0\x01\x62\x06proto3') - - - -_UPDATEDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['UpdateDatapointsRequest'] -_UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY = _UPDATEDATAPOINTSREQUEST.nested_types_by_name['DatapointsEntry'] -_UPDATEDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['UpdateDatapointsReply'] -_UPDATEDATAPOINTSREPLY_ERRORSENTRY = _UPDATEDATAPOINTSREPLY.nested_types_by_name['ErrorsEntry'] -_STREAMDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['StreamDatapointsRequest'] -_STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY = _STREAMDATAPOINTSREQUEST.nested_types_by_name['DatapointsEntry'] -_STREAMDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['StreamDatapointsReply'] -_STREAMDATAPOINTSREPLY_ERRORSENTRY = _STREAMDATAPOINTSREPLY.nested_types_by_name['ErrorsEntry'] -_REGISTERDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['RegisterDatapointsRequest'] -_SUBSCRIBEACTUATORTARGETREQUEST = DESCRIPTOR.message_types_by_name['SubscribeActuatorTargetRequest'] -_SUBSCRIBEACTUATORTARGETREPLY = DESCRIPTOR.message_types_by_name['SubscribeActuatorTargetReply'] -_SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY = _SUBSCRIBEACTUATORTARGETREPLY.nested_types_by_name['ActuatorTargetsEntry'] -_REGISTRATIONMETADATA = DESCRIPTOR.message_types_by_name['RegistrationMetadata'] -_REGISTERDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['RegisterDatapointsReply'] -_REGISTERDATAPOINTSREPLY_RESULTSENTRY = _REGISTERDATAPOINTSREPLY.nested_types_by_name['ResultsEntry'] -UpdateDatapointsRequest = _reflection.GeneratedProtocolMessageType('UpdateDatapointsRequest', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _UPDATEDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsRequest) - }) -_sym_db.RegisterMessage(UpdateDatapointsRequest) -_sym_db.RegisterMessage(UpdateDatapointsRequest.DatapointsEntry) - -UpdateDatapointsReply = _reflection.GeneratedProtocolMessageType('UpdateDatapointsReply', (_message.Message,), { - - 'ErrorsEntry' : _reflection.GeneratedProtocolMessageType('ErrorsEntry', (_message.Message,), { - 'DESCRIPTOR' : _UPDATEDATAPOINTSREPLY_ERRORSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry) - }) - , - 'DESCRIPTOR' : _UPDATEDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsReply) - }) -_sym_db.RegisterMessage(UpdateDatapointsReply) -_sym_db.RegisterMessage(UpdateDatapointsReply.ErrorsEntry) - -StreamDatapointsRequest = _reflection.GeneratedProtocolMessageType('StreamDatapointsRequest', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _STREAMDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsRequest) - }) -_sym_db.RegisterMessage(StreamDatapointsRequest) -_sym_db.RegisterMessage(StreamDatapointsRequest.DatapointsEntry) - -StreamDatapointsReply = _reflection.GeneratedProtocolMessageType('StreamDatapointsReply', (_message.Message,), { - - 'ErrorsEntry' : _reflection.GeneratedProtocolMessageType('ErrorsEntry', (_message.Message,), { - 'DESCRIPTOR' : _STREAMDATAPOINTSREPLY_ERRORSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry) - }) - , - 'DESCRIPTOR' : _STREAMDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsReply) - }) -_sym_db.RegisterMessage(StreamDatapointsReply) -_sym_db.RegisterMessage(StreamDatapointsReply.ErrorsEntry) - -RegisterDatapointsRequest = _reflection.GeneratedProtocolMessageType('RegisterDatapointsRequest', (_message.Message,), { - 'DESCRIPTOR' : _REGISTERDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsRequest) - }) -_sym_db.RegisterMessage(RegisterDatapointsRequest) - -SubscribeActuatorTargetRequest = _reflection.GeneratedProtocolMessageType('SubscribeActuatorTargetRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetRequest) - }) -_sym_db.RegisterMessage(SubscribeActuatorTargetRequest) - -SubscribeActuatorTargetReply = _reflection.GeneratedProtocolMessageType('SubscribeActuatorTargetReply', (_message.Message,), { - - 'ActuatorTargetsEntry' : _reflection.GeneratedProtocolMessageType('ActuatorTargetsEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetReply.ActuatorTargetsEntry) - }) - , - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetReply) - }) -_sym_db.RegisterMessage(SubscribeActuatorTargetReply) -_sym_db.RegisterMessage(SubscribeActuatorTargetReply.ActuatorTargetsEntry) - -RegistrationMetadata = _reflection.GeneratedProtocolMessageType('RegistrationMetadata', (_message.Message,), { - 'DESCRIPTOR' : _REGISTRATIONMETADATA, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegistrationMetadata) - }) -_sym_db.RegisterMessage(RegistrationMetadata) - -RegisterDatapointsReply = _reflection.GeneratedProtocolMessageType('RegisterDatapointsReply', (_message.Message,), { - - 'ResultsEntry' : _reflection.GeneratedProtocolMessageType('ResultsEntry', (_message.Message,), { - 'DESCRIPTOR' : _REGISTERDATAPOINTSREPLY_RESULTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry) - }) - , - 'DESCRIPTOR' : _REGISTERDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsReply) - }) -_sym_db.RegisterMessage(RegisterDatapointsReply) -_sym_db.RegisterMessage(RegisterDatapointsReply.ResultsEntry) - -_COLLECTOR = DESCRIPTOR.services_by_name['Collector'] -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._options = None - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_options = b'8\001' - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._options = None - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._serialized_options = b'8\001' - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._options = None - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_options = b'8\001' - _STREAMDATAPOINTSREPLY_ERRORSENTRY._options = None - _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_options = b'8\001' - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._options = None - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_options = b'8\001' - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._options = None - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_options = b'8\001' - _UPDATEDATAPOINTSREQUEST._serialized_start=88 - _UPDATEDATAPOINTSREQUEST._serialized_end=274 - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_start=195 - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_end=274 - _UPDATEDATAPOINTSREPLY._serialized_start=277 - _UPDATEDATAPOINTSREPLY._serialized_end=452 - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._serialized_start=372 - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._serialized_end=452 - _STREAMDATAPOINTSREQUEST._serialized_start=455 - _STREAMDATAPOINTSREQUEST._serialized_end=641 - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_start=195 - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_end=274 - _STREAMDATAPOINTSREPLY._serialized_start=644 - _STREAMDATAPOINTSREPLY._serialized_end=819 - _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_start=372 - _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_end=452 - _REGISTERDATAPOINTSREQUEST._serialized_start=821 - _REGISTERDATAPOINTSREQUEST._serialized_end=903 - _SUBSCRIBEACTUATORTARGETREQUEST._serialized_start=905 - _SUBSCRIBEACTUATORTARGETREQUEST._serialized_end=952 - _SUBSCRIBEACTUATORTARGETREPLY._serialized_start=955 - _SUBSCRIBEACTUATORTARGETREPLY._serialized_end=1167 - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_start=1083 - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_end=1167 - _REGISTRATIONMETADATA._serialized_start=1170 - _REGISTRATIONMETADATA._serialized_end=1327 - _REGISTERDATAPOINTSREPLY._serialized_start=1330 - _REGISTERDATAPOINTSREPLY._serialized_end=1477 - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_start=1431 - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_end=1477 - _COLLECTOR._serialized_start=1480 - _COLLECTOR._serialized_end=1950 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/sdv/databroker/v1/collector_pb2_grpc.py b/mock_service/sdv/databroker/v1/collector_pb2_grpc.py deleted file mode 100644 index d66462e..0000000 --- a/mock_service/sdv/databroker/v1/collector_pb2_grpc.py +++ /dev/null @@ -1,199 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from sdv.databroker.v1 import collector_pb2 as sdv_dot_databroker_dot_v1_dot_collector__pb2 - - -class CollectorStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.RegisterDatapoints = channel.unary_unary( - '/sdv.databroker.v1.Collector/RegisterDatapoints', - request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsReply.FromString, - ) - self.UpdateDatapoints = channel.unary_unary( - '/sdv.databroker.v1.Collector/UpdateDatapoints', - request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsReply.FromString, - ) - self.StreamDatapoints = channel.stream_stream( - '/sdv.databroker.v1.Collector/StreamDatapoints', - request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.FromString, - ) - self.SubscribeActuatorTargets = channel.unary_stream( - '/sdv.databroker.v1.Collector/SubscribeActuatorTargets', - request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.FromString, - ) - - -class CollectorServicer(object): - """Missing associated documentation comment in .proto file.""" - - def RegisterDatapoints(self, request, context): - """Register new datapoint (metadata) - - If the registration of at least one of the passed data point fails, the overall registration - is rejected and the gRPC status code ABORTED is returned (to indicate the "aborted" registration). - The details, which data point(s) caused the failure and the reason, is passed in back in human- - readable form in the status message. Possible failure resaons are: - * PERMISSION_DENIED - Not allowed to register this name - * ALREADY_REGISTERED - The data point is already registered by some other feeder - * RE_REGISTRATION_MISMATCH - Already registered by this feeder but with differing metadata - * INVALID_NAME - The passed name of the datapoint has an invalid structure - * INVALID_VALUE_TYPE - The passed ValueType is not supported - * INVALID_CHANGE_TYPE - The passed ChangeType is not supported - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UpdateDatapoints(self, request, context): - """Provide a set of updated datapoint values to the broker. - This is the unary equivalent of `StreamDatapoints` below and is better suited for cases - where the frequency of updates is rather low. - - NOTE: The values provided in a single request are handled as a single update in the - data broker. This ensures that any clients requesting (or subscribing to) a set of - datapoints will get a consistent update, i.e. that either all values are updated or - none are. - - Returns: any errors encountered updating the datapoints - - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamDatapoints(self, request_iterator, context): - """Provide a stream with updated datapoint values to the broker. - This is the streaming equivalent of `UpdateDatapoints` above and is better suited for - cases where the frequency of updates is high. - - NOTE: The values provided in a single request are handled as a single update in the - data broker. This ensures that any clients requesting (or subscribing to) a set of - datapoints will get a consistent update, i.e. that either all values are updated or - none are. - - Returns: any errors encountered updating the datapoints - - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SubscribeActuatorTargets(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_CollectorServicer_to_server(servicer, server): - rpc_method_handlers = { - 'RegisterDatapoints': grpc.unary_unary_rpc_method_handler( - servicer.RegisterDatapoints, - request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsReply.SerializeToString, - ), - 'UpdateDatapoints': grpc.unary_unary_rpc_method_handler( - servicer.UpdateDatapoints, - request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsReply.SerializeToString, - ), - 'StreamDatapoints': grpc.stream_stream_rpc_method_handler( - servicer.StreamDatapoints, - request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.SerializeToString, - ), - 'SubscribeActuatorTargets': grpc.unary_stream_rpc_method_handler( - servicer.SubscribeActuatorTargets, - request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'sdv.databroker.v1.Collector', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Collector(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def RegisterDatapoints(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, '/sdv.databroker.v1.Collector/RegisterDatapoints', - sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_collector__pb2.RegisterDatapointsReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UpdateDatapoints(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, '/sdv.databroker.v1.Collector/UpdateDatapoints', - sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_collector__pb2.UpdateDatapointsReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def StreamDatapoints(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream(request_iterator, target, '/sdv.databroker.v1.Collector/StreamDatapoints', - sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def SubscribeActuatorTargets(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, '/sdv.databroker.v1.Collector/SubscribeActuatorTargets', - sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/mock_service/sdv/databroker/v1/types_pb2.py b/mock_service/sdv/databroker/v1/types_pb2.py deleted file mode 100644 index 7cf9bc4..0000000 --- a/mock_service/sdv/databroker/v1/types_pb2.py +++ /dev/null @@ -1,175 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: sdv/databroker/v1/types.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsdv/databroker/v1/types.proto\x12\x11sdv.databroker.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01\"\xe2\x06\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\rfailure_value\x18\n \x01(\x0e\x32$.sdv.databroker.v1.Datapoint.FailureH\x00\x12\x16\n\x0cstring_value\x18\x0b \x01(\tH\x00\x12\x14\n\nbool_value\x18\x0c \x01(\x08H\x00\x12\x15\n\x0bint32_value\x18\r \x01(\x11H\x00\x12\x15\n\x0bint64_value\x18\x0e \x01(\x12H\x00\x12\x16\n\x0cuint32_value\x18\x0f \x01(\rH\x00\x12\x16\n\x0cuint64_value\x18\x10 \x01(\x04H\x00\x12\x15\n\x0b\x66loat_value\x18\x11 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x12 \x01(\x01H\x00\x12\x36\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x1e.sdv.databroker.v1.StringArrayH\x00\x12\x32\n\nbool_array\x18\x16 \x01(\x0b\x32\x1c.sdv.databroker.v1.BoolArrayH\x00\x12\x34\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int32ArrayH\x00\x12\x34\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int64ArrayH\x00\x12\x36\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint32ArrayH\x00\x12\x36\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint64ArrayH\x00\x12\x34\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x1d.sdv.databroker.v1.FloatArrayH\x00\x12\x36\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x1e.sdv.databroker.v1.DoubleArrayH\x00\"m\n\x07\x46\x61ilure\x12\x11\n\rINVALID_VALUE\x10\x00\x12\x11\n\rNOT_AVAILABLE\x10\x01\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x02\x12\x11\n\rACCESS_DENIED\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x42\x07\n\x05value\"\x9d\x01\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\tdata_type\x18\x05 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x32\n\x0b\x63hange_type\x18\x06 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t*\x84\x03\n\x08\x44\x61taType\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\x08\n\x04INT8\x10\x02\x12\t\n\x05INT16\x10\x03\x12\t\n\x05INT32\x10\x04\x12\t\n\x05INT64\x10\x05\x12\t\n\x05UINT8\x10\x06\x12\n\n\x06UINT16\x10\x07\x12\n\n\x06UINT32\x10\x08\x12\n\n\x06UINT64\x10\t\x12\t\n\x05\x46LOAT\x10\n\x12\n\n\x06\x44OUBLE\x10\x0b\x12\r\n\tTIMESTAMP\x10\x0c\x12\x10\n\x0cSTRING_ARRAY\x10\x14\x12\x0e\n\nBOOL_ARRAY\x10\x15\x12\x0e\n\nINT8_ARRAY\x10\x16\x12\x0f\n\x0bINT16_ARRAY\x10\x17\x12\x0f\n\x0bINT32_ARRAY\x10\x18\x12\x0f\n\x0bINT64_ARRAY\x10\x19\x12\x0f\n\x0bUINT8_ARRAY\x10\x1a\x12\x10\n\x0cUINT16_ARRAY\x10\x1b\x12\x10\n\x0cUINT32_ARRAY\x10\x1c\x12\x10\n\x0cUINT64_ARRAY\x10\x1d\x12\x0f\n\x0b\x46LOAT_ARRAY\x10\x1e\x12\x10\n\x0c\x44OUBLE_ARRAY\x10\x1f\x12\x13\n\x0fTIMESTAMP_ARRAY\x10 *s\n\x0e\x44\x61tapointError\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x00\x12\x10\n\x0cINVALID_TYPE\x10\x01\x12\x11\n\rACCESS_DENIED\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x11\n\rOUT_OF_BOUNDS\x10\x04*7\n\nChangeType\x12\n\n\x06STATIC\x10\x00\x12\r\n\tON_CHANGE\x10\x01\x12\x0e\n\nCONTINUOUS\x10\x02\x62\x06proto3') - -_DATATYPE = DESCRIPTOR.enum_types_by_name['DataType'] -DataType = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) -_DATAPOINTERROR = DESCRIPTOR.enum_types_by_name['DatapointError'] -DatapointError = enum_type_wrapper.EnumTypeWrapper(_DATAPOINTERROR) -_CHANGETYPE = DESCRIPTOR.enum_types_by_name['ChangeType'] -ChangeType = enum_type_wrapper.EnumTypeWrapper(_CHANGETYPE) -STRING = 0 -BOOL = 1 -INT8 = 2 -INT16 = 3 -INT32 = 4 -INT64 = 5 -UINT8 = 6 -UINT16 = 7 -UINT32 = 8 -UINT64 = 9 -FLOAT = 10 -DOUBLE = 11 -TIMESTAMP = 12 -STRING_ARRAY = 20 -BOOL_ARRAY = 21 -INT8_ARRAY = 22 -INT16_ARRAY = 23 -INT32_ARRAY = 24 -INT64_ARRAY = 25 -UINT8_ARRAY = 26 -UINT16_ARRAY = 27 -UINT32_ARRAY = 28 -UINT64_ARRAY = 29 -FLOAT_ARRAY = 30 -DOUBLE_ARRAY = 31 -TIMESTAMP_ARRAY = 32 -UNKNOWN_DATAPOINT = 0 -INVALID_TYPE = 1 -ACCESS_DENIED = 2 -INTERNAL_ERROR = 3 -OUT_OF_BOUNDS = 4 -STATIC = 0 -ON_CHANGE = 1 -CONTINUOUS = 2 - - -_STRINGARRAY = DESCRIPTOR.message_types_by_name['StringArray'] -_BOOLARRAY = DESCRIPTOR.message_types_by_name['BoolArray'] -_INT32ARRAY = DESCRIPTOR.message_types_by_name['Int32Array'] -_INT64ARRAY = DESCRIPTOR.message_types_by_name['Int64Array'] -_UINT32ARRAY = DESCRIPTOR.message_types_by_name['Uint32Array'] -_UINT64ARRAY = DESCRIPTOR.message_types_by_name['Uint64Array'] -_FLOATARRAY = DESCRIPTOR.message_types_by_name['FloatArray'] -_DOUBLEARRAY = DESCRIPTOR.message_types_by_name['DoubleArray'] -_DATAPOINT = DESCRIPTOR.message_types_by_name['Datapoint'] -_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] -_DATAPOINT_FAILURE = _DATAPOINT.enum_types_by_name['Failure'] -StringArray = _reflection.GeneratedProtocolMessageType('StringArray', (_message.Message,), { - 'DESCRIPTOR' : _STRINGARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StringArray) - }) -_sym_db.RegisterMessage(StringArray) - -BoolArray = _reflection.GeneratedProtocolMessageType('BoolArray', (_message.Message,), { - 'DESCRIPTOR' : _BOOLARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.BoolArray) - }) -_sym_db.RegisterMessage(BoolArray) - -Int32Array = _reflection.GeneratedProtocolMessageType('Int32Array', (_message.Message,), { - 'DESCRIPTOR' : _INT32ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Int32Array) - }) -_sym_db.RegisterMessage(Int32Array) - -Int64Array = _reflection.GeneratedProtocolMessageType('Int64Array', (_message.Message,), { - 'DESCRIPTOR' : _INT64ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Int64Array) - }) -_sym_db.RegisterMessage(Int64Array) - -Uint32Array = _reflection.GeneratedProtocolMessageType('Uint32Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT32ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Uint32Array) - }) -_sym_db.RegisterMessage(Uint32Array) - -Uint64Array = _reflection.GeneratedProtocolMessageType('Uint64Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT64ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Uint64Array) - }) -_sym_db.RegisterMessage(Uint64Array) - -FloatArray = _reflection.GeneratedProtocolMessageType('FloatArray', (_message.Message,), { - 'DESCRIPTOR' : _FLOATARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.FloatArray) - }) -_sym_db.RegisterMessage(FloatArray) - -DoubleArray = _reflection.GeneratedProtocolMessageType('DoubleArray', (_message.Message,), { - 'DESCRIPTOR' : _DOUBLEARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.DoubleArray) - }) -_sym_db.RegisterMessage(DoubleArray) - -Datapoint = _reflection.GeneratedProtocolMessageType('Datapoint', (_message.Message,), { - 'DESCRIPTOR' : _DATAPOINT, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Datapoint) - }) -_sym_db.RegisterMessage(Datapoint) - -Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { - 'DESCRIPTOR' : _METADATA, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Metadata) - }) -_sym_db.RegisterMessage(Metadata) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _DATATYPE._serialized_start=1358 - _DATATYPE._serialized_end=1746 - _DATAPOINTERROR._serialized_start=1748 - _DATAPOINTERROR._serialized_end=1863 - _CHANGETYPE._serialized_start=1865 - _CHANGETYPE._serialized_end=1920 - _STRINGARRAY._serialized_start=85 - _STRINGARRAY._serialized_end=114 - _BOOLARRAY._serialized_start=116 - _BOOLARRAY._serialized_end=143 - _INT32ARRAY._serialized_start=145 - _INT32ARRAY._serialized_end=173 - _INT64ARRAY._serialized_start=175 - _INT64ARRAY._serialized_end=203 - _UINT32ARRAY._serialized_start=205 - _UINT32ARRAY._serialized_end=234 - _UINT64ARRAY._serialized_start=236 - _UINT64ARRAY._serialized_end=265 - _FLOATARRAY._serialized_start=267 - _FLOATARRAY._serialized_end=295 - _DOUBLEARRAY._serialized_start=297 - _DOUBLEARRAY._serialized_end=326 - _DATAPOINT._serialized_start=329 - _DATAPOINT._serialized_end=1195 - _DATAPOINT_FAILURE._serialized_start=1077 - _DATAPOINT_FAILURE._serialized_end=1186 - _METADATA._serialized_start=1198 - _METADATA._serialized_end=1355 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/sdv/databroker/v1/types_pb2_grpc.py b/mock_service/sdv/databroker/v1/types_pb2_grpc.py deleted file mode 100644 index 2daafff..0000000 --- a/mock_service/sdv/databroker/v1/types_pb2_grpc.py +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - diff --git a/mock_service/sdv/edge/__init__.py b/mock_service/sdv/edge/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/edge/comfort/__init__.py b/mock_service/sdv/edge/comfort/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/edge/comfort/hvac/__init__.py b/mock_service/sdv/edge/comfort/hvac/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/edge/comfort/hvac/v1/__init__.py b/mock_service/sdv/edge/comfort/hvac/v1/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py b/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py deleted file mode 100644 index 53c2fdd..0000000 --- a/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: sdv/edge/comfort/hvac/v1/hvac.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#sdv/edge/comfort/hvac/v1/hvac.proto\x12\x18sdv.edge.comfort.hvac.v1\"H\n\x12SetAcStatusRequest\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".sdv.edge.comfort.hvac.v1.AcStatus\"\x12\n\x10SetAcStatusReply\",\n\x15SetTemperatureRequest\x12\x13\n\x0btemperature\x18\x01 \x01(\x02\"\x15\n\x13SetTemperatureReply*\x1b\n\x08\x41\x63Status\x12\x07\n\x03OFF\x10\x00\x12\x06\n\x02ON\x10\x01\x32\xe1\x01\n\x04Hvac\x12g\n\x0bSetAcStatus\x12,.sdv.edge.comfort.hvac.v1.SetAcStatusRequest\x1a*.sdv.edge.comfort.hvac.v1.SetAcStatusReply\x12p\n\x0eSetTemperature\x12/.sdv.edge.comfort.hvac.v1.SetTemperatureRequest\x1a-.sdv.edge.comfort.hvac.v1.SetTemperatureReplyb\x06proto3') - -_ACSTATUS = DESCRIPTOR.enum_types_by_name['AcStatus'] -AcStatus = enum_type_wrapper.EnumTypeWrapper(_ACSTATUS) -OFF = 0 -ON = 1 - - -_SETACSTATUSREQUEST = DESCRIPTOR.message_types_by_name['SetAcStatusRequest'] -_SETACSTATUSREPLY = DESCRIPTOR.message_types_by_name['SetAcStatusReply'] -_SETTEMPERATUREREQUEST = DESCRIPTOR.message_types_by_name['SetTemperatureRequest'] -_SETTEMPERATUREREPLY = DESCRIPTOR.message_types_by_name['SetTemperatureReply'] -SetAcStatusRequest = _reflection.GeneratedProtocolMessageType('SetAcStatusRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETACSTATUSREQUEST, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetAcStatusRequest) - }) -_sym_db.RegisterMessage(SetAcStatusRequest) - -SetAcStatusReply = _reflection.GeneratedProtocolMessageType('SetAcStatusReply', (_message.Message,), { - 'DESCRIPTOR' : _SETACSTATUSREPLY, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetAcStatusReply) - }) -_sym_db.RegisterMessage(SetAcStatusReply) - -SetTemperatureRequest = _reflection.GeneratedProtocolMessageType('SetTemperatureRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETTEMPERATUREREQUEST, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetTemperatureRequest) - }) -_sym_db.RegisterMessage(SetTemperatureRequest) - -SetTemperatureReply = _reflection.GeneratedProtocolMessageType('SetTemperatureReply', (_message.Message,), { - 'DESCRIPTOR' : _SETTEMPERATUREREPLY, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetTemperatureReply) - }) -_sym_db.RegisterMessage(SetTemperatureReply) - -_HVAC = DESCRIPTOR.services_by_name['Hvac'] -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _ACSTATUS._serialized_start=228 - _ACSTATUS._serialized_end=255 - _SETACSTATUSREQUEST._serialized_start=65 - _SETACSTATUSREQUEST._serialized_end=137 - _SETACSTATUSREPLY._serialized_start=139 - _SETACSTATUSREPLY._serialized_end=157 - _SETTEMPERATUREREQUEST._serialized_start=159 - _SETTEMPERATUREREQUEST._serialized_end=203 - _SETTEMPERATUREREPLY._serialized_start=205 - _SETTEMPERATUREREPLY._serialized_end=226 - _HVAC._serialized_start=258 - _HVAC._serialized_end=483 -# @@protoc_insertion_point(module_scope) diff --git a/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2_grpc.py b/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2_grpc.py deleted file mode 100644 index 477e44e..0000000 --- a/mock_service/sdv/edge/comfort/hvac/v1/hvac_pb2_grpc.py +++ /dev/null @@ -1,132 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from sdv.edge.comfort.hvac.v1 import hvac_pb2 as sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2 - - -class HvacStub(object): - """* - @brief Example HVAC service for controlling the heating, ventilation, and air - conditioning elements of the vehicle cabin. - This definition is designed here according to the draft of the comfort seats - service definition of the COVESA Vehicle Service Catalog (VSC) (see - https://github.com/COVESA/vehicle_service_catalog) as a definition of an - HVAC service is currently missing in VSC. - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.SetAcStatus = channel.unary_unary( - '/sdv.edge.comfort.hvac.v1.Hvac/SetAcStatus', - request_serializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusRequest.SerializeToString, - response_deserializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusReply.FromString, - ) - self.SetTemperature = channel.unary_unary( - '/sdv.edge.comfort.hvac.v1.Hvac/SetTemperature', - request_serializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureRequest.SerializeToString, - response_deserializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureReply.FromString, - ) - - -class HvacServicer(object): - """* - @brief Example HVAC service for controlling the heating, ventilation, and air - conditioning elements of the vehicle cabin. - This definition is designed here according to the draft of the comfort seats - service definition of the COVESA Vehicle Service Catalog (VSC) (see - https://github.com/COVESA/vehicle_service_catalog) as a definition of an - HVAC service is currently missing in VSC. - """ - - def SetAcStatus(self, request, context): - """* Set the desired ac status - - Returns gRPC status codes: - * OK - AcStatus set - * INVALID_ARGUMENT - The requested AcStatus is not supported by the service instance - * INTERNAL - A HVAC service internal error happened - see error message for details - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SetTemperature(self, request, context): - """* Set the desired cabin temperature - - Returns gRPC status codes: - * OK - Desired temperature set - * OUT_OF_RANGE - The specified temperature is not supported in this vehicle - * INTERNAL - A HVAC service internal error happened - see error message for details - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_HvacServicer_to_server(servicer, server): - rpc_method_handlers = { - 'SetAcStatus': grpc.unary_unary_rpc_method_handler( - servicer.SetAcStatus, - request_deserializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusRequest.FromString, - response_serializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusReply.SerializeToString, - ), - 'SetTemperature': grpc.unary_unary_rpc_method_handler( - servicer.SetTemperature, - request_deserializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureRequest.FromString, - response_serializer=sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'sdv.edge.comfort.hvac.v1.Hvac', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Hvac(object): - """* - @brief Example HVAC service for controlling the heating, ventilation, and air - conditioning elements of the vehicle cabin. - This definition is designed here according to the draft of the comfort seats - service definition of the COVESA Vehicle Service Catalog (VSC) (see - https://github.com/COVESA/vehicle_service_catalog) as a definition of an - HVAC service is currently missing in VSC. - """ - - @staticmethod - def SetAcStatus(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, '/sdv.edge.comfort.hvac.v1.Hvac/SetAcStatus', - sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusRequest.SerializeToString, - sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetAcStatusReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def SetTemperature(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, '/sdv.edge.comfort.hvac.v1.Hvac/SetTemperature', - sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureRequest.SerializeToString, - sdv_dot_edge_dot_comfort_dot_hvac_dot_v1_dot_hvac__pb2.SetTemperatureReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/mock_service/test/test_behavior.py b/mock_service/test/test_behavior.py index 973542e..fb2edb2 100644 --- a/mock_service/test/test_behavior.py +++ b/mock_service/test/test_behavior.py @@ -11,24 +11,26 @@ # * SPDX-License-Identifier: Apache-2.0 # ********************************************************************************/ +import unittest +from unittest import mock + from lib.action import SetAction from lib.behavior import Behavior from lib.trigger import ClockTrigger, EventTrigger, EventType -from lib.types import ExecutionContext - +from lib.types import ExecutionContext def test_condition_function_true(): cut = Behavior(ClockTrigger(0), condition=lambda _: True, action=SetAction(0)) - ctx = ExecutionContext(None, None, None, 0.0) + context = ExecutionContext(None, None, 0.0, None) - assert cut.is_condition_fulfilled(ctx) + assert cut.is_condition_fulfilled(context) def test_condition_function_false(): cut = Behavior(ClockTrigger(0), condition=lambda _: False, action=SetAction(0)) - ctx = ExecutionContext(None, None, None, 0.0) + context = ExecutionContext(None, None, 0.0, None) - assert not cut.is_condition_fulfilled(ctx) + assert not cut.is_condition_fulfilled(context) def test_aaa(): diff --git a/mock_service/update-protobuf.sh b/mock_service/update-protobuf.sh deleted file mode 100755 index fb8d159..0000000 --- a/mock_service/update-protobuf.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -#******************************************************************************** -# Copyright (c) 2022 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License 2.0 which is available at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -#*******************************************************************************/ -# shellcheck disable=SC2086 - -PROTO_DIRS=( - "../proto" - "./proto" -) - -for src_dir in "${PROTO_DIRS[@]}"; do - if [ ! -d "$src_dir" ]; then - echo "Error! Proto dir does not exist: $src_dir" - exit 1 - fi -done - -# make sure deps are installed -echo "# Installing requirements.txt ..." -pip3 install -q -r requirements-dev.txt - -set -xe -PROTO_FILES=$(find "${PROTO_DIRS[@]}" -name '*.proto') - -printf -v PROTO_PATH "%s:" "${PROTO_DIRS[@]}" -PROTO_PATH="${PROTO_PATH%:}" - -echo "# Generating grpc stubs from: ${PROTO_PATH} ..." -python3 -m grpc_tools.protoc \ - --python_out=. \ - --grpc_python_out=. \ - --proto_path="${PROTO_PATH}" \ - $PROTO_FILES -set +xe - -echo "# Ensure each generated folder contains an __init__.py ..." -# Get root package names -# shellcheck disable=SC2068 # Double quotes don't work with grep -ROOT_PACKAGES=$(grep -Poshr "^package[[:space:]]+\K[_0-9A-Za-z]+" ${PROTO_FILES[@]}) -# Remove duplicates -IFS=" " read -r -a ROOT_PACKAGES <<<"$(tr ' ' '\n' <<<"${ROOT_PACKAGES[@]}" | sort -u | tr '\n' ' ')" -# Recursively add __init__.py files -find "${ROOT_PACKAGES[@]}" -type d -exec touch {}/"__init__.py" \; - -echo "# Generated files:" -find "${ROOT_PACKAGES[@]}" -type f -name '*.py'