Changed FuncIntent function structure
diff --git a/TestON/tests/FuncIntent/FuncIntent.py b/TestON/tests/FuncIntent/FuncIntent.py
index 2ffb25f..19a3c4a 100644
--- a/TestON/tests/FuncIntent/FuncIntent.py
+++ b/TestON/tests/FuncIntent/FuncIntent.py
@@ -52,6 +52,7 @@
         if main.params[ 'GIT' ][ 'pull' ] == 'True':
             PULLCODE = True
         main.case( "Setting up test environment" )
+        main.hostsData = {}
         main.CLIs = []
         for i in range( 1, int( main.numCtrls ) + 1 ):
             main.CLIs.append( getattr( main, 'ONOScli' + str( i ) ) )
@@ -241,6 +242,19 @@
                                         "to controller",
                                  onfail="Failed to assign switches to " +
                                         "controller" )
+    def CASE13( self, main ):
+        """
+            Discover all hosts and store its data to a dictionary
+        """
+        main.case( "Discover all hosts" )
+
+        stepResult = main.TRUE
+        main.step( "IPV4: Add host intents between h1 and h9" )
+        stepResult = main.wrapper.getHostsData( main )
+        utilities.assert_equals( expect=main.FALSE,
+                                 actual=stepResult,
+                                 onpass="Successfully discovered hosts",
+                                 onfail="Failed to discover hosts" )
 
     def CASE1001( self, main ):
         """
@@ -282,45 +296,41 @@
         assert main.numSwitch, "Placed the total number of switch topology in \
                                 main.numSwitch"
 
-        # Local variables
-        ipv4 = { 'name':'IPV4', 'host1':
-                 { 'name': 'h1', 'MAC':'00:00:00:00:00:01',
-                   'id':'00:00:00:00:00:01/-1' } , 'host2':
-                 { 'name':'h9', 'MAC':'00:00:00:00:00:09',
-                   'id':'00:00:00:00:00:09/-1'}, 'link': { 'switch1':'s5',
-                   'switch2':'s2', 'expect':'18' } }
-        dualStack1 = { 'name':'DUALSTACK1', 'host1':
-                 { 'name':'h3', 'MAC':'00:00:00:00:00:03',
-                   'id':'00:00:00:00:00:03/-1' } , 'host2':
-                 { 'name':'h11', 'MAC':'00:00:00:00:00:0B',
-                   'id':'00:00:00:00:00:0B/-1'}, 'link': { 'switch1':'s5',
-                   'switch2':'s2', 'expect':'18' } }
-
         main.case( "Add host intents between 2 host" )
 
         stepResult = main.TRUE
-        main.step( ipv4[ 'name' ] + ": Add host intents between " +
-                   ipv4[ 'host1' ][ 'name' ] + " and " +
-                   ipv4[ 'host2' ][ 'name' ]  )
-        stepResult = main.wrapper.addHostIntent( main, ipv4 )
-        utilities.assert_equals( expect=main.TRUE,
-                                 actual=stepResult,
-                                 onpass=ipv4[ 'name' ] +
-                                        ": Add host intent successful",
-                                 onfail=ipv4[ 'name' ] +
-                                        ": Add host intent failed" )
+        main.step( "IPV4: Add host intents between h1 and h9" )
+        stepResult = main.wrapper.hostIntent( main,
+                                              name='IPV4',
+                                              host1='h1',
+                                              host2='h9',
+                                              host1Id='00:00:00:00:00:01/-1',
+                                              host2Id='00:00:00:00:00:09/-1',
+                                              sw1='s5',
+                                              sw2='s2',
+                                              expectedLink=18 )
 
-        stepResult = main.TRUE
-        main.step( dualStack1[ 'name' ] + ": Add host intents between " +
-                   dualStack1[ 'host1' ][ 'name' ] + " and " +
-                   dualStack1[ 'host2' ][ 'name' ]  )
-        stepResult = main.wrapper.addHostIntent( main, dualStack1 )
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
-                                 onpass=dualStack1[ 'name' ] +
-                                        ": Add host intent successful",
-                                 onfail=dualStack1[ 'name' ] +
-                                        ": Add host intent failed" )
+                                 onpass="IPV4: Add host intent successful",
+                                 onfail="IPV4: Add host intent failed" )
+        stepResult = main.TRUE
+
+        main.step( "DUALSTACK: Add host intents between h3 and h11" )
+        stepResult = main.wrapper.hostIntent( main,
+                                              name='DUALSTACK',
+                                              host1='h3',
+                                              host2='h11',
+                                              host1Id='00:00:00:00:00:03/-1',
+                                              host2Id='00:00:00:00:00:011/-1',
+                                              sw1='s5',
+                                              sw2='s2',
+                                              expectedLink=18 )
+
+        utilities.assert_equals( expect=main.TRUE,
+                                 actual=stepResult,
+                                 onpass="DUALSTACK: Add host intent successful",
+                                 onfail="DUALSTACK: Add host intent failed" )
 
     def CASE1002( self, main ):
         """
@@ -368,7 +378,7 @@
                  'egressDevice':'of:0000000000000006/1', 'option':
                  { 'ethType':'IPV4', 'ethSrc':'00:00:00:00:00:01',
                    'ethDst':'00:00:00:00:00:09' }, 'link': { 'switch1':'s5',
-                   'switch2':'s2', 'expect':'18' } }
+                 'switch2':'s2', 'expect':'18' } }
 
         """
         ipv4 = { 'name':'IPV4', 'ingressDevice':'of:0000000000000005/1' ,
@@ -376,7 +386,7 @@
                  'egressDevice':'of:0000000000000006/1', 'option':
                  { 'ethType':'IPV4', 'ethSrc':'00:00:00:00:00:01' },
                  'link': { 'switch1':'s5', 'switch2':'s2', 'expect':'18' } }
-        """ 
+        """
         dualStack1 = { 'name':'IPV4', 'ingressDevice':'0000000000000005/3' ,
                        'host1': { 'name': 'h3' }, 'host2': { 'name': 'h11' },
                        'egressDevice':'0000000000000006/3', 'option':
@@ -384,20 +394,37 @@
                        'ethDst':'00:00:00:00:00:0B' }, 'link': { 'switch1':'s5',
                        'switch2':'s2', 'expect':'18' } }
 
-
         main.case( "Add point intents between 2 devices" )
 
         stepResult = main.TRUE
-        main.step( ipv4[ 'name' ] + ": Add point intents between " +
-                   ipv4[ 'host1' ][ 'name' ] + " and " +
-                   ipv4[ 'host2' ][ 'name' ]  )
-        stepResult = main.wrapper.addPointIntent( main, ipv4 )
+        main.step( "IPV4: Add point intents between h1 and h9" )
+        stepResult = main.wrapper.pointIntent(
+                                       main,
+                                       name="IPV4",
+                                       host1="h1",
+                                       host2="h9",
+                                       deviceId1="of:0000000000000005/1",
+                                       deviceId2="of:0000000000000006/1",
+                                       port1="",
+                                       port2="",
+                                       ethType="IPV4",
+                                       mac1="00:00:00:00:00:01",
+                                       mac2="00:00:00:00:00:09",
+                                       bandwidth="",
+                                       lambdaAlloc=False,
+                                       ipProto="",
+                                       ip1="",
+                                       ip2="",
+                                       tcp1="",
+                                       tcp2="",
+                                       sw1="s5",
+                                       sw2="s2",
+                                       expectedLink=18 )
+
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
-                                 onpass=ipv4[ 'name' ] +
-                                        ": Point intent successful",
-                                 onfail=ipv4[ 'name' ] +
-                                        ": Point intent failed" )
+                                 onpass="IPV4: Add point intent successful",
+                                 onfail="IPV4: Add point intent failed" )
 
     def CASE1003( self, main ):
         """