revision "2013-09-18" {
description "Initial revision of meter service";
- }
-
+ }
+
grouping node-meter {
description "Basic openflow meter structure suitable for rpc input (contains node-context-ref)";
-
+
uses "inv:node-context-ref";
uses meter-type:meter;
}
- /** Base configuration structure **/
+ // Base configuration structure
grouping meter-update {
description "DataStore aware update openflow meter structure suitable for rpc input (contains node-context-ref)";
uses "inv:node-context-ref";
rpc add-meter {
description "Adding meter to openflow device.";
input {
- uses tr:transaction-metadata;
+ uses tr:transaction-metadata;
leaf meter-ref {
type meter-type:meter-ref;
}
- uses node-meter;
+ uses node-meter;
}
output {
uses tr:transaction-aware;
rpc remove-meter {
description "Removing metere from openflow device.";
input {
- uses tr:transaction-metadata;
+ uses tr:transaction-metadata;
leaf meter-ref {
type meter-type:meter-ref;
}
-
- uses node-meter;
+
+ uses node-meter;
}
output {
uses tr:transaction-aware;
rpc update-meter {
description "Updating meter on openflow device.";
input {
- uses tr:transaction-metadata;
+ uses tr:transaction-metadata;
leaf meter-ref {
type meter-type:meter-ref;
}
-
- uses meter-update;
+
+ uses meter-update;
}
output {
uses tr:transaction-aware;
}
}
-
- notification meter-added {
- status deprecated;
-
- uses tr:transaction-metadata;
- leaf meter-ref {
- type meter-type:meter-ref;
- }
- uses node-meter;
- uses tr:transaction-aware;
- }
-
- notification meter-updated {
- status deprecated;
-
- uses tr:transaction-metadata;
- leaf meter-ref {
- type meter-type:meter-ref;
- }
- uses node-meter;
- uses tr:transaction-aware;
- }
-
- notification meter-removed {
- status deprecated;
-
- uses tr:transaction-metadata;
- leaf meter-ref {
- type meter-type:meter-ref;
- }
- uses node-meter;
- uses tr:transaction-aware;
- }
}
import org.eclipse.osgi.framework.console.CommandInterpreter;
import org.eclipse.osgi.framework.console.CommandProvider;
import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.NotificationService;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterAdded;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterRemoved;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterUpdated;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.BandId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.MeterBandHeadersBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeaderBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.meter.band.header.MeterBandTypesBuilder;
-import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.util.BindingMap;
import org.opendaylight.yangtools.yang.common.Uint32;
private Node testNode;
private final String originalMeterName = "Foo";
private final String updatedMeterName = "Bar";
- private final MeterEventListener meterEventListener = new MeterEventListener();
- private final NotificationService notificationService;
- private Registration listener1Reg;
- public OpenflowpluginMeterTestCommandProvider(final DataBroker dataBroker,
- final NotificationService notificationService, final BundleContext ctx) {
+ public OpenflowpluginMeterTestCommandProvider(final DataBroker dataBroker, final BundleContext ctx) {
this.dataBroker = dataBroker;
- this.notificationService = notificationService;
this.ctx = ctx;
}
public void init() {
ctx.registerService(CommandProvider.class.getName(), this, null);
- // For switch events
- listener1Reg = notificationService.registerNotificationListener(meterEventListener);
-
createTestNode();
createTestMeter();
}
return InstanceIdentifier.create(Nodes.class).child(Node.class, node.key());
}
- private static final class MeterEventListener implements SalMeterListener {
- @Override
- @Deprecated
- public void onMeterAdded(final MeterAdded notification) {
- LOG.info("Meter to be added {}", notification.toString());
- LOG.info("Meter Xid {}", notification.getTransactionId().getValue());
- }
-
- @Override
- @Deprecated
- public void onMeterRemoved(final MeterRemoved notification) {
- LOG.info("Meter to be removed {}", notification.toString());
- LOG.info("Meter Xid {}", notification.getTransactionId().getValue());
- }
-
- @Override
- @Deprecated
- public void onMeterUpdated(final MeterUpdated notification) {
- LOG.info("Meter to be updated {}", notification.toString());
- LOG.info("Meter Xid {}", notification.getTransactionId().getValue());
- }
- }
-
private MeterBuilder createTestMeter() {
// Sample data , committing to DataStore
final MeterBuilder meter = new MeterBuilder()