Adding a control class for app configuration/activation.
Change dhcp/igmp to use this interface for app configuration
diff --git a/src/test/dhcp/dhcpTest.py b/src/test/dhcp/dhcpTest.py
index 52788fc..5be99b7 100644
--- a/src/test/dhcp/dhcpTest.py
+++ b/src/test/dhcp/dhcpTest.py
@@ -6,11 +6,11 @@
 import time
 import os, sys
 import copy
-import json
 CORD_TEST_UTILS = 'utils'
 test_root = os.getenv('CORD_TEST_ROOT') or './'
 sys.path.append(test_root + CORD_TEST_UTILS)
 from DHCP import DHCPTest
+from OnosCtrl import OnosCtrl
 
 log.setLevel('INFO')
 
@@ -24,25 +24,30 @@
         "router": "10.1.8.1",
         "domain": "8.8.8.8",
         "ttl": "63",
-        "lease": "300",
-        "renew": "150",
-        "rebind": "200",
         "delay": "2",
-        "timeout": "150",
         "startip": "10.1.11.51",
         "endip": "10.1.11.100"
     }
     
+    app = 'org.onosproject.dhcp'
+
+    def setUp(self):
+        ''' Activate the dhcp app'''
+        self.onos_ctrl = OnosCtrl(self.app)
+        status, _ = self.onos_ctrl.activate()
+        assert_equal(status, True)
+        time.sleep(3)
+
+    def teardown(self):
+        '''Deactivate the dhcp app'''
+        self.onos_ctrl.deactivate()
+
     def onos_load_config(self, config):
-          json_dict = json.JSONEncoder().encode(config)
-          with tempfile.NamedTemporaryFile(delete=False) as temp:
-                temp.write(json_dict)
-                temp.flush()
-                temp.close()
-          log.info('Loading DHCP config in file %s to ONOS.' %temp.name)
-          os.system('./dhcp_config_load.sh %s' %temp.name)
-          os.unlink(temp.name)
-          time.sleep(2)
+        status, code = self.onos_ctrl.config(config)
+        if status is False:
+            log.info('JSON request returned status %d' %code)
+            assert_equal(status, True)
+        time.sleep(2)
 
     def onos_dhcp_table_load(self, config = None):
           dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
@@ -62,15 +67,15 @@
         return cip,sip
 
     def test_dhcp_1request(self, iface = 'veth0'):
-        config = {'startip':'10.10.10.20', 'endip':'10.10.10.100', 
-                  'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:cb:fe",
+        config = {'startip':'10.10.10.20', 'endip':'10.10.10.69', 
+                  'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
                   'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
         self.onos_dhcp_table_load(config)
         self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
         self.send_recv()
 
     def test_dhcp_Nrequest(self, iface = 'veth0'):
-        config = {'startip':'192.168.1.20', 'endip':'192.168.1.100', 
+        config = {'startip':'192.168.1.20', 'endip':'192.168.1.69', 
                   'ip':'192.168.1.2', 'mac': "ca:fe:ca:fe:cc:fe",
                   'subnet': '255.255.255.0', 'broadcast':'192.168.1.255', 'router': '192.168.1.1'}
         self.onos_dhcp_table_load(config)
diff --git a/src/test/dhcp/dhcp_config_load.sh b/src/test/dhcp/dhcp_config_load.sh
deleted file mode 100755
index cbed6d8..0000000
--- a/src/test/dhcp/dhcp_config_load.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-json="$1"
-controller="$2"
-if [ x"$json" = "x" ]; then
-  echo "No json file specified. Exiting"
-  exit 127
-fi
-if [ x"$controller" = "x" ]; then
-    controller=`ovs-vsctl show | egrep "Controller|tcp" | grep -v ptcp | sed 's,Controller,,g' | sed 's,\",,g' | tr -s ' '|awk -F":" '{print $2}'`
-    echo "Controller at $controller"
-fi
-echo "Loading dhcp config json file $json to controller at $controller"
-curl --fail -sSL --user karaf:karaf \
-    -X POST -H 'Content-Type:application/json' \
-    http://$controller:8181/onos/v1/network/configuration/ -d@$json
-
-