From af33bac69d74463fa622424b3763db0e96cb9045 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Mon, 7 Oct 2013 13:12:02 +0200 Subject: [PATCH] Update to the SAL Data APIs. Added Flow Configuration model Change-Id: I17a10b5651f63ab9bc1d2a2ed64bf6ca8493b418 Signed-off-by: Tony Tkacik --- .../src/main/yang/flow-config.yang | 26 +++++++++++++++++++ .../src/main/yang/inventory.yang | 14 +++++----- .../binding/api/data/DataBrokerService.java | 9 ++++++- .../sal/binding/api/data/DataChangeEvent.java | 16 ++++++++++++ .../binding/api/data/DataChangeListener.java | 8 ++++++ .../binding/api/data/DataCommitHandler.java | 6 +++++ .../binding/api/data/DataProviderService.java | 10 +++++++ .../sal/binding/impl/_DataBrokerImpl.xtend | 17 ++++++++++++ 8 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-config.yang create mode 100644 opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeEvent.java create mode 100644 opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeListener.java diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-config.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-config.yang new file mode 100644 index 0000000000..f13e5d36c9 --- /dev/null +++ b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-config.yang @@ -0,0 +1,26 @@ +module sal-flow-config { + namespace "urn:opendaylight:flow:config"; + prefix flow-cfg; + + import sal-flow {prefix flow;} + + revision "2013-08-19" { + description "Initial revision of flow service"; + } + + + container flows { + list flow { + key "id"; + + leaf id { + type string; + } + uses flow:node-flow; + /** + container match; + + **/ + } + } +} \ No newline at end of file diff --git a/opendaylight/md-sal/model/model-inventory/src/main/yang/inventory.yang b/opendaylight/md-sal/model/model-inventory/src/main/yang/inventory.yang index d7310fa606..0bf1463653 100644 --- a/opendaylight/md-sal/model/model-inventory/src/main/yang/inventory.yang +++ b/opendaylight/md-sal/model/model-inventory/src/main/yang/inventory.yang @@ -44,17 +44,17 @@ module opendaylight-inventory { } - grouping node { - leaf id { + grouping node { + leaf id { type node-id; } - } + } - grouping node-connector { - leaf id { + grouping node-connector { + leaf id { type node-connector-id; - } - } + } + } diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataBrokerService.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataBrokerService.java index cd04d356a2..7ee6c65a90 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataBrokerService.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataBrokerService.java @@ -138,10 +138,12 @@ public interface DataBrokerService extends BindingAwareService { */ @Deprecated Future> commit(DataStoreIdentifier store); - + DataObject getData(InstanceIdentifier data); + DataObject getConfigurationData(InstanceIdentifier data); + /** * Creates a data modification transaction. @@ -149,4 +151,9 @@ public interface DataBrokerService extends BindingAwareService { * @return new blank data modification transaction. */ DataModification beginTransaction(); + + public void registerChangeListener(InstanceIdentifier path, DataChangeListener changeListener); + + public void unregisterChangeListener(InstanceIdentifier path, DataChangeListener changeListener); + } diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeEvent.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeEvent.java new file mode 100644 index 0000000000..bbe328e199 --- /dev/null +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeEvent.java @@ -0,0 +1,16 @@ +package org.opendaylight.controller.sal.binding.api.data; + +import java.util.Map; +import java.util.Set; + +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +public interface DataChangeEvent { + + Map getCreated(); + + Map getUpdated(); + + Set getRemoved(); +} diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeListener.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeListener.java new file mode 100644 index 0000000000..63f9a9c7cc --- /dev/null +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataChangeListener.java @@ -0,0 +1,8 @@ +package org.opendaylight.controller.sal.binding.api.data; + +public interface DataChangeListener { + + + void onDataChange(DataChangeEvent event); + +} diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataCommitHandler.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataCommitHandler.java index b12dce6ea2..5f550c222b 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataCommitHandler.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataCommitHandler.java @@ -107,6 +107,7 @@ public interface DataCommitHandler extends ProviderFunctionality { * * @return Set of Data Store identifiers */ + @Deprecated Set getSupportedDataStores(); /** @@ -124,13 +125,18 @@ public interface DataCommitHandler extends ProviderFunctionality { * @param store * @return Transaction object representing this commit, errors otherwise. */ + @Deprecated RpcResult requestCommit(DataStoreIdentifier store); + + RpcResult requestCommit(DataModification modification); + public interface CommitTransaction { /** * * @return Data store affected by the transaction */ + @Deprecated DataStoreIdentifier getDataStore(); /** diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataProviderService.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataProviderService.java index 801a1c0d61..1057c3039e 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataProviderService.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataProviderService.java @@ -24,6 +24,7 @@ public interface DataProviderService extends DataBrokerService { * @param validator * Validator */ + @Deprecated public void addValidator(DataStoreIdentifier store, DataValidator validator); /** @@ -33,6 +34,8 @@ public interface DataProviderService extends DataBrokerService { * @param validator * Validator */ + + @Deprecated public void removeValidator(DataStoreIdentifier store, DataValidator validator); /** @@ -41,6 +44,7 @@ public interface DataProviderService extends DataBrokerService { * @param store * @param provider */ + @Deprecated void addCommitHandler(DataStoreIdentifier store, DataCommitHandler provider); /** @@ -49,6 +53,7 @@ public interface DataProviderService extends DataBrokerService { * @param store * @param provider */ + @Deprecated void removeCommitHandler(DataStoreIdentifier store, DataCommitHandler provider); /** @@ -66,4 +71,9 @@ public interface DataProviderService extends DataBrokerService { * @param refresher */ void removeRefresher(DataStoreIdentifier store, DataRefresher refresher); + + public void registerCommitHandler(InstanceIdentifier path, DataCommitHandler commitHandler); + + public void registerValidator(InstanceIdentifier path, DataValidator validator); + } diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/_DataBrokerImpl.xtend b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/_DataBrokerImpl.xtend index 794e028ab2..59751443f2 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/_DataBrokerImpl.xtend +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/_DataBrokerImpl.xtend @@ -18,6 +18,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider import java.util.Map import org.opendaylight.yangtools.yang.binding.InstanceIdentifier +import org.opendaylight.controller.sal.binding.api.data.DataChangeListener class _DataBrokerImpl implements DataProviderService { @@ -87,5 +88,21 @@ class _DataBrokerImpl implements DataProviderService { override getData(InstanceIdentifier data) { throw new UnsupportedOperationException("TODO: auto-generated method stub") } + + override registerCommitHandler(InstanceIdentifier path, DataCommitHandler commitHandler) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override registerValidator(InstanceIdentifier path, DataValidator validator) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override registerChangeListener(InstanceIdentifier path, DataChangeListener changeListener) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override unregisterChangeListener(InstanceIdentifier path, DataChangeListener changeListener) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } } -- 2.36.6