move the library to ONF

Change-Id: I383437e2934ce04cc1a7dc332134f7308991776f
diff --git a/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py
new file mode 100644
index 0000000..1807c0f
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py
@@ -0,0 +1,62 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import sw_management_service_pb2_grpc, sw_management_service_pb2, hw_pb2
+
+
+class NativeSoftwareManagementService(Service):
+
+    prefix = 'sw_management_service_'
+
+    def __init__(self, ctx):
+        super().__init__(ctx=ctx, stub=sw_management_service_pb2_grpc.NativeSoftwareManagementServiceStub)
+
+    # rpc GetSoftwareVersion(HardwareID) returns(GetSoftwareVersionInformationResponse);
+    @keyword
+    @is_connected
+    def sw_management_service_get_software_version(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.GetSoftwareVersion, hw_pb2.HardwareID, param_dict, **kwargs)
+
+    # rpc DownloadImage(DownloadImageRequest) returns(stream ImageStatus);
+    @keyword
+    @is_connected
+    def sw_management_service_download_image(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.DownloadImage, sw_management_service_pb2.DownloadImageRequest, param_dict, **kwargs)
+
+    # rpc ActivateImage(HardwareID) returns(stream ImageStatus);
+    @keyword
+    @is_connected
+    def sw_management_service_activate_image(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.ActivateImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+    # rpc RevertToStandbyImage(HardwareID) returns(stream ImageStatus);
+    @keyword
+    @is_connected
+    def sw_management_service_revert_to_standby_image(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.RevertToStandbyImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+    # rpc UpdateStartupConfiguration(ConfigRequest) returns(stream ConfigResponse);
+    @keyword
+    @is_connected
+    def sw_management_service_update_startup_configuration(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.UpdateStartupConfiguration, sw_management_service_pb2.ConfigRequest, param_dict, **kwargs)
+
+    # rpc GetStartupConfigurationInfo(StartupConfigInfoRequest) returns(StartupConfigInfoResponse);
+    @keyword
+    @is_connected
+    def sw_management_service_get_startup_configuration_info(self, param_dict, **kwargs):
+        return self._grpc_helper(self.stub.GetStartupConfigurationInfo, sw_management_service_pb2.StartupConfigInfoRequest, param_dict, **kwargs)