Added new module in Dependency folder that contains wrapper functions
diff --git a/TestON/tests/FuncIntent/Dependency/FuncIntentFunction.py b/TestON/tests/FuncIntent/Dependency/FuncIntentFunction.py
new file mode 100644
index 0000000..3c6f559
--- /dev/null
+++ b/TestON/tests/FuncIntent/Dependency/FuncIntentFunction.py
@@ -0,0 +1,267 @@
+"""
+    Wrapper functions for FuncIntent
+    This functions include Onosclidriver and Mininetclidriver driver functions
+"""
+def __init__( self ):
+    self.default = ''
+
+def addHostIntent( main, item ):
+    """
+        Add host intents
+    """
+    import time
+    stepResult = main.TRUE
+    global itemName
+    itemName = item[ 'name' ]
+    h1Name = item[ 'host1' ][ 'name' ]
+    h2Name = item[ 'host2' ][ 'name' ]
+    h1Mac = item[ 'host1' ][ 'MAC' ]
+    h2Mac = item[ 'host2' ][ 'MAC' ]
+    h1Id = item[ 'host1' ][ 'id']
+    h2Id = item[ 'host2' ][ 'id']
+    sw1 = item[ 'link' ][ 'switch1' ]
+    sw2 = item[ 'link' ][ 'switch2' ]
+    expectLink = item[ 'link' ][ 'expect' ]
+    intentsId = []
+    pingResult = main.TRUE
+    intentResult = main.TRUE
+    flowResult = main.TRUE
+    topoResult = main.TRUE
+    linkDownResult = main.TRUE
+    linkUpResult = main.TRUE
+
+    # Discover hosts using arping
+    main.log.info( itemName + ": Discover host using arping" )
+    main.Mininet1.arping( host=h1Name )
+    main.Mininet1.arping( host=h2Name )
+    host1 = main.CLIs[ 0 ].getHost( mac=h1Mac )
+    host2 = main.CLIs[ 0 ].getHost( mac=h2Mac )
+
+    # Adding host intents
+    main.log.info( itemName + ": Adding host intents" )
+    intent1 = main.CLIs[ 0 ].addHostIntent( hostIdOne=h1Id,
+                                           hostIdTwo=h2Id )
+    intentsId.append( intent1 )
+    time.sleep( 5 )
+    intent2 = main.CLIs[ 0 ].addHostIntent( hostIdOne=h2Id,
+                                           hostIdTwo=h1Id )
+    intentsId.append( intent2 )
+
+    # Check intents state
+    time.sleep( 50 )
+    intentResult = checkIntentState( main, intentsId )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Ping hosts
+    pingHost( main, h1Name, h2Name )
+    # Ping hosts again...
+    pingResult = pingHost( main, h1Name, h2Name )
+    time.sleep( 5 )
+
+    # link down
+    link( main, sw1, sw2, "down" )
+    intentResult = intentResult and checkIntentState( main, intentsId )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Check OnosTopology
+    topoResult = checkTopology( main, expectLink )
+
+    # Ping hosts
+    pingResult = pingResult and pingHost( main, h1Name, h2Name )
+
+    intentResult = checkIntentState( main, intentsId )
+
+    # link up
+    link( main, sw1, sw2, "up" )
+    time.sleep( 5 )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Check OnosTopology
+    topoResult = checkTopology( main, expectLink )
+
+    # Ping hosts
+    pingResult = pingResult and pingHost( main, h1Name, h2Name )
+
+    # Remove intents
+    for intent in intentsId:
+        main.CLIs[ 0 ].removeIntent( intentId=intent, purge=True )
+
+    print main.CLIs[ 0 ].intents()
+    stepResult = pingResult and linkDownResult and linkUpResult \
+                 and intentResult
+
+    return stepResult
+
+def addPointIntent( main, item ):
+    """
+        Add Point intents
+    """
+    import time
+    stepResult = main.TRUE
+    global itemName
+    itemName = item[ 'name' ]
+    ingress = item[ 'ingress' ]
+    egress = item[ 'egress' ]
+    option = item[ 'option' ]
+    sw1 = item[ 'link' ][ 'switch1' ]
+    sw2 = item[ 'link' ][ 'switch2' ]
+    expectLink = item[ 'link' ][ 'expect' ]
+    intentsId = []
+
+    print 'OPTIONS ', option
+    return main.TRUE
+    pingResult = main.TRUE
+    intentResult = main.TRUE
+    flowResult = main.TRUE
+    topoResult = main.TRUE
+    linkDownResult = main.TRUE
+    linkUpResult = main.TRUE
+
+    # Discover hosts using arping
+    main.log.info( itemName + ": Discover host using arping" )
+    main.Mininet1.arping( host=h1Name )
+    main.Mininet1.arping( host=h2Name )
+    host1 = main.CLIs[ 0 ].getHost( mac=h1Mac )
+    host2 = main.CLIs[ 0 ].getHost( mac=h2Mac )
+
+    # Adding host intents
+    main.log.info( itemName + ": Adding host intents" )
+    intent1 = main.CLIs[ 0 ].addHostIntent( hostIdOne=h1Id,
+                                           hostIdTwo=h2Id )
+    intentsId.append( intent1 )
+    time.sleep( 5 )
+    intent2 = main.CLIs[ 0 ].addHostIntent( hostIdOne=h2Id,
+                                           hostIdTwo=h1Id )
+    intentsId.append( intent2 )
+
+    # Check intents state
+    time.sleep( 50 )
+    intentResult = checkIntentState( main, intentsId )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Ping hosts
+    pingHost( main, h1Name, h2Name )
+    # Ping hosts again...
+    pingResult = pingHost( main, h1Name, h2Name )
+    time.sleep( 5 )
+
+    # link down
+    link( main, sw1, sw2, "down" )
+    intentResult = intentResult and checkIntentState( main, intentsId )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Check OnosTopology
+    topoResult = checkTopology( main, expectLink )
+
+    # Ping hosts
+    pingResult = pingResult and pingHost( main, h1Name, h2Name )
+
+    intentResult = checkIntentState( main, intentsId )
+
+    # link up
+    link( main, sw1, sw2, "up" )
+    time.sleep( 5 )
+
+    # Verify flows
+    checkFlowsState( main )
+
+    # Check OnosTopology
+    topoResult = checkTopology( main, expectLink )
+
+    # Ping hosts
+    pingResult = pingResult and pingHost( main, h1Name, h2Name )
+
+    # Remove intents
+    for intent in intentsId:
+        main.CLIs[ 0 ].removeIntent( intentId=intent, purge=True )
+
+    print main.CLIs[ 0 ].intents()
+    stepResult = pingResult and linkDownResult and linkUpResult \
+                 and intentResult
+
+    return stepResult
+
+def link( main, sw1, sw2, option):
+
+    # link down
+    main.log.info( itemName + ": Bring link " + option + "between " +
+                   sw1 + " and " + sw2 )
+    main.Mininet1.link( end1=sw1, end2=sw2, option=option )
+
+def pingHost( main, h1Name, h2Name ):
+
+    # Ping hosts
+    main.log.info( itemName + ": Ping " + h1Name + " and " +
+                   h2Name )
+    pingResult1 = main.Mininet1.pingHost( src=h1Name , target=h2Name )
+    if not pingResult1:
+        main.log.info( itemName + ": " + h1Name + " cannot ping "
+                       + h2Name )
+    pingResult2 = main.Mininet1.pingHost( src=h2Name , target=h1Name )
+    if not pingResult2:
+        main.log.info( itemName + ": " + h2Name + " cannot ping "
+                       + h1Name )
+    pingResult = pingResult1 and pingResult2
+    if pingResult:
+        main.log.info( itemName + ": Successfully pinged " +
+                       "both hosts" )
+    else:
+        main.log.info( itemName + ": Failed to ping " +
+                       "both hosts" )
+    return pingResult
+
+def checkItem( item ):
+    """
+        Checks the dictionary
+    """
+
+def checkTopology( main, expectedLink ):
+    statusResult = main.TRUE
+    # Check onos topology
+    main.log.info( itemName + ": Checking ONOS topology " )
+
+    for i in range( main.numCtrls ):
+        topologyResult = main.CLIs[ i ].topology()
+        statusResult = main.ONOSbench.checkStatus( topologyResult,
+                                                   main.numSwitch,
+                                                   expectedLink )\
+                       and statusResult
+    if not statusResult:
+        main.log.info( itemName + ": Topology mismatch" )
+    else:
+        main.log.info( itemName + ": Topology match" )
+    return statusResult
+
+def checkIntentState( main, intentsId ):
+
+    main.log.info( itemName + ": Check host intents state" )
+    for i in range( main.numCtrls ):
+        intentResult = main.CLIs[ i ].checkIntentState( intentsId=intentsId )
+    if not intentResult:
+        main.log.info( itemName +  ": Check host intents state again")
+        for i in range( main.numCtrls ):
+            intentResult = main.CLIs[ i ].checkIntentState(
+                                                          intentsId=intentsId )
+    return intentResult
+
+def checkFlowsState( main ):
+
+    main.log.info( itemName + ": Check flows state" )
+    checkFlowsResult = main.CLIs[ 0 ].checkFlowsState()
+    return checkFlowsResult
+
+def printMsg( main, h1Name, h2Name ):
+    main.log.info("PINGING HOST INSIDE printMSG")
+    pingHost( main, itemName, h1Name, h2Name )
+    print 'lala'
+