public void run() 
	{
		try
		{
			ControllerEngine.TopologyActive = true;
			while (ControllerEngine.TopologyActive) 
			{
				try
				{
					//getIsAssignedEdgeId(String resource_id, String inode_id)
					//List<String> getIsAssignedEdgeIds(String resource_id, String inode_id)
					//public String getIsAssignedParam(String edge_id,String param_name)
					List<String> edge_list = ControllerEngine.gdb.getIsAssignedEdgeIds(resource_id, inode_id);
					for(String edge_id : edge_list)
					{
						System.out.println(edge_id);
						String discoveredagents = ControllerEngine.gdb.getIsAssignedParam(edge_id,"discoveredagents");
						if(discoveredagents != null)
						{
							//System.out.println(discoveredagents);
							String[] agentList = discoveredagents.split(",");
							for(String regionAgent : agentList)
							{
								String ipPath = ControllerEngine.gdb.getIsAssignedParam(edge_id,regionAgent);
								if(ipPath != null)
								{
									String[] splitRegionAgent = regionAgent.split("_");
									String dst_region = splitRegionAgent[0];
									String dst_agent = splitRegionAgent[1];
									String src_region = ControllerEngine.gdb.getIsAssignedParam(edge_id,"region");
									String src_agent = ControllerEngine.gdb.getIsAssignedParam(edge_id,"agent");
									String isReachable_edge_id = ControllerEngine.gdb.addEdge(src_region, src_agent, null, dst_region, dst_agent, null, "isReachable");
									String[] ipsrcdst = ipPath.split("_");
									Map<String,String> params = new HashMap<String,String>();
									params.put("src_ip", ipsrcdst[0]);
									params.put("dst_ip", ipsrcdst[1]);
									
									ControllerEngine.gdb.updateEdge(isReachable_edge_id, params);
								
								}
							}
						}
					}
					Thread.sleep(10000);
				}
				catch(Exception ex)
				{
					System.out.println("FuturaEngine Error: " + ex.toString());
				}
			}
		}
		catch(Exception ex)
		{
			System.out.println("FuturaEngine Error: " + ex.toString());
		}
	}