package org.opennaas.extensions.network.capability.ospf.shell;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
import org.opennaas.core.resources.IResource;
import org.opennaas.core.resources.ResourceException;
import org.opennaas.core.resources.shell.GenericKarafCommand;
import org.opennaas.extensions.network.capability.ospf.INetOSPFCapability;
@Command(scope = "netospf", name = "deactivate", description = "It will dactivate OSPF in all routers of the network resource.")
public class DeactivateCommand extends GenericKarafCommand {
@Argument(index = 0, name = "network:networkName", description = "The network where OSPF will be deactivated.", required = true, multiValued = false)
private String networkId;
@Override
protected Object doExecute() throws Exception {
printInitCommand("Deactivate OSPF ");
try {
IResource network = getResourceFromFriendlyName(networkId);
INetOSPFCapability netOSPFCapability = (INetOSPFCapability) network.getCapabilityByInterface(INetOSPFCapability.class);
netOSPFCapability.deactivateOSPF();
} catch (ResourceException e) {
printError(e);
printEndCommand();
return -1;
} catch (Exception e) {
printError("Error deactivating OSPF");
printError(e);
printEndCommand();
return -1;
}
printEndCommand();
return null;
}
}