From 70e2b1ce43c17a85f6e78891fc7ba0bd0682615e Mon Sep 17 00:00:00 2001
From: Auke Klazema <klazema@astron.nl>
Date: Thu, 6 Jun 2019 15:00:31 +0000
Subject: [PATCH] SW-705: Add missing contextmanager code on some of the RPC
 classes

---
 LTA/LTAIngest/LTAIngestClient/lib/rpc.py            | 13 +++++++++++++
 .../TaskManagement/Client/lib/taskmanagement_rpc.py | 13 +++++++++++++
 MAC/Services/src/observation_control_rpc.py         | 13 +++++++++++++
 .../ResourceAssignmentService/rpc.py                | 13 +++++++++++++
 4 files changed, 52 insertions(+)

diff --git a/LTA/LTAIngest/LTAIngestClient/lib/rpc.py b/LTA/LTAIngest/LTAIngestClient/lib/rpc.py
index 30ed8a2a8e3..d9fd669a7a0 100644
--- a/LTA/LTAIngest/LTAIngestClient/lib/rpc.py
+++ b/LTA/LTAIngest/LTAIngestClient/lib/rpc.py
@@ -11,6 +11,19 @@ class IngestRPC():
     def __init__(self, service_name=DEFAULT_INGEST_SERVICENAME, exchange=DEFAULT_BUSNAME, broker=DEFAULT_BROKER):
         self.rpc = RPC(service_name=service_name, exchange=exchange, broker=broker, timeout=5*60)
 
+    def open(self):
+        self.rpc.open()
+
+    def close(self):
+        self.rpc.close()
+
+    def __enter__(self):
+        self.open()
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        self.close()
+
     def removeExportJob(self, export_group_id):
         return self.rpc.execute('RemoveExportJob', export_group_id=export_group_id)
 
diff --git a/MAC/Services/TaskManagement/Client/lib/taskmanagement_rpc.py b/MAC/Services/TaskManagement/Client/lib/taskmanagement_rpc.py
index 0f537210351..cf64a573d7b 100644
--- a/MAC/Services/TaskManagement/Client/lib/taskmanagement_rpc.py
+++ b/MAC/Services/TaskManagement/Client/lib/taskmanagement_rpc.py
@@ -10,6 +10,19 @@ class TaskManagementRPC():
         self.rpc = RPC(exchange=exchange, service_name=DEFAULT_SERVICENAME, broker=broker,
                        timeout=timeout)
 
+    def open(self):
+        self.rpc.open()
+
+    def close(self):
+        self.rpc.close()
+
+    def __enter__(self):
+        self.open()
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        self.close()
+
     def abort_task(self, otdb_id):
         result = self.rpc.execute('AbortTask', otdb_id=otdb_id)
         return result
diff --git a/MAC/Services/src/observation_control_rpc.py b/MAC/Services/src/observation_control_rpc.py
index b5551004888..8935cc3ac00 100644
--- a/MAC/Services/src/observation_control_rpc.py
+++ b/MAC/Services/src/observation_control_rpc.py
@@ -38,5 +38,18 @@ class ObservationControlRPCClient():
                  timeout=120):
         self.rpc = RPC(service_name=servicename, exchange=exchange, broker=broker, timeout=timeout)
 
+    def open(self):
+        self.rpc.open()
+
+    def close(self):
+        self.rpc.close()
+
+    def __enter__(self):
+        self.open()
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        self.close()
+
     def abort_observation(self, sas_id):
         return self.rpc.execute('AbortObservation', sas_id=sas_id)
diff --git a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
index 138f548fbee..8c2759af65b 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
@@ -44,6 +44,19 @@ class RARPC():
         self.rpc = RPC(service_name=DEFAULT_SERVICENAME, exchange=exchange, broker=broker,
                        timeout=timeout)
 
+    def open(self):
+        self.rpc.open()
+
+    def close(self):
+        self.rpc.close()
+
+    def __enter__(self):
+        self.open()
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        self.close()
+
     def getResourceClaimStatuses(self):
         return self.rpc.execute('GetResourceClaimStatuses')
 
-- 
GitLab