diff options
author | Einat Vinouze <einat.vinouze@intl.att.com> | 2019-07-16 17:17:36 +0300 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2019-07-30 06:01:44 +0300 |
commit | e601bbdc43bae9a08e2e10c5139a6f76b47860d7 (patch) | |
tree | 1913f0b369ead3f2ea5557e5649d8281eca9871c /vid-app-common/src/main/java/org/onap/vid/model/aaiTree/VpnBinding.kt | |
parent | 76c6ee4a697617ec4cdee2f3b48bc83136c858c5 (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.kt | 50 |
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 +) |