[ODTN] Add read/create/delete ConnectivityService RPC
- RPC: get service interface point
- RPC: get connectivity service list
- RPC: get connectivity service detail
- RPC: create connectivity service
- RPC: delete connectivity service
- Filter method of TAPI resolver for both Node / NEP
- Change condition for sip to odtn-port-type
- Use odtn-port-type in path-computation mock
- Create CEP at topology discovery
- Add sample path calculator
- Add connection-id based path selection
Change-Id: I2f08aacb3dd14b6b3c59a64a349e50abb495f70b
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
index 2af7fed..200c623 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
@@ -25,35 +25,35 @@
import java.lang.reflect.Method;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.UUID;
import org.slf4j.Logger;
+
import static org.slf4j.LoggerFactory.getLogger;
/**
* Utility methods dealing with TAPI modelObject which includes global class grouping.
- *
+ * <p>
* <p> tapi-common@2018-03-07.yang
* grouping global-class {
- * leaf uuid {
- * type uuid;
- * }
- * list name {
- * key 'value-name';
- * uses name-and-value;
- * }
+ * leaf uuid {
+ * type uuid;
* }
- *
+ * list name {
+ * key 'value-name';
+ * uses name-and-value;
+ * }
+ * }
+ * <p>
* grouping name-and-value {
- * leaf value-name {
- * type string;
- * description "The name of the value. The value need not have a name.";
- * }
- * leaf value {
- * type string;
- * description "The value";
- * }
- * description "A scoped name-value pair";
+ * leaf value-name {
+ * type string;
+ * description "The name of the value. The value need not have a name.";
+ * }
+ * leaf value {
+ * type string;
+ * description "The value";
+ * }
+ * description "A scoped name-value pair";
* }
* </p>
*/
@@ -65,14 +65,13 @@
}
/**
- * Generate and set Uuid for the ModelObject.
- * @param obj ModelObject
- * @param <T> type of ModelObject
- * @return generated uuid
+ * Set uuid for the ModelObject.
+ *
+ * @param obj ModelObject
+ * @param uuid Uuid
+ * @param <T> Type of ModelObject
*/
- public static <T extends ModelObject> Uuid setUuid(T obj) {
- Uuid uuid = Uuid.of(UUID.randomUUID().toString());
-
+ public static <T extends ModelObject> void setUuid(T obj, Uuid uuid) {
@SuppressWarnings("unchecked")
Class<T> cls = (Class<T>) obj.getClass();
try {
@@ -81,15 +80,35 @@
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
log.error("Exception thrown", e);
}
+ }
+
+ /**
+ * Get uuid for the ModelObject.
+ *
+ * @param obj ModelObject
+ * @param <T> Type of ModelObject
+ * @return Uuid
+ */
+ public static <T extends ModelObject> Uuid getUuid(T obj) {
+ Uuid uuid = null;
+ @SuppressWarnings("unchecked")
+ Class<T> cls = (Class<T>) obj.getClass();
+ try {
+ Method method = cls.getMethod("uuid");
+ uuid = (Uuid) method.invoke(obj);
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ log.error("Exception thrown", e);
+ }
return uuid;
}
/**
* Add key-value to the ModelObject as "name-and-value" list.
+ *
* @param obj ModelObject
- * @param kvs key-value map
- * @param <T> type of ModelObject
+ * @param kvs Key-value map
+ * @param <T> Type of ModelObject
*/
public static <T extends ModelObject> void addNameList(T obj, Map<String, String> kvs) {