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