Use new graph interfaces in CHOTestMonkey

Change-Id: If81ef8102665af2a2c96ae3820b107bc8c771ab4
diff --git a/TestON/tests/CHOTestMonkey/dependencies/events/NetworkEvent.py b/TestON/tests/CHOTestMonkey/dependencies/events/NetworkEvent.py
index 7247ecf..8ec62a1 100644
--- a/TestON/tests/CHOTestMonkey/dependencies/events/NetworkEvent.py
+++ b/TestON/tests/CHOTestMonkey/dependencies/events/NetworkEvent.py
@@ -4,7 +4,6 @@
 """
 from tests.CHOTestMonkey.dependencies.events.Event import EventType, EventStates, Event
 from tests.CHOTestMonkey.dependencies.elements.NetworkElement import NetworkElement, Device, Host, Link
-from tests.CHOTestMonkey.dependencies.GraphHelper import GraphHelper
 
 class LinkEvent( Event ):
     def __init__( self ):
@@ -28,18 +27,16 @@
                 main.log.warn( "%s - Too many arguments: %s" % ( self.typeString, args ) )
                 return EventStates().ABORT
             if args[ 0 ] == 'random' or args[ 1 ] == 'random':
-                import random
                 if self.typeIndex == EventType().NETWORK_LINK_DOWN:
-                    with main.variableLock:
-                        graphHelper = GraphHelper()
-                        availableLinks = graphHelper.getNonCutEdges()
-                        if len( availableLinks ) == 0:
-                            main.log.warn( "All links are cut edges, aborting event" )
-                            return EventStates().ABORT
-                        linkList = random.sample( availableLinks, 1 )
-                        self.linkA = linkList[ 0 ]
-                        self.linkB = linkList[ 0 ].backwardLink
+                    with main.mininetLock:
+                        linkRandom = main.Mininet1.getLinkRandom()
+                    if linkRandom == None:
+                        main.log.warn( "No link available, aborting event" )
+                        return EventStates().ABORT
+                    args[ 0 ] = linkRandom[ 0 ]
+                    args[ 1 ] = linkRandom[ 1 ]
                 elif self.typeIndex == EventType().NETWORK_LINK_UP:
+                    import random
                     with main.variableLock:
                         downLinks = []
                         for link in main.links:
@@ -54,7 +51,7 @@
             elif args[ 0 ] == args[ 1 ]:
                 main.log.warn( "%s - invalid arguments: %s" % ( self.typeString, args ) )
                 return EventStates().ABORT
-            else:
+            if self.linkA == None or self.linkB == None:
                 for link in main.links:
                     if link.deviceA.name == args[ 0 ] and link.deviceB.name == args[ 1 ]:
                         self.linkA = link
@@ -88,9 +85,13 @@
                 main.log.warn( "Link Down - link has been removed" )
                 return EventStates().ABORT
         with main.mininetLock:
+            '''
             result = main.Mininet1.link( END1=self.linkA.deviceA.name,
                                          END2=self.linkA.deviceB.name,
                                          OPTION="down")
+            '''
+            result = main.Mininet1.delLink( self.linkA.deviceA.name,
+                                            self.linkA.deviceB.name )
         if not result:
             main.log.warn( "%s - failed to bring down link" % ( self.typeString ) )
             return EventStates().FAIL
@@ -118,9 +119,13 @@
                 main.log.warn( "Link Up - link has been removed" )
                 return EventStates().ABORT
         with main.mininetLock:
+            '''
             result = main.Mininet1.link( END1=self.linkA.deviceA.name,
                                          END2=self.linkA.deviceB.name,
                                          OPTION="up")
+            '''
+            result = main.Mininet1.addLink( self.linkA.deviceA.name,
+                                            self.linkA.deviceB.name )
         if not result:
             main.log.warn( "%s - failed to bring up link" % ( self.typeString ) )
             return EventStates().FAIL
@@ -152,14 +157,12 @@
             if args[ 0 ] == 'random':
                 import random
                 if self.typeIndex == EventType().NETWORK_DEVICE_DOWN:
-                    with main.variableLock:
-                        graphHelper = GraphHelper()
-                        availableDevices = graphHelper.getNonCutVertices()
-                        if len( availableDevices ) == 0:
-                            main.log.warn( "All devices are cut vertices, aborting event" )
-                            return EventStates().ABORT
-                        deviceList = random.sample( availableDevices, 1 )
-                        self.device = deviceList[ 0 ]
+                    with main.mininetLock:
+                        switchRandom = main.Mininet1.getSwitchRandom()
+                    if switchRandom == None:
+                        main.log.warn( "No switch available, aborting event" )
+                        return EventStates().ABORT
+                    args[ 0 ] = switchRandom
                 elif self.typeIndex == EventType().NETWORK_DEVICE_UP:
                     with main.variableLock:
                         removedDevices = []
@@ -171,7 +174,7 @@
                             return EventStates().ABORT
                         deviceList = random.sample( removedDevices, 1 )
                         self.device = deviceList[ 0 ]
-            else:
+            if self.device == None:
                 for device in main.devices:
                     if device.name == args[ 0 ]:
                         self.device = device