aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt
diff options
context:
space:
mode:
authorEinat Vinouze <einat.vinouze@intl.att.com>2019-07-16 17:17:36 +0300
committerIttay Stern <ittay.stern@att.com>2019-07-30 06:01:44 +0300
commite601bbdc43bae9a08e2e10c5139a6f76b47860d7 (patch)
tree1913f0b369ead3f2ea5557e5649d8281eca9871c /vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt
parent76c6ee4a697617ec4cdee2f3b48bc83136c858c5 (diff)
Implant vid-app-common org.onap.vid.job (main and test)
Issue-ID: VID-378 Change-Id: I41b0bdc2c4e3635f3f3319b1cd63cefc61912dfc Signed-off-by: Einat Vinouze <einat.vinouze@intl.att.com> Signed-off-by: Ittay Stern <ittay.stern@att.com>
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
+)