aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt50
1 files changed, 50 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt b/vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt
new file mode 100644
index 000000000..d43bf26f0
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt
@@ -0,0 +1,50 @@
+package org.onap.vid.model.aaiTree
+
+import com.fasterxml.jackson.annotation.JsonAlias
+import com.fasterxml.jackson.annotation.JsonCreator
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties
+import com.fasterxml.jackson.annotation.JsonInclude
+import com.fasterxml.jackson.core.type.TypeReference
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate
+import org.onap.vid.utils.JACKSON_OBJECT_MAPPER
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+class VpnBinding(aaiNode: AAITreeNode) : Node(aaiNode) {
+ @JsonCreator
+ constructor() : this(AAITreeNode())
+ var region: String? = null
+ var customerId: String? = null
+ var routeTargets: List<RouteTarget>? = null
+}
+
+val LOGGER: EELFLoggerDelegate = EELFLoggerDelegate.getLogger(VpnBinding::class.java)
+
+fun from(node: AAITreeNode): VpnBinding {
+ val vpnBinding = VpnBinding(node)
+ vpnBinding.platformName = Node.readValueAsStringFromAdditionalProperties(node, "vpn-platform")
+ vpnBinding.instanceType = Node.readValueAsStringFromAdditionalProperties(node, "vpn-type")
+ vpnBinding.region = Node.readValueAsStringFromAdditionalProperties(node, "vpn-region")
+ vpnBinding.customerId = Node.readValueAsStringFromAdditionalProperties(node, "customer-vpn-id")
+
+ vpnBinding.routeTargets = try {
+ JACKSON_OBJECT_MAPPER.convertValue(
+ node.additionalProperties.getOrDefault("route-targets", emptyList<RouteTarget>()),
+ object : TypeReference<List<RouteTarget>>() {})
+ } catch (exception: Exception) {
+ LOGGER.error("Failed to parse route-targets of vpn with id:${vpnBinding.instanceId}", exception)
+ listOf(RouteTarget("ParsingFailure", "ParsingFailure"))
+ }
+
+ return vpnBinding
+}
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+data class RouteTarget(
+
+ @JsonAlias("global-route-target")
+ val globalRouteTarget: String? = null,
+
+ @JsonAlias("route-target-role")
+ val routeTargetRole: String? = null
+)