/* * Copyright (C) 2008 Universidade Federal de Campina Grande * * This file is part of OurGrid. * * OurGrid is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package org.ourgrid.discoveryservice.ui.sync.command; import java.util.Map; import java.util.Set; import org.ourgrid.common.command.UIMessages; import org.ourgrid.common.interfaces.Constants; import org.ourgrid.common.util.StringUtil; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo; import org.ourgrid.discoveryservice.status.DiscoveryServiceCompleteStatus; import org.ourgrid.discoveryservice.ui.sync.DiscoveryServiceSyncComponentClient; import br.edu.ufcg.lsd.commune.container.servicemanager.client.sync.command.AbstractCommand; /** * */ public class GetDiscoveryServiceStatusCommand extends AbstractCommand<DiscoveryServiceSyncComponentClient> { public GetDiscoveryServiceStatusCommand(DiscoveryServiceSyncComponentClient componentClient) { super(componentClient); } private void printStatus(DiscoveryServiceCompleteStatus dsCompleteStatus) { System.out.println( "Discovery Service Status" + Constants.LINE_SEPARATOR ); System.out.println( "Uptime: " + StringUtil.getTimeAsText( dsCompleteStatus.getUpTime() ) + Constants.LINE_SEPARATOR ); System.out.println( "Configuration: " + Constants.LINE_SEPARATOR + dsCompleteStatus.getConfiguration() ); Map<DiscoveryServiceInfo, Set<String>> networkStatus = dsCompleteStatus.getNetwork(); for (DiscoveryServiceInfo dsInfo : networkStatus.keySet()) { System.out.println(dsInfo.getDsAddress().equals(dsCompleteStatus.getMyAddress())? "Local DS":"Remote DS"); System.out.println("\t"+dsInfo); System.out.println( "\tConnected peers: "); Set<String> peers = networkStatus.get(dsInfo); if ( peers.isEmpty() ) { System.out.println("\t\tEmpty!"); } else { for (String peerID : peers) { System.out.println( "\t\t" + peerID); } } System.out.println( Constants.LINE_SEPARATOR ); } } protected void execute(String[] params) throws Exception { if (isComponentStarted()) { printStatus(getComponentClient().getDiscoveryServiceCompleteStatus()); } else { printNotStartedMessage(); } } protected void validateParams(String[] params) throws Exception { if ( params.length != 0 ) { throw new IllegalArgumentException( UIMessages.INVALID_PARAMETERS_MSG ); } } private void printNotStartedMessage() { System.out.println("Ourgrid Discovery Service is not started."); } }