ONOS-5503 Added CLIs for administering OFAgent
Change-Id: I58256316e2054952da9dce04bf927901761807e5
diff --git a/apps/ofagent/src/main/java/org/onosproject/ofagent/impl/DefaultOFAgent.java b/apps/ofagent/src/main/java/org/onosproject/ofagent/impl/DefaultOFAgent.java
index cac1e03..586ce3a 100644
--- a/apps/ofagent/src/main/java/org/onosproject/ofagent/impl/DefaultOFAgent.java
+++ b/apps/ofagent/src/main/java/org/onosproject/ofagent/impl/DefaultOFAgent.java
@@ -17,6 +17,7 @@
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
import org.onosproject.incubator.net.virtual.NetworkId;
import org.onosproject.ofagent.api.OFAgent;
import org.onosproject.ofagent.api.OFController;
@@ -96,23 +97,10 @@
return new Builder();
}
- /**
- * Returns new builder instance from the existing agent.
- *
- * @param ofAgent the existing agent
- * @return default ofagent builder
- */
- public static Builder builder(OFAgent ofAgent) {
- return new Builder()
- .networkId(ofAgent.networkId())
- .controllers(ofAgent.controllers())
- .state(ofAgent.state());
- }
-
public static final class Builder implements OFAgent.Builder {
private NetworkId networkId;
- private Set<OFController> controllers;
+ private Set<OFController> controllers = Sets.newHashSet();
private State state;
private Builder() {
@@ -128,6 +116,14 @@
}
@Override
+ public Builder from(OFAgent ofAgent) {
+ this.networkId = ofAgent.networkId();
+ this.controllers = Sets.newHashSet(ofAgent.controllers());
+ this.state = ofAgent.state();
+ return this;
+ }
+
+ @Override
public Builder networkId(NetworkId networkId) {
this.networkId = networkId;
return this;
@@ -140,6 +136,18 @@
}
@Override
+ public OFAgent.Builder addController(OFController controller) {
+ this.controllers.add(controller);
+ return this;
+ }
+
+ @Override
+ public OFAgent.Builder deleteController(OFController controller) {
+ this.controllers.remove(controller);
+ return this;
+ }
+
+ @Override
public Builder state(State state) {
this.state = state;
return this;