From a31b59e82e16c1cda6a8fd673f3a84ea28b767d1 Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Wed, 15 Jan 2025 15:11:56 -0500 Subject: [PATCH 1/8] 1st --- .../Client/ADHOMFClients.py | 64 +++++++++++++++++++ .../Client/OMFClient.py | 25 ++++++++ omf_sample_library_preview/Client/__init__.py | 1 + .../Services/DataService.py | 13 ++++ 4 files changed, 103 insertions(+) create mode 100644 omf_sample_library_preview/Client/ADHOMFClients.py diff --git a/omf_sample_library_preview/Client/ADHOMFClients.py b/omf_sample_library_preview/Client/ADHOMFClients.py new file mode 100644 index 0000000..d4afb72 --- /dev/null +++ b/omf_sample_library_preview/Client/ADHOMFClients.py @@ -0,0 +1,64 @@ +from __future__ import annotations + +from ..Models.OMFMessageAction import OMFMessageAction +from ..Models.OMFMessageType import OMFMessageType +from ..Models.OMFData import OMFData +from .Authentication import Authentication +from ..Services import DataService + +import gzip +import json +import logging + +from .OMFClient import OMFClient + +import requests + + +class ADHOMFClients(object): + """Handles communication with ADH OMF Endpoint.""" + + def __init__( + self): + self.__adhOMFClients: list[OMFClient] = [] + + + @property + def Clients(self) -> list[OMFClient]: + """ + Gets the base url + :return: + """ + return self.__adhOMFClients + + def addClient( + self, + client: OMFClient, + ) -> requests.Response: + """ + """ + self.__adhOMFClients.append(client) + + + def updateData( + self, + omf_data: list[OMFData], + ) -> requests.Response: + """ + Base OMF request function + :param message_type: OMF message type + :param action: OMF action + :param omf_data: OMF data + :return: Http response + """ + + + omf_message_json = [obj.toDictionary() for obj in omf_data] + body = json.dumps(omf_message_json) + logging.debug(f"omf body: {body}") + compressed_body = gzip.compress(bytes(body, 'utf-8')) + + for client in self.__adhOMFClients: + data_service = DataService(client) + data_service.updateDataBody(compressed_body) + diff --git a/omf_sample_library_preview/Client/OMFClient.py b/omf_sample_library_preview/Client/OMFClient.py index 9fb5d3f..a7b356c 100644 --- a/omf_sample_library_preview/Client/OMFClient.py +++ b/omf_sample_library_preview/Client/OMFClient.py @@ -173,6 +173,31 @@ def omfRequest( verify=self.VerifySSL, timeout=600, ) + + def omfRequestBody( + self, + message_type: OMFMessageType, + action: OMFMessageAction, + omf_message: any, + ) -> requests.Response: + """ + Base OMF request function + :param message_type: OMF message type + :param action: OMF action + :param omf_message: OMF message + :return: Http response + """ + + headers = self.getHeaders(message_type, action) + + return self.request( + 'POST', + self.OMFEndpoint, + headers=headers, + data=omf_message, + verify=self.VerifySSL, + timeout=600, + ) def request( self, diff --git a/omf_sample_library_preview/Client/__init__.py b/omf_sample_library_preview/Client/__init__.py index 91fbfbc..39ce1e2 100644 --- a/omf_sample_library_preview/Client/__init__.py +++ b/omf_sample_library_preview/Client/__init__.py @@ -1,4 +1,5 @@ from .ADHOMFClient import ADHOMFClient +from .ADHOMFClients import ADHOMFClients from .Authentication import Authentication from .OMFClient import OMFClient from .OMFError import OMFError diff --git a/omf_sample_library_preview/Services/DataService.py b/omf_sample_library_preview/Services/DataService.py index 855d4d4..18efc1b 100644 --- a/omf_sample_library_preview/Services/DataService.py +++ b/omf_sample_library_preview/Services/DataService.py @@ -38,6 +38,19 @@ def updateData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to update data') + def updateDataBody(self, body: any): + """ + Updates OMF Data and throws error on failure + :param omf_data: List of OMF Data + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Data, + OMFMessageAction.Update, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to update data') + def deleteData(self, omf_data: list[OMFData]): """ Deletes OMF Data and throws error on failure From 437d541e829de4dff3ba671cff9ed47d53a2cb98 Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Thu, 16 Jan 2025 14:18:02 -0500 Subject: [PATCH 2/8] Update 2 --- .../Client/ADHOMFClients.py | 64 ---------------- .../Client/OMFClient.py | 12 ++- .../Client/OMFClients.py | 73 +++++++++++++++++++ omf_sample_library_preview/Client/__init__.py | 2 +- .../Services/ContainerService.py | 40 ++++++++++ .../Services/DataService.py | 28 ++++++- .../Services/TypeService.py | 41 +++++++++++ 7 files changed, 190 insertions(+), 70 deletions(-) delete mode 100644 omf_sample_library_preview/Client/ADHOMFClients.py create mode 100644 omf_sample_library_preview/Client/OMFClients.py diff --git a/omf_sample_library_preview/Client/ADHOMFClients.py b/omf_sample_library_preview/Client/ADHOMFClients.py deleted file mode 100644 index d4afb72..0000000 --- a/omf_sample_library_preview/Client/ADHOMFClients.py +++ /dev/null @@ -1,64 +0,0 @@ -from __future__ import annotations - -from ..Models.OMFMessageAction import OMFMessageAction -from ..Models.OMFMessageType import OMFMessageType -from ..Models.OMFData import OMFData -from .Authentication import Authentication -from ..Services import DataService - -import gzip -import json -import logging - -from .OMFClient import OMFClient - -import requests - - -class ADHOMFClients(object): - """Handles communication with ADH OMF Endpoint.""" - - def __init__( - self): - self.__adhOMFClients: list[OMFClient] = [] - - - @property - def Clients(self) -> list[OMFClient]: - """ - Gets the base url - :return: - """ - return self.__adhOMFClients - - def addClient( - self, - client: OMFClient, - ) -> requests.Response: - """ - """ - self.__adhOMFClients.append(client) - - - def updateData( - self, - omf_data: list[OMFData], - ) -> requests.Response: - """ - Base OMF request function - :param message_type: OMF message type - :param action: OMF action - :param omf_data: OMF data - :return: Http response - """ - - - omf_message_json = [obj.toDictionary() for obj in omf_data] - body = json.dumps(omf_message_json) - logging.debug(f"omf body: {body}") - compressed_body = gzip.compress(bytes(body, 'utf-8')) - - for client in self.__adhOMFClients: - data_service = DataService(client) - data_service.updateDataBody(compressed_body) - diff --git a/omf_sample_library_preview/Client/OMFClient.py b/omf_sample_library_preview/Client/OMFClient.py index a7b356c..559284a 100644 --- a/omf_sample_library_preview/Client/OMFClient.py +++ b/omf_sample_library_preview/Client/OMFClient.py @@ -159,10 +159,7 @@ def omfRequest( if type(omf_message) is not list: raise TypeError('Omf messages must be a list') - omf_message_json = [obj.toDictionary() for obj in omf_message] - body = json.dumps(omf_message_json) - logging.debug(f"omf body: {body}") - compressed_body = gzip.compress(bytes(body, 'utf-8')) + compressed_body = self.compressOMFMessage(omf_message) headers = self.getHeaders(message_type, action) return self.request( @@ -173,6 +170,13 @@ def omfRequest( verify=self.VerifySSL, timeout=600, ) + + def compressOMFMessage(self, omf_message): + omf_message_json = [obj.toDictionary() for obj in omf_message] + body = json.dumps(omf_message_json) + logging.debug(f"omf body: {body}") + compressed_body = gzip.compress(bytes(body, 'utf-8')) + return compressed_body def omfRequestBody( self, diff --git a/omf_sample_library_preview/Client/OMFClients.py b/omf_sample_library_preview/Client/OMFClients.py new file mode 100644 index 0000000..7b273dd --- /dev/null +++ b/omf_sample_library_preview/Client/OMFClients.py @@ -0,0 +1,73 @@ +from __future__ import annotations + +from ..Models.OMFMessageAction import OMFMessageAction +from ..Models.OMFMessageType import OMFMessageType +from ..Models.OMFData import OMFData + +from ..Models.OMFMessageAction import OMFMessageAction +from ..Models.OMFMessageType import OMFMessageType +from ..Models.OMFContainer import OMFContainer +from ..Models.OMFData import OMFData +from ..Models.OMFLinkData import OMFLinkData +from ..Models.OMFMessageAction import OMFMessageAction +from ..Models.OMFMessageType import OMFMessageType +from ..Models.OMFType import OMFType + +import gzip +import json +import logging + +from .OMFClient import OMFClient + +import requests + + +class OMFClients(object): + """Handles communication with OMF Endpoints.""" + + def __init__( + self): + self.__OMFClient: list[OMFClient] = [] + + + @property + def Clients(self) -> list[OMFClient]: + """ + Gets the base url + :return: + """ + return self.__OMFClient + + def addClient( + self, + client: OMFClient, + ) -> requests.Response: + """ + """ + self.__OMFClient.append(client) + + def compressOMFMessage(self, omf_message): + omf_message_json = [obj.toDictionary() for obj in omf_message] + body = json.dumps(omf_message_json) + logging.debug(f"omf body: {body}") + compressed_body = gzip.compress(bytes(body, 'utf-8')) + return compressed_body + + def omfRequests( + self, + message_type: OMFMessageType, + action: OMFMessageAction, + omf_data: list[OMFType | OMFContainer | OMFData | OMFLinkData], + ) -> requests.Response: + """ + Base OMF request function + :param message_type: OMF message type + :param action: OMF action + :param omf_data: OMF data + :return: Http response + """ + compressed_body = self.compressOMFMessage(omf_data) + + for client in self.__OMFClient: + client.omfRequestBody(message_type,action,compressed_body) + diff --git a/omf_sample_library_preview/Client/__init__.py b/omf_sample_library_preview/Client/__init__.py index 39ce1e2..bf74915 100644 --- a/omf_sample_library_preview/Client/__init__.py +++ b/omf_sample_library_preview/Client/__init__.py @@ -1,5 +1,5 @@ from .ADHOMFClient import ADHOMFClient -from .ADHOMFClients import ADHOMFClients +from .OMFClients import OMFClients from .Authentication import Authentication from .OMFClient import OMFClient from .OMFError import OMFError diff --git a/omf_sample_library_preview/Services/ContainerService.py b/omf_sample_library_preview/Services/ContainerService.py index 2c6b4dd..5bb3981 100644 --- a/omf_sample_library_preview/Services/ContainerService.py +++ b/omf_sample_library_preview/Services/ContainerService.py @@ -56,3 +56,43 @@ def deleteContainers(self, omf_containers: list[OMFContainer]): self.__omf_client.verifySuccessfulResponse( response, 'Failed to delete container' ) + + def createDataBody(self, body: any): + """ + Creates OMF Container and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Container, + OMFMessageAction.Create, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to create Container') + + def updateDataBody(self, body: any): + """ + Updates OMF Container and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Container, + OMFMessageAction.Update, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to update Container') + + + def deleteDataBody(self, body: any): + """ + Deletes OMF Container and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Container, + OMFMessageAction.Delete, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete Container') diff --git a/omf_sample_library_preview/Services/DataService.py b/omf_sample_library_preview/Services/DataService.py index 18efc1b..cfbf173 100644 --- a/omf_sample_library_preview/Services/DataService.py +++ b/omf_sample_library_preview/Services/DataService.py @@ -25,6 +25,19 @@ def createData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to create data') + def createDataBody(self, body: any): + """ + Creates OMF Data and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Data, + OMFMessageAction.Create, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to create data') + def updateData(self, omf_data: list[OMFData]): """ Updates OMF Data and throws error on failure @@ -41,7 +54,7 @@ def updateData(self, omf_data: list[OMFData]): def updateDataBody(self, body: any): """ Updates OMF Data and throws error on failure - :param omf_data: List of OMF Data + :param body: Formed zipped OMF message """ response = self.__omf_client.retryWithBackoff( self.__omf_client.omfRequestBody, @@ -63,3 +76,16 @@ def deleteData(self, omf_data: list[OMFData]): omf_data, ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') + + def deleteData(self, body: any): + """ + Deletes OMF Data and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Data, + OMFMessageAction.Delete, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') diff --git a/omf_sample_library_preview/Services/TypeService.py b/omf_sample_library_preview/Services/TypeService.py index bb9f444..449382c 100644 --- a/omf_sample_library_preview/Services/TypeService.py +++ b/omf_sample_library_preview/Services/TypeService.py @@ -50,3 +50,44 @@ def deleteTypes(self, omf_types: list[OMFType]): omf_types, ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete types') + + + def createTypesBody(self, body: any): + """ + Creates OMF Types and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Type, + OMFMessageAction.Create, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to create Types') + + def updateTypesBody(self, body: any): + """ + Updates OMF Types and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Type, + OMFMessageAction.Update, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to update Types') + + + def deleteTypesBody(self, body: any): + """ + Deletes OMF Types and throws error on failure + :param body: Formed zipped OMF message + """ + response = self.__omf_client.retryWithBackoff( + self.__omf_client.omfRequestBody, + OMFMessageType.Type, + OMFMessageAction.Delete, + body, + ) + self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete Types') \ No newline at end of file From 21735f939d6867b20adc2c699dba8b95af9d01ca Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Thu, 16 Jan 2025 14:19:06 -0500 Subject: [PATCH 3/8] updating docs --- HISTORY.md | 4 ++++ setup.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 0f01a6d..2d94c85 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,3 +3,7 @@ ## 0.1.0_preview / 2023-11-09 - Initial release + +## 0.1.2_preview / 2023-11-09 + +- Adding support for fanning to multiple clients (can be different endpoints) \ No newline at end of file diff --git a/setup.py b/setup.py index d882e0f..5dc3258 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name='omf_sample_library_preview', - version='0.1.1_preview', + version='0.1.2_preview', author='AVEVA', license='Apache 2.0', author_email='samples@osisoft.com', From 359e9f01c56b86e60434d06d708f0b41e32f12d9 Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Thu, 16 Jan 2025 14:19:18 -0500 Subject: [PATCH 4/8] Update HISTORY.md --- HISTORY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 2d94c85..bce55ec 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -4,6 +4,6 @@ - Initial release -## 0.1.2_preview / 2023-11-09 +## 0.1.2_preview / 2025-1-16 - Adding support for fanning to multiple clients (can be different endpoints) \ No newline at end of file From c4321a1c1f3222b38f7d977dd9f5b008ff982547 Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Fri, 17 Jan 2025 14:22:21 -0500 Subject: [PATCH 5/8] simplifying --- .../Client/OMFClient.py | 62 +++++++------------ .../Client/OMFClients.py | 11 +--- .../Services/ContainerService.py | 42 +------------ .../Services/DataService.py | 38 ------------ .../Services/GeneralService.py | 5 +- .../Services/TypeService.py | 43 +------------ 6 files changed, 29 insertions(+), 172 deletions(-) diff --git a/omf_sample_library_preview/Client/OMFClient.py b/omf_sample_library_preview/Client/OMFClient.py index 559284a..6fa2701 100644 --- a/omf_sample_library_preview/Client/OMFClient.py +++ b/omf_sample_library_preview/Client/OMFClient.py @@ -91,6 +91,15 @@ def OMFEndpoint(self) -> str: """ return self.__omf_endpoint + @staticmethod + def compressOMFMessage(omf_message) -> bytes: + omf_message_json = [obj.toDictionary() for obj in omf_message] + body = json.dumps(omf_message_json) + logging.debug(f"omf body: {body}") + compressed_body = gzip.compress(bytes(body, 'utf-8')) + gzip.open + return compressed_body + def verifySuccessfulResponse( self, response, main_message: str, throw_on_bad: bool = True ): @@ -137,16 +146,11 @@ def containerRequest( ): self.omfRequest(OMFMessageType.Container, action, containers) - def containerRequest( - self, action: OMFMessageAction, containers: list[OMFContainer] - ): - self.omfRequest(OMFMessageType.Container, action, containers) - def omfRequest( self, message_type: OMFMessageType, action: OMFMessageAction, - omf_message: list[OMFType | OMFContainer | OMFData | OMFLinkData], + omf_message: list[OMFType | OMFContainer | OMFData | OMFLinkData] | bytes, ) -> requests.Response: """ Base OMF request function @@ -156,10 +160,18 @@ def omfRequest( :return: Http response """ - if type(omf_message) is not list: - raise TypeError('Omf messages must be a list') + if type(omf_message) is not list and type(omf_message) is not bytes: + raise TypeError('Omf messages must be a list or bytes') + + compressed_body = {} + if type(omf_message) is not bytes: + compressed_body = self.compressOMFMessage(omf_message) + else: + if omf_message[0] == 31 and omf_message[1] == 139: + compressed_body = omf_message + else: + raise TypeError('Omf messages must be gzip bytes') - compressed_body = self.compressOMFMessage(omf_message) headers = self.getHeaders(message_type, action) return self.request( @@ -171,38 +183,6 @@ def omfRequest( timeout=600, ) - def compressOMFMessage(self, omf_message): - omf_message_json = [obj.toDictionary() for obj in omf_message] - body = json.dumps(omf_message_json) - logging.debug(f"omf body: {body}") - compressed_body = gzip.compress(bytes(body, 'utf-8')) - return compressed_body - - def omfRequestBody( - self, - message_type: OMFMessageType, - action: OMFMessageAction, - omf_message: any, - ) -> requests.Response: - """ - Base OMF request function - :param message_type: OMF message type - :param action: OMF action - :param omf_message: OMF message - :return: Http response - """ - - headers = self.getHeaders(message_type, action) - - return self.request( - 'POST', - self.OMFEndpoint, - headers=headers, - data=omf_message, - verify=self.VerifySSL, - timeout=600, - ) - def request( self, method: str, diff --git a/omf_sample_library_preview/Client/OMFClients.py b/omf_sample_library_preview/Client/OMFClients.py index 7b273dd..a22d91f 100644 --- a/omf_sample_library_preview/Client/OMFClients.py +++ b/omf_sample_library_preview/Client/OMFClients.py @@ -45,13 +45,6 @@ def addClient( """ """ self.__OMFClient.append(client) - - def compressOMFMessage(self, omf_message): - omf_message_json = [obj.toDictionary() for obj in omf_message] - body = json.dumps(omf_message_json) - logging.debug(f"omf body: {body}") - compressed_body = gzip.compress(bytes(body, 'utf-8')) - return compressed_body def omfRequests( self, @@ -66,8 +59,8 @@ def omfRequests( :param omf_data: OMF data :return: Http response """ - compressed_body = self.compressOMFMessage(omf_data) + compressed_body = OMFClient.compressOMFMessage(omf_data) for client in self.__OMFClient: - client.omfRequestBody(message_type,action,compressed_body) + client.omfRequest(message_type,action,compressed_body) diff --git a/omf_sample_library_preview/Services/ContainerService.py b/omf_sample_library_preview/Services/ContainerService.py index 5bb3981..5216016 100644 --- a/omf_sample_library_preview/Services/ContainerService.py +++ b/omf_sample_library_preview/Services/ContainerService.py @@ -55,44 +55,4 @@ def deleteContainers(self, omf_containers: list[OMFContainer]): ) self.__omf_client.verifySuccessfulResponse( response, 'Failed to delete container' - ) - - def createDataBody(self, body: any): - """ - Creates OMF Container and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Container, - OMFMessageAction.Create, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to create Container') - - def updateDataBody(self, body: any): - """ - Updates OMF Container and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Container, - OMFMessageAction.Update, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to update Container') - - - def deleteDataBody(self, body: any): - """ - Deletes OMF Container and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Container, - OMFMessageAction.Delete, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete Container') + ) \ No newline at end of file diff --git a/omf_sample_library_preview/Services/DataService.py b/omf_sample_library_preview/Services/DataService.py index cfbf173..b150b3e 100644 --- a/omf_sample_library_preview/Services/DataService.py +++ b/omf_sample_library_preview/Services/DataService.py @@ -25,19 +25,6 @@ def createData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to create data') - def createDataBody(self, body: any): - """ - Creates OMF Data and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Data, - OMFMessageAction.Create, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to create data') - def updateData(self, omf_data: list[OMFData]): """ Updates OMF Data and throws error on failure @@ -51,19 +38,6 @@ def updateData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to update data') - def updateDataBody(self, body: any): - """ - Updates OMF Data and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Data, - OMFMessageAction.Update, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to update data') - def deleteData(self, omf_data: list[OMFData]): """ Deletes OMF Data and throws error on failure @@ -76,16 +50,4 @@ def deleteData(self, omf_data: list[OMFData]): omf_data, ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') - - def deleteData(self, body: any): - """ - Deletes OMF Data and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Data, - OMFMessageAction.Delete, - body, - ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') diff --git a/omf_sample_library_preview/Services/GeneralService.py b/omf_sample_library_preview/Services/GeneralService.py index 46243f6..b2058d1 100644 --- a/omf_sample_library_preview/Services/GeneralService.py +++ b/omf_sample_library_preview/Services/GeneralService.py @@ -1,3 +1,6 @@ +import gzip +import json +import logging from ..Client.OMFClient import OMFClient from ..Models.OMFContainer import OMFContainer from ..Models.OMFData import OMFData @@ -49,7 +52,7 @@ def __split_omf_objects( else: raise TypeError('Invalid OMF Object type') - return types, containers, data + return types, containers, data def create(self, omf_objects: list[OMFType | OMFContainer | OMFData]): """ diff --git a/omf_sample_library_preview/Services/TypeService.py b/omf_sample_library_preview/Services/TypeService.py index 449382c..942b238 100644 --- a/omf_sample_library_preview/Services/TypeService.py +++ b/omf_sample_library_preview/Services/TypeService.py @@ -49,45 +49,4 @@ def deleteTypes(self, omf_types: list[OMFType]): OMFMessageAction.Delete, omf_types, ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete types') - - - def createTypesBody(self, body: any): - """ - Creates OMF Types and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Type, - OMFMessageAction.Create, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to create Types') - - def updateTypesBody(self, body: any): - """ - Updates OMF Types and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Type, - OMFMessageAction.Update, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to update Types') - - - def deleteTypesBody(self, body: any): - """ - Deletes OMF Types and throws error on failure - :param body: Formed zipped OMF message - """ - response = self.__omf_client.retryWithBackoff( - self.__omf_client.omfRequestBody, - OMFMessageType.Type, - OMFMessageAction.Delete, - body, - ) - self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete Types') \ No newline at end of file + self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete types') \ No newline at end of file From 3e283c59ae6f66e13567db9c62936d2132431aca Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Fri, 17 Jan 2025 14:24:32 -0500 Subject: [PATCH 6/8] updates --- omf_sample_library_preview/Services/DataService.py | 1 - omf_sample_library_preview/Services/GeneralService.py | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/omf_sample_library_preview/Services/DataService.py b/omf_sample_library_preview/Services/DataService.py index b150b3e..855d4d4 100644 --- a/omf_sample_library_preview/Services/DataService.py +++ b/omf_sample_library_preview/Services/DataService.py @@ -50,4 +50,3 @@ def deleteData(self, omf_data: list[OMFData]): omf_data, ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') - self.__omf_client.verifySuccessfulResponse(response, 'Failed to delete data') diff --git a/omf_sample_library_preview/Services/GeneralService.py b/omf_sample_library_preview/Services/GeneralService.py index b2058d1..46243f6 100644 --- a/omf_sample_library_preview/Services/GeneralService.py +++ b/omf_sample_library_preview/Services/GeneralService.py @@ -1,6 +1,3 @@ -import gzip -import json -import logging from ..Client.OMFClient import OMFClient from ..Models.OMFContainer import OMFContainer from ..Models.OMFData import OMFData @@ -52,7 +49,7 @@ def __split_omf_objects( else: raise TypeError('Invalid OMF Object type') - return types, containers, data + return types, containers, data def create(self, omf_objects: list[OMFType | OMFContainer | OMFData]): """ From 7e60290728c0c66b45869ebd462d78ed20d890ff Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Fri, 17 Jan 2025 14:28:15 -0500 Subject: [PATCH 7/8] adding back to services --- omf_sample_library_preview/Services/ContainerService.py | 6 +++--- omf_sample_library_preview/Services/DataService.py | 6 +++--- omf_sample_library_preview/Services/TypeService.py | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/omf_sample_library_preview/Services/ContainerService.py b/omf_sample_library_preview/Services/ContainerService.py index 5216016..95f0bc7 100644 --- a/omf_sample_library_preview/Services/ContainerService.py +++ b/omf_sample_library_preview/Services/ContainerService.py @@ -12,7 +12,7 @@ def __init__(self, omf_client: OMFClient): def OMFClient(self) -> OMFClient: return self.__omf_client - def createContainers(self, omf_containers: list[OMFContainer]): + def createContainers(self, omf_containers: list[OMFContainer] | bytes): """ Creates OMF Containers and throws error on failure :param omf_containers: List of OMF Containers @@ -27,7 +27,7 @@ def createContainers(self, omf_containers: list[OMFContainer]): response, 'Failed to create container' ) - def updateContainers(self, omf_containers: list[OMFContainer]): + def updateContainers(self, omf_containers: list[OMFContainer] | bytes): """ Updates OMF Containers and throws error on failure :param omf_containers: List of OMF Containers @@ -42,7 +42,7 @@ def updateContainers(self, omf_containers: list[OMFContainer]): response, 'Failed to update container' ) - def deleteContainers(self, omf_containers: list[OMFContainer]): + def deleteContainers(self, omf_containers: list[OMFContainer] | bytes): """ Deletes OMF Containers and throws error on failure :param omf_containers: List of OMF Containers diff --git a/omf_sample_library_preview/Services/DataService.py b/omf_sample_library_preview/Services/DataService.py index 855d4d4..4ace03f 100644 --- a/omf_sample_library_preview/Services/DataService.py +++ b/omf_sample_library_preview/Services/DataService.py @@ -12,7 +12,7 @@ def __init__(self, omf_client: OMFClient): def OMFClient(self) -> OMFClient: return self.__omf_client - def createData(self, omf_data: list[OMFData]): + def createData(self, omf_data: list[OMFData] | bytes): """ Creates OMF Data and throws error on failure :param omf_data: List of OMF Data @@ -25,7 +25,7 @@ def createData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to create data') - def updateData(self, omf_data: list[OMFData]): + def updateData(self, omf_data: list[OMFData] | bytes): """ Updates OMF Data and throws error on failure :param omf_data: List of OMF Data @@ -38,7 +38,7 @@ def updateData(self, omf_data: list[OMFData]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to update data') - def deleteData(self, omf_data: list[OMFData]): + def deleteData(self, omf_data: list[OMFData] | bytes): """ Deletes OMF Data and throws error on failure :param omf_data: List of OMF Data diff --git a/omf_sample_library_preview/Services/TypeService.py b/omf_sample_library_preview/Services/TypeService.py index 942b238..e5b68fe 100644 --- a/omf_sample_library_preview/Services/TypeService.py +++ b/omf_sample_library_preview/Services/TypeService.py @@ -12,7 +12,7 @@ def __init__(self, omf_client: OMFClient): def OMFClient(self) -> OMFClient: return self.__omf_client - def createTypes(self, omf_types: list[OMFType]): + def createTypes(self, omf_types: list[OMFType] | bytes): """ Creates OMF Types and throws error on failure :param omf_types: List of OMF Types @@ -25,7 +25,7 @@ def createTypes(self, omf_types: list[OMFType]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to create types') - def updateTypes(self, omf_types: list[OMFType]): + def updateTypes(self, omf_types: list[OMFType] | bytes): """ Updates OMF Types and throws error on failure :param omf_types: List of OMF Types @@ -38,7 +38,7 @@ def updateTypes(self, omf_types: list[OMFType]): ) self.__omf_client.verifySuccessfulResponse(response, 'Failed to update types') - def deleteTypes(self, omf_types: list[OMFType]): + def deleteTypes(self, omf_types: list[OMFType] | bytes): """ Deletes OMF Types and throws error on failure :param omf_types: List of OMF Types From b898e5584bf9250214b6bdeba6ce25bdd145e9ee Mon Sep 17 00:00:00 2001 From: Derek Endres Date: Tue, 21 Jan 2025 11:08:12 -0500 Subject: [PATCH 8/8] Update setup.py --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 5dc3258..2cfe04b 100644 --- a/setup.py +++ b/setup.py @@ -8,11 +8,11 @@ version='0.1.2_preview', author='AVEVA', license='Apache 2.0', - author_email='samples@osisoft.com', + author_email='samples@aveva.com', description='A preview of an OMF client library', long_description=long_description, long_description_content_type='text/markdown', - url='https://github.com/osisoft/sample-omf_library_preview-python', + url='https://github.com/aveva/sample-omf_library_preview-python', packages=setuptools.find_packages(), install_requires=['requests>=2.28.2', 'python-dateutil>=2.8.2'], tests_require=[