Changes to delete olt subscriber and remove voltha device after subscriber tests are done.
The voltha device enable tests now also cleanup/disable the device after the test is complete.

Change-Id: I2596bcc4664ddee818a01693600d528e3f834264
diff --git a/src/test/utils/VolthaCtrl.py b/src/test/utils/VolthaCtrl.py
index 86d17e9..d018edb 100644
--- a/src/test/utils/VolthaCtrl.py
+++ b/src/test/utils/VolthaCtrl.py
@@ -192,7 +192,7 @@
         url = '{}/local/devices'.format(self.rest_url)
         if olt_mac is None and address is None:
             log.error('Either olt mac or address needs to be specified')
-            return False
+            return None, False
         if olt_mac is not None:
             device_config = { 'type' : olt_type, 'mac_address' : olt_mac }
         else:
@@ -204,25 +204,39 @@
             log.info('Pre-provisioning %s with address %s' %(olt_type, address))
         resp = requests.post(url, data = json.dumps(device_config))
         if resp.ok is not True or resp.status_code != 200:
-            return False
+            return None, False
         device_id = resp.json()['id']
         log.info('Enabling device %s' %(device_id))
         enable_url = '{}/{}/enable'.format(url, device_id)
         resp = requests.post(enable_url)
         if resp.ok is not True or resp.status_code != 200:
-            return False
+            return None, False
         #get operational status
         time.sleep(5)
         log.info('Checking operational status for device %s' %(device_id))
         resp = requests.get('{}/{}'.format(url, device_id))
         if resp.ok is not True or resp.status_code != 200:
-            return False
+            return device_id, False
         device_info = resp.json()
         if device_info['oper_status'] != 'ACTIVE' or \
            device_info['admin_state'] != 'ENABLED' or \
            device_info['connect_status'] != 'REACHABLE':
-            return False
+            return device_id, False
 
+        return device_id, True
+
+    def disable_device(self, device_id, delete = True):
+        log.info('Disabling device %s' %(device_id))
+        disable_url = '{}/local/devices/{}/disable'.format(self.rest_url, device_id)
+        resp = requests.post(disable_url)
+        if resp.ok is not True or resp.status_code != 200:
+            return False
+        if delete is True:
+            log.info('Deleting device %s' %(device_id))
+            delete_url = '{}/local/devices/{}/delete'.format(self.rest_url, device_id)
+            resp = requests.delete(delete_url)
+            if resp.status_code not in [204, 202, 200]:
+                return False
         return True
 
     def get_operational_status(self, device_id):