package org.opennaas.extensions.pdu.capability.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.shell.GenericKarafCommand; import org.opennaas.extensions.gim.model.energy.Energy; import org.opennaas.extensions.pdu.capability.IPDUPowerSupplyCapability; @Command(scope = "pdu", name = "getEnergy", description = "Reads energy source of specified resource") public class GetEnergyCommand extends GenericKarafCommand { @Argument(index = 0, name = "resourceType:resourceName", description = "The resource id.", required = true, multiValued = false) private String resourceId; @Override protected Object doExecute() throws Exception { printInitCommand("getEnergy of resource: " + resourceId); IResource resource = getResourceFromFriendlyName(resourceId); IPDUPowerSupplyCapability capability = (IPDUPowerSupplyCapability) resource.getCapabilityByInterface(IPDUPowerSupplyCapability.class); Energy energy = capability.getAggregatedEnergy(); double pricePerUnit = capability.getAggregatedPricePerEnergyUnit(); printEnergy(energy, pricePerUnit); printEndCommand(); return null; } private void printEnergy(Energy energy, double pricePerUnit) { printSymbol("Energy Class: " + energy.getEnergyClass()); printSymbol("Energy Type: " + energy.getEnergyType()); printSymbol("CO2perKW: " + energy.getCO2perKw()); printSymbol("Price per unit: " + pricePerUnit); } }