Refactoring of IntentId based APIs
- getIntent
- getIntentState
- getInstallableIntents
Change-Id: I6d2073dfa165e0e5adcef46fe5908b563b481a43
diff --git a/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java b/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
index 2e73a87..9d457b7 100644
--- a/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
+++ b/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
@@ -23,7 +23,6 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentEvent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentListener;
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.IntentState;
@@ -108,12 +107,15 @@
public Response withdrawIntent(@PathParam("intentId") String intentId) {
log.info("Receiving Teardown request for {}", intentId);
IntentService service = get(IntentService.class);
+ // TODO: there needs to be an app id and key here
+ /*
Intent intent = service.getIntent(IntentId.valueOf(Long.parseLong(intentId)));
if (intent != null) {
service.withdraw(intent);
String reply = "ok\n";
return Response.ok(reply).build();
}
+ */
return Response.status(Response.Status.NOT_FOUND).build();
}
@@ -163,7 +165,7 @@
@Override
public void event(IntentEvent event) {
if (event.subject().equals(intent)) {
- state = service.getIntentState(intent.id());
+ state = service.getIntentState(intent.key());
if (state == INSTALLED || state == FAILED || state == WITHDRAWN) {
latch.countDown();
}
diff --git a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java b/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
index 3c134fb..fc33693 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
@@ -100,7 +100,7 @@
inStatusTportMap.clear();
outStatusTportMap.clear();
for (Intent intent : intentService.getIntents()) {
- if (intentService.getIntentState(intent.id()) == INSTALLED) {
+ if (intentService.getIntentState(intent.key()) == INSTALLED) {
if (intent instanceof OpticalConnectivityIntent) {
inStatusTportMap.put(((OpticalConnectivityIntent) intent).getSrc(),
(OpticalConnectivityIntent) intent);
@@ -177,7 +177,7 @@
// TODO change the coordination approach between packet intents and optical intents
// Low speed LLDP may cause multiple calls which are not expected
- if (!IntentState.FAILED.equals(intentService.getIntentState(intent.id()))) {
+ if (!IntentState.FAILED.equals(intentService.getIntentState(intent.key()))) {
return;
}
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
index c51d7d3..ff9b786 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
@@ -579,7 +579,7 @@
}
IntentState state =
- intentService.getIntentState(fetchedIntent.id());
+ intentService.getIntentState(fetchedIntent.key());
if (state == null ||
state == IntentState.WITHDRAWING ||
state == IntentState.WITHDRAWN) {
@@ -601,7 +601,7 @@
}
IntentState state =
- intentService.getIntentState(fetchedIntent.id());
+ intentService.getIntentState(fetchedIntent.key());
if (state == null ||
state == IntentState.WITHDRAWING ||
state == IntentState.WITHDRAWN) {
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
index b92b093..1af0914 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
@@ -535,19 +535,19 @@
reset(intentService);
Set<Intent> intents = new HashSet<Intent>();
intents.add(intent1);
- expect(intentService.getIntentState(intent1.id()))
+ expect(intentService.getIntentState(intent1.key()))
.andReturn(IntentState.INSTALLED).anyTimes();
intents.add(intent2);
- expect(intentService.getIntentState(intent2.id()))
+ expect(intentService.getIntentState(intent2.key()))
.andReturn(IntentState.INSTALLED).anyTimes();
intents.add(intent4);
- expect(intentService.getIntentState(intent4.id()))
+ expect(intentService.getIntentState(intent4.key()))
.andReturn(IntentState.INSTALLED).anyTimes();
intents.add(intent5);
- expect(intentService.getIntentState(intent5.id()))
+ expect(intentService.getIntentState(intent5.key()))
.andReturn(IntentState.INSTALLED).anyTimes();
intents.add(intent7);
- expect(intentService.getIntentState(intent7.id()))
+ expect(intentService.getIntentState(intent7.key()))
.andReturn(IntentState.WITHDRAWING).anyTimes();
expect(intentService.getIntents()).andReturn(intents).anyTimes();
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentIdCompleter.java b/cli/src/main/java/org/onosproject/cli/net/IntentIdCompleter.java
index 7c5a480..4e418b7 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentIdCompleter.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentIdCompleter.java
@@ -39,7 +39,7 @@
Iterator<Intent> it = service.getIntents().iterator();
SortedSet<String> strings = delegate.getStrings();
while (it.hasNext()) {
- strings.add(it.next().id().toString());
+ strings.add(it.next().key().toString());
}
// Now let the completer do the work for figuring out what to offer.
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentRemoveCommand.java b/cli/src/main/java/org/onosproject/cli/net/IntentRemoveCommand.java
index 2350f05..3b05b7e 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentRemoveCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentRemoveCommand.java
@@ -19,8 +19,8 @@
import org.apache.karaf.shell.commands.Command;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.Key;
import java.math.BigInteger;
@@ -43,8 +43,8 @@
id = id.replaceFirst("0x", "");
}
- IntentId intentId = IntentId.valueOf(new BigInteger(id, 16).longValue());
- Intent intent = service.getIntent(intentId);
+ Key key = Key.of(new BigInteger(id, 16).longValue(), appId());
+ Intent intent = service.getIntent(key);
if (intent != null) {
service.withdraw(intent);
}
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
index 992c528..cdae9b5 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
@@ -76,7 +76,7 @@
print("%s", json(service, service.getIntents()));
} else {
for (Intent intent : service.getIntents()) {
- IntentState state = service.getIntentState(intent.id());
+ IntentState state = service.getIntentState(intent.key());
if (state != null) {
print("id=%s, state=%s, type=%s, appId=%s",
intent.id(), state, intent.getClass().getSimpleName(),
@@ -130,7 +130,7 @@
// Collect the summary for each intent type intents
for (Intent intent : intents) {
- IntentState intentState = service.getIntentState(intent.id());
+ IntentState intentState = service.getIntentState(intent.key());
if (intentState == null) {
continue;
}
@@ -365,7 +365,7 @@
print(" egress=%s", li.egressPoints());
}
- List<Intent> installable = service.getInstallableIntents(intent.id());
+ List<Intent> installable = service.getInstallableIntents(intent.key());
if (showInstallable && installable != null && !installable.isEmpty()) {
print(" installable=%s", installable);
}
@@ -387,7 +387,7 @@
.put("type", intent.getClass().getSimpleName())
.put("appId", intent.appId().name());
- IntentState state = service.getIntentState(intent.id());
+ IntentState state = service.getIntentState(intent.key());
if (state != null) {
result.put("state", state.toString());
}
@@ -438,7 +438,7 @@
result.set("links", LinksListCommand.json(li.links()));
}
- List<Intent> installable = service.getInstallableIntents(intent.id());
+ List<Intent> installable = service.getInstallableIntents(intent.key());
if (installable != null && !installable.isEmpty()) {
result.set("installable", json(service, installable));
}
diff --git a/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java b/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
index 3262fb9..b2bba9a 100644
--- a/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
@@ -64,7 +64,7 @@
print("Wiping intents");
IntentService intentService = get(IntentService.class);
for (Intent intent : intentService.getIntents()) {
- if (intentService.getIntentState(intent.id()) == IntentState.INSTALLED) {
+ if (intentService.getIntentState(intent.key()) == IntentState.INSTALLED) {
intentService.withdraw(intent);
}
}
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
index 20a06fa..2db280f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
@@ -43,6 +43,14 @@
void withdraw(Intent intent);
/**
+ * Fetches an intent based on its key.
+ *
+ * @param key key of the intent
+ * @return intent object if the key is found, null otherwise
+ */
+ public Intent getIntent(Key key);
+
+ /**
* Returns an iterable of intents currently in the system.
*
* @return set of intents
@@ -57,30 +65,22 @@
long getIntentCount();
/**
- * Retrieves the intent specified by its identifier.
- *
- * @param id intent identifier
- * @return the intent or null if one with the given identifier is not found
- */
- Intent getIntent(IntentId id);
-
- /**
* Retrieves the state of an intent by its identifier.
*
- * @param id intent identifier
+ * @param intentKey intent identifier
* @return the intent state or null if one with the given identifier is not
* found
*/
- IntentState getIntentState(IntentId id);
+ IntentState getIntentState(Key intentKey);
/**
* Returns the list of the installable events associated with the specified
* top-level intent.
*
- * @param intentId top-level intent identifier
+ * @param intentKey top-level intent identifier
* @return compiled installable intents
*/
- List<Intent> getInstallableIntents(IntentId intentId);
+ List<Intent> getInstallableIntents(Key intentKey);
/**
* Adds the specified listener for intent events.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
index e5942f1..ceb5493 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
@@ -40,37 +40,24 @@
Iterable<Intent> getIntents();
/**
- * Returns the intent with the specified identifier.
- *
- * @param intentId intent identification
- * @return intent or null if not found
- */
- @Deprecated
- default Intent getIntent(IntentId intentId) {
- throw new UnsupportedOperationException("deprecated");
- }
-
- /**
* Returns the state of the specified intent.
*
- * @param intentId intent identification
+ * @param intentKey intent identification
* @return current intent state
*/
- @Deprecated
- default IntentState getIntentState(IntentId intentId) {
- throw new UnsupportedOperationException("deprecated");
+ default IntentState getIntentState(Key intentKey) {
+ return null;
}
/**
* Returns the list of the installable events associated with the specified
* original intent.
*
- * @param intentId original intent identifier
+ * @param intentKey original intent identifier
* @return compiled installable intents
*/
- @Deprecated
- default List<Intent> getInstallableIntents(IntentId intentId) {
- throw new UnsupportedOperationException("deprecated");
+ default List<Intent> getInstallableIntents(Key intentKey) {
+ throw new UnsupportedOperationException("getInstallableIntents()");
}
/**
@@ -92,7 +79,8 @@
* @param key key
* @return intent or null if not found
*/
- default Intent getIntent(Key key) { //FIXME remove when impl.
+ default Intent getIntent(Key key) {
+ // FIXME remove this default implementation when all stores have implemented it
return null;
}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/FakeIntentManager.java b/core/api/src/test/java/org/onosproject/net/intent/FakeIntentManager.java
index 4cdb674..c1b7886 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/FakeIntentManager.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/FakeIntentManager.java
@@ -196,18 +196,18 @@
}
@Override
- public Intent getIntent(IntentId id) {
- return intents.get(id);
+ public Intent getIntent(Key intentKey) {
+ return intents.get(intentKey);
}
@Override
- public IntentState getIntentState(IntentId id) {
- return intentStates.get(id);
+ public IntentState getIntentState(Key intentKey) {
+ return intentStates.get(intentKey);
}
@Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
- return installables.get(intentId);
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ return installables.get(intentKey);
}
@Override
diff --git a/core/api/src/test/java/org/onosproject/net/intent/IntentServiceAdapter.java b/core/api/src/test/java/org/onosproject/net/intent/IntentServiceAdapter.java
index 9441fa4..d600dde 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/IntentServiceAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/IntentServiceAdapter.java
@@ -43,17 +43,17 @@
}
@Override
- public Intent getIntent(IntentId id) {
+ public Intent getIntent(Key intentKey) {
return null;
}
@Override
- public IntentState getIntentState(IntentId id) {
+ public IntentState getIntentState(Key intentKey) {
return null;
}
@Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
+ public List<Intent> getInstallableIntents(Key intentKey) {
return null;
}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/IntentServiceTest.java b/core/api/src/test/java/org/onosproject/net/intent/IntentServiceTest.java
index 9dce4f1..7ae00aa 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/IntentServiceTest.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/IntentServiceTest.java
@@ -91,7 +91,7 @@
@Override
public void run() {
assertEquals("incorrect intent state", IntentState.INSTALLED,
- service.getIntentState(intent.id()));
+ service.getIntentState(intent.key()));
}
});
@@ -112,7 +112,7 @@
@Override
public void run() {
assertEquals("incorrect intent state", IntentState.WITHDRAWN,
- service.getIntentState(intent.id()));
+ service.getIntentState(intent.key()));
}
});
@@ -140,7 +140,7 @@
@Override
public void run() {
assertEquals("incorrect intent state", IntentState.FAILED,
- service.getIntentState(intent.id()));
+ service.getIntentState(intent.key()));
}
});
@@ -163,7 +163,7 @@
@Override
public void run() {
assertEquals("incorrect intent state", IntentState.FAILED,
- service.getIntentState(intent.id()));
+ service.getIntentState(intent.key()));
}
});
@@ -255,7 +255,7 @@
@Override
public void run() {
assertEquals("incorrect intent state", IntentState.INSTALLED,
- service.getIntentState(intent.id()));
+ service.getIntentState(intent.key()));
}
});
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
index 3603a50..a0cc741 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
@@ -40,13 +40,13 @@
import org.onosproject.net.intent.IntentEvent;
import org.onosproject.net.intent.IntentException;
import org.onosproject.net.intent.IntentExtensionService;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentInstaller;
import org.onosproject.net.intent.IntentListener;
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentStore;
import org.onosproject.net.intent.IntentStoreDelegate;
+import org.onosproject.net.intent.Key;
import org.slf4j.Logger;
import java.util.ArrayList;
@@ -81,7 +81,7 @@
private static final Logger log = getLogger(IntentManager.class);
public static final String INTENT_NULL = "Intent cannot be null";
- public static final String INTENT_ID_NULL = "Intent ID cannot be null";
+ public static final String INTENT_ID_NULL = "Intent key cannot be null";
private static final int NUM_THREADS = 12;
@@ -163,6 +163,11 @@
}
@Override
+ public Intent getIntent(Key key) {
+ return store.getIntent(key);
+ }
+
+ @Override
public Iterable<Intent> getIntents() {
return store.getIntents();
}
@@ -173,21 +178,15 @@
}
@Override
- public Intent getIntent(IntentId id) {
- checkNotNull(id, INTENT_ID_NULL);
- return store.getIntent(id);
+ public IntentState getIntentState(Key intentKey) {
+ checkNotNull(intentKey, INTENT_ID_NULL);
+ return store.getIntentState(intentKey);
}
@Override
- public IntentState getIntentState(IntentId id) {
- checkNotNull(id, INTENT_ID_NULL);
- return store.getIntentState(id);
- }
-
- @Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
- checkNotNull(intentId, INTENT_ID_NULL);
- return store.getInstallableIntents(intentId);
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ checkNotNull(intentKey, INTENT_ID_NULL);
+ return store.getInstallableIntents(intentKey);
}
@Override
@@ -446,11 +445,11 @@
}
}
- private void buildAndSubmitBatches(Iterable<IntentId> intentIds,
+ private void buildAndSubmitBatches(Iterable<Key> intentKeys,
boolean compileAllFailed) {
// Attempt recompilation of the specified intents first.
- for (IntentId id : intentIds) {
- Intent intent = store.getIntent(id);
+ for (Key key : intentKeys) {
+ Intent intent = store.getIntent(key);
if (intent == null) {
continue;
}
@@ -460,7 +459,7 @@
if (compileAllFailed) {
// If required, compile all currently failed intents.
for (Intent intent : getIntents()) {
- IntentState state = getIntentState(intent.id());
+ IntentState state = getIntentState(intent.key());
if (RECOMPILE.contains(state)) {
if (state == WITHDRAW_REQ) {
withdraw(intent);
@@ -482,9 +481,9 @@
// Topology change delegate
private class InternalTopoChangeDelegate implements TopologyChangeDelegate {
@Override
- public void triggerCompile(Iterable<IntentId> intentIds,
+ public void triggerCompile(Iterable<Key> intentKeys,
boolean compileAllFailed) {
- buildAndSubmitBatches(intentIds, compileAllFailed);
+ buildAndSubmitBatches(intentKeys, compileAllFailed);
}
}
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
index aabcc28..3c7b733 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
@@ -29,8 +29,8 @@
import org.onosproject.net.Link;
import org.onosproject.net.LinkKey;
import org.onosproject.net.NetworkResource;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.Key;
import org.onosproject.net.link.LinkEvent;
import org.onosproject.net.resource.LinkResourceEvent;
import org.onosproject.net.resource.LinkResourceListener;
@@ -65,8 +65,8 @@
private final Logger log = getLogger(getClass());
- private final SetMultimap<LinkKey, IntentId> intentsByLink =
- synchronizedSetMultimap(HashMultimap.<LinkKey, IntentId>create());
+ private final SetMultimap<LinkKey, Key> intentsByLink =
+ synchronizedSetMultimap(HashMultimap.<LinkKey, Key>create());
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected TopologyService topologyService;
@@ -126,21 +126,21 @@
}
@Override
- public void addTrackedResources(IntentId intentId,
+ public void addTrackedResources(Key intentKey,
Collection<NetworkResource> resources) {
for (NetworkResource resource : resources) {
if (resource instanceof Link) {
- intentsByLink.put(linkKey((Link) resource), intentId);
+ intentsByLink.put(linkKey((Link) resource), intentKey);
}
}
}
@Override
- public void removeTrackedResources(IntentId intentId,
+ public void removeTrackedResources(Key intentKey,
Collection<NetworkResource> resources) {
for (NetworkResource resource : resources) {
if (resource instanceof Link) {
- intentsByLink.remove(linkKey((Link) resource), intentId);
+ intentsByLink.remove(linkKey((Link) resource), intentKey);
}
}
}
@@ -170,10 +170,10 @@
}
if (event.reasons() == null || event.reasons().isEmpty()) {
- delegate.triggerCompile(new HashSet<IntentId>(), true);
+ delegate.triggerCompile(new HashSet<Key>(), true);
} else {
- Set<IntentId> toBeRecompiled = new HashSet<>();
+ Set<Key> toBeRecompiled = new HashSet<>();
boolean recompileOnly = true;
// Scan through the list of reasons and keep accruing all
@@ -186,9 +186,9 @@
linkEvent.subject().isDurable())) {
final LinkKey linkKey = linkKey(linkEvent.subject());
synchronized (intentsByLink) {
- Set<IntentId> intentIds = intentsByLink.get(linkKey);
- log.debug("recompile triggered by LinkDown {} {}", linkKey, intentIds);
- toBeRecompiled.addAll(intentIds);
+ Set<Key> intentKeys = intentsByLink.get(linkKey);
+ log.debug("recompile triggered by LinkDown {} {}", linkKey, intentKeys);
+ toBeRecompiled.addAll(intentKeys);
}
}
recompileOnly = recompileOnly &&
@@ -243,15 +243,15 @@
}
intentService.getIntents().forEach(intent -> {
if (intent.appId().equals(appId)) {
- IntentId id = intent.id();
+ Key key = intent.key();
Collection<NetworkResource> resources = Lists.newArrayList();
- intentService.getInstallableIntents(id).stream()
+ intentService.getInstallableIntents(key).stream()
.map(installable -> installable.resources())
.forEach(resources::addAll);
if (track) {
- addTrackedResources(id, resources);
+ addTrackedResources(key, resources);
} else {
- removeTrackedResources(id, resources);
+ removeTrackedResources(key, resources);
}
}
});
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTrackerService.java b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTrackerService.java
index 404af9b..f1dfb94 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTrackerService.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTrackerService.java
@@ -15,11 +15,11 @@
*/
package org.onosproject.net.intent.impl;
-import org.onosproject.net.NetworkResource;
-import org.onosproject.net.intent.IntentId;
-
import java.util.Collection;
+import org.onosproject.net.NetworkResource;
+import org.onosproject.net.intent.Key;
+
/**
* Auxiliary service for tracking intent path flows and for notifying the
* intent service of environment changes via topology change delegate.
@@ -43,19 +43,20 @@
/**
* Adds a path flow to be tracked.
*
- * @param intentId intent identity on whose behalf the path is being tracked
+ * @param intentKey intent identity on whose behalf the path is being tracked
* @param resources resources to track
*/
- public void addTrackedResources(IntentId intentId,
+ // TODO consider using the IntentData here rather than just the key
+ public void addTrackedResources(Key intentKey,
Collection<NetworkResource> resources);
/**
* Removes a path flow to be tracked.
*
- * @param intentId intent identity on whose behalf the path is being tracked
+ * @param intentKey intent identity on whose behalf the path is being tracked
* @param resources resources to stop tracking
*/
- public void removeTrackedResources(IntentId intentId,
+ public void removeTrackedResources(Key intentKey,
Collection<NetworkResource> resources);
}
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/TopologyChangeDelegate.java b/core/net/src/main/java/org/onosproject/net/intent/impl/TopologyChangeDelegate.java
index 5eeb7c2..3cc0f2a 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/TopologyChangeDelegate.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/TopologyChangeDelegate.java
@@ -15,7 +15,7 @@
*/
package org.onosproject.net.intent.impl;
-import org.onosproject.net.intent.IntentId;
+import org.onosproject.net.intent.Key;
/**
* Auxiliary delegate for integration of intent manager and flow trackerService.
@@ -32,6 +32,6 @@
* @param compileAllFailed true implies full compile of all failed intents
* is required; false for selective recompile only
*/
- void triggerCompile(Iterable<IntentId> intentIds, boolean compileAllFailed);
+ void triggerCompile(Iterable<Key> intentIds, boolean compileAllFailed);
}
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/IntentManagerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/IntentManagerTest.java
index c55c3e8..5ff9c99 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/IntentManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/IntentManagerTest.java
@@ -45,6 +45,7 @@
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentTestsMocks;
+import org.onosproject.net.intent.Key;
import org.onosproject.net.resource.LinkResourceAllocations;
import org.onosproject.store.trivial.impl.SimpleIntentStore;
@@ -133,12 +134,12 @@
}
@Override
- public void addTrackedResources(IntentId intentId, Collection<NetworkResource> resources) {
+ public void addTrackedResources(Key key, Collection<NetworkResource> resources) {
//TODO
}
@Override
- public void removeTrackedResources(IntentId intentId, Collection<NetworkResource> resources) {
+ public void removeTrackedResources(Key key, Collection<NetworkResource> resources) {
//TODO
}
}
@@ -294,7 +295,7 @@
// verify that all intents are parked and the batch operation is unblocked
Set<IntentState> parked = Sets.newHashSet(INSTALLED, WITHDRAWN, FAILED);
for (Intent i : service.getIntents()) {
- IntentState state = service.getIntentState(i.id());
+ IntentState state = service.getIntentState(i.key());
assertTrue("Intent " + i.id() + " is in invalid state " + state,
parked.contains(state));
}
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
index 02d206a..b324ae8 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
@@ -32,7 +32,7 @@
import org.onosproject.net.Link;
import org.onosproject.net.NetworkResource;
import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentId;
+import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.MockIdGenerator;
import org.onosproject.net.link.LinkEvent;
import org.onosproject.net.resource.LinkResourceEvent;
@@ -49,6 +49,7 @@
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
+import static org.onosproject.net.NetTestTools.APP_ID;
import static org.onosproject.net.NetTestTools.link;
/**
@@ -99,13 +100,13 @@
static class TestTopologyChangeDelegate implements TopologyChangeDelegate {
CountDownLatch latch = new CountDownLatch(1);
- List<IntentId> intentIdsFromEvent;
+ List<Key> intentIdsFromEvent;
boolean compileAllFailedFromEvent;
@Override
- public void triggerCompile(Iterable<IntentId> intentIds,
+ public void triggerCompile(Iterable<Key> intentKeys,
boolean compileAllFailed) {
- intentIdsFromEvent = Lists.newArrayList(intentIds);
+ intentIdsFromEvent = Lists.newArrayList(intentKeys);
compileAllFailedFromEvent = compileAllFailed;
latch.countDown();
}
@@ -199,9 +200,9 @@
topology,
reasons);
- final IntentId intentId = IntentId.valueOf(0x333L);
+ final Key key = Key.of(0x333L, APP_ID);
Collection<NetworkResource> resources = ImmutableSet.of(link);
- tracker.addTrackedResources(intentId, resources);
+ tracker.addTrackedResources(key, resources);
listener.event(event);
assertThat(
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/DistributedIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/DistributedIntentStore.java
index ef3b803..0d8c02a 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/DistributedIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/DistributedIntentStore.java
@@ -40,6 +40,7 @@
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentStore;
import org.onosproject.net.intent.IntentStoreDelegate;
+import org.onosproject.net.intent.Key;
import org.onosproject.store.AbstractStore;
import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.serializers.KryoSerializer;
@@ -202,6 +203,10 @@
}
@Override
+ public Intent getIntent(Key intentKey) {
+ return null;
+ }
+
public Intent getIntent(IntentId intentId) {
Context timer = startTimer(getIntentTimer);
try {
@@ -212,7 +217,10 @@
}
@Override
- public IntentState getIntentState(IntentId id) {
+ public IntentState getIntentState(Key key) {
+ // TODO: either implement this or remove the class
+ return IntentState.FAILED;
+ /*
Context timer = startTimer(getIntentStateTimer);
try {
final IntentState localState = transientStates.get(id);
@@ -223,6 +231,7 @@
} finally {
stopTimer(timer);
}
+ */
}
private void verify(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) {
@@ -236,13 +245,17 @@
}
@Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ // TODO: implement this or delete class
+ return null;
+ /*
Context timer = startTimer(getInstallableIntentsTimer);
try {
return installable.get(intentId);
} finally {
stopTimer(timer);
}
+ */
}
protected String strIntentId(IntentId key) {
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
index f3917c9..051a01c 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
@@ -137,18 +137,29 @@
}
@Override
+ public Intent getIntent(Key intentKey) {
+ // TODO: Implement this
+ return null;
+ }
+
+
public Intent getIntent(IntentId intentId) {
return intents.get(intentId);
}
@Override
- public IntentState getIntentState(IntentId intentId) {
- return intentStates.get(intentId);
+ public IntentState getIntentState(Key intentKey) {
+ // TODO: implement this
+ return IntentState.FAILED;
}
@Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ // TODO: implement this or delete class
+ return null;
+ /*
return installables.get(intentId);
+ */
}
@Override
@@ -225,11 +236,6 @@
}
@Override
- public Intent getIntent(Key key) {
- return null; // TODO
- }
-
- @Override
public IntentData getIntentData(Key key) {
return null; // TODO
}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/HazelcastIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/HazelcastIntentStore.java
index 2e82e5c..8e91d61 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/HazelcastIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/HazelcastIntentStore.java
@@ -46,6 +46,7 @@
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentStore;
import org.onosproject.net.intent.IntentStoreDelegate;
+import org.onosproject.net.intent.Key;
import org.onosproject.store.hz.AbstractHazelcastStore;
import org.onosproject.store.hz.SMap;
import org.onosproject.store.serializers.KryoNamespaces;
@@ -209,6 +210,11 @@
}
@Override
+ public Intent getIntent(Key intentKey) {
+ return null;
+ }
+
+
public Intent getIntent(IntentId intentId) {
Context timer = startTimer(getIntentTimer);
try {
@@ -227,7 +233,10 @@
}
@Override
- public IntentState getIntentState(IntentId id) {
+ public IntentState getIntentState(Key key) {
+ // TODO: either implement this or remove this class
+ return IntentState.FAILED;
+ /*
Context timer = startTimer(getIntentStateTimer);
try {
final IntentState localState = transientStates.get(id);
@@ -238,6 +247,7 @@
} finally {
stopTimer(timer);
}
+ */
}
private void verify(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) {
@@ -251,13 +261,18 @@
}
@Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ // TODO: implement this or delete class
+ return null;
+
+ /*
Context timer = startTimer(getInstallableIntentsTimer);
try {
return installable.get(intentId);
} finally {
stopTimer(timer);
}
+ */
}
@Override
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/SimpleIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/SimpleIntentStore.java
index f3ecb48..0d9f26e 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/SimpleIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/SimpleIntentStore.java
@@ -25,7 +25,6 @@
import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.IntentEvent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentStore;
import org.onosproject.net.intent.IntentStoreDelegate;
@@ -35,7 +34,6 @@
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -77,38 +75,23 @@
}
@Override
- public Intent getIntent(IntentId intentId) {
- for (IntentData data : current.values()) {
- if (Objects.equals(data.intent().id(), intentId)) {
- return data.intent();
- }
- }
- return null;
+ public IntentState getIntentState(Key intentKey) {
+ IntentData data = current.get(intentKey);
+ return (data != null) ? data.state() : null;
}
@Override
- public IntentState getIntentState(IntentId intentId) {
- for (IntentData data : current.values()) {
- if (Objects.equals(data.intent().id(), intentId)) {
- return data.state();
- }
- }
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ // TODO: implement this or delete class
return null;
- }
-
- @Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
+ /*
for (IntentData data : current.values()) {
if (Objects.equals(data.intent().id(), intentId)) {
return data.installables();
}
}
return null;
- }
-
- @Override
- public IntentData getIntentData(Key key) {
- return current.get(key);
+ */
}
/*
diff --git a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimpleIntentStore.java b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimpleIntentStore.java
index 988d02a..2831951 100644
--- a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimpleIntentStore.java
+++ b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimpleIntentStore.java
@@ -25,7 +25,6 @@
import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.IntentEvent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentState;
import org.onosproject.net.intent.IntentStore;
import org.onosproject.net.intent.IntentStoreDelegate;
@@ -35,7 +34,6 @@
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -76,38 +74,15 @@
}
@Override
- public Intent getIntent(IntentId intentId) {
- for (IntentData data : current.values()) {
- if (Objects.equals(data.intent().id(), intentId)) {
- return data.intent();
- }
- }
- return null;
+ public IntentState getIntentState(Key intentKey) {
+ IntentData data = current.get(intentKey);
+ return (data != null) ? data.state() : null;
}
@Override
- public IntentState getIntentState(IntentId intentId) {
- for (IntentData data : current.values()) {
- if (Objects.equals(data.intent().id(), intentId)) {
- return data.state();
- }
- }
- return null;
- }
-
- @Override
- public List<Intent> getInstallableIntents(IntentId intentId) {
- for (IntentData data : current.values()) {
- if (Objects.equals(data.intent().id(), intentId)) {
- return data.installables();
- }
- }
- return null;
- }
-
- @Override
- public IntentData getIntentData(Key key) {
- return current.get(key);
+ public List<Intent> getInstallableIntents(Key intentKey) {
+ IntentData data = current.get(intentKey);
+ return (data != null) ? data.installables() : null;
}
/*
diff --git a/web/api/src/main/java/org/onosproject/rest/IntentsWebResource.java b/web/api/src/main/java/org/onosproject/rest/IntentsWebResource.java
index 75287e0..3e20c5d 100644
--- a/web/api/src/main/java/org/onosproject/rest/IntentsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/IntentsWebResource.java
@@ -24,8 +24,8 @@
import org.onosproject.net.intent.HostToHostIntent;
import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.PointToPointIntent;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -54,15 +54,15 @@
/**
* Gets a single intent by Id.
*
- * @param id Id to look up
+ * @param key Id to look up
* @return intent data
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
- public Response getIntentById(@PathParam("id") long id) {
+ public Response getIntentById(@PathParam("id") String key) {
final Intent intent = nullIsNotFound(get(IntentService.class)
- .getIntent(IntentId.valueOf(id)),
+ .getIntent(Key.of(key, null)),
INTENT_NOT_FOUND);
final ObjectNode root;
if (intent instanceof HostToHostIntent) {
diff --git a/web/api/src/test/java/org/onosproject/rest/IntentsResourceTest.java b/web/api/src/test/java/org/onosproject/rest/IntentsResourceTest.java
index 3289c87..35a15d5 100644
--- a/web/api/src/test/java/org/onosproject/rest/IntentsResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/IntentsResourceTest.java
@@ -35,8 +35,8 @@
import org.onosproject.core.IdGenerator;
import org.onosproject.net.NetworkResource;
import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentId;
import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.Key;
import com.eclipsesource.json.JsonArray;
import com.eclipsesource.json.JsonObject;
@@ -339,7 +339,7 @@
intents.add(intent);
- expect(mockIntentService.getIntent(IntentId.valueOf(0)))
+ expect(mockIntentService.getIntent(Key.of(0, APP_ID)))
.andReturn(intent)
.anyTimes();
replay(mockIntentService);
@@ -356,7 +356,7 @@
@Test
public void testBadGet() {
- expect(mockIntentService.getIntent(IntentId.valueOf(0)))
+ expect(mockIntentService.getIntent(Key.of(0, APP_ID)))
.andReturn(null)
.anyTimes();
replay(mockIntentService);
diff --git a/web/gui/src/main/java/org/onosproject/gui/TopologyViewIntentFilter.java b/web/gui/src/main/java/org/onosproject/gui/TopologyViewIntentFilter.java
index 24a9327..0549604 100644
--- a/web/gui/src/main/java/org/onosproject/gui/TopologyViewIntentFilter.java
+++ b/web/gui/src/main/java/org/onosproject/gui/TopologyViewIntentFilter.java
@@ -110,7 +110,7 @@
// Search through all intents and see if they are relevant to our search.
for (Intent intent : sourceIntents) {
- if (intentService.getIntentState(intent.id()) == INSTALLED) {
+ if (intentService.getIntentState(intent.key()) == INSTALLED) {
boolean isRelevant = false;
if (intent instanceof HostToHostIntent) {
isRelevant = isIntentRelevantToHosts((HostToHostIntent) intent, hosts) &&
@@ -157,7 +157,7 @@
// Indicates whether the specified intent involves all of the given devices.
private boolean isIntentRelevantToDevices(Intent intent, Iterable<Device> devices) {
- List<Intent> installables = intentService.getInstallableIntents(intent.id());
+ List<Intent> installables = intentService.getInstallableIntents(intent.key());
for (Device device : devices) {
if (!isIntentRelevantToDevice(installables, device)) {
return false;
@@ -228,7 +228,7 @@
Link ccDst = getFirstLink(opticalIntent.getDst(), true);
for (Intent intent : intents) {
- List<Intent> installables = intentService.getInstallableIntents(intent.id());
+ List<Intent> installables = intentService.getInstallableIntents(intent.key());
for (Intent installable : installables) {
if (installable instanceof PathIntent) {
List<Link> links = ((PathIntent) installable).path().links();
diff --git a/web/gui/src/main/java/org/onosproject/gui/TopologyViewMessages.java b/web/gui/src/main/java/org/onosproject/gui/TopologyViewMessages.java
index 599881c..746c37e 100644
--- a/web/gui/src/main/java/org/onosproject/gui/TopologyViewMessages.java
+++ b/web/gui/src/main/java/org/onosproject/gui/TopologyViewMessages.java
@@ -672,7 +672,7 @@
for (TrafficClass trafficClass : trafficClasses) {
for (Intent intent : trafficClass.intents) {
boolean isOptical = intent instanceof OpticalConnectivityIntent;
- List<Intent> installables = intentService.getInstallableIntents(intent.id());
+ List<Intent> installables = intentService.getInstallableIntents(intent.key());
if (installables != null) {
for (Intent installable : installables) {
String type = isOptical ? trafficClass.type + " optical" : trafficClass.type;