Environment: <%=D1Client.getCN().getNodeBaseServiceUrl() %>
		
		
			
				| Type | 
				Identifier | 
				Name | 
				Description | 
				Objects | 
				State | 
				Ping | 
				Last synchronized | 
			
			<%
			NodeList nodeList = D1Client.getCN().listNodes();
			if (nodeList!= null) {
				List nodes = nodeList.getNodeList();
				for (Node node: nodes) {
					String objectCountString = "-";
					try {
						ObjectList objectList = D1Client.getMN(node.getIdentifier()).listObjects(null, null, null, null, null, null, 10);
						int objectCount = objectList.getTotal();
						objectCountString = Integer.toString(objectCount);
					} catch (Exception e) {
						// what can we really do?
						objectCountString = "Error: " + "" + e.getMessage() + "
";		
						e.printStackTrace();
					}
					String lastSynch = "N/A";
					try {
						lastSynch = node.getSynchronization().getLastHarvested().toString();
					} catch (Exception e) {
						// CNs don't have that
					}
					String pingString = "unknown";
					try {
						pingString = D1Client.getMN(node.getIdentifier()).ping().toString();
						//pingString = node.getPing().getSuccess() + " at " + node.getPing().getLastSuccess().toString();
					} catch (Exception e) {
						
					}
			%>	
					
						| <%=node.getType().xmlValue() %> | 
						<%=node.getIdentifier().getValue() %> | 
						<%=node.getName() %> | 
						<%=node.getDescription() %> | 
						<%=objectCountString %> | 
						<%=node.getState().xmlValue() %> | 
						<%=pingString %> | 
						<%=lastSynch %> | 
					
			<%	
				}
			}
			%>
			
		
		
		
		DataONE network overview includes:
		
			- Name of the environment
 
			- Coordinating and Member nodes participating in the environment
 
			- Number of objects per node
 
			- Ping status and time of last check for each node
 
			- Last synchronization check for member nodes
 
		
		
		
		
		NOTE: This is a prototype and may be relocated