aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ResourceTranslationNeutronPortHelper.java470
1 files changed, 236 insertions, 234 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ResourceTranslationNeutronPortHelper.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ResourceTranslationNeutronPortHelper.java
index 40a20d659f..7af9bed23a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ResourceTranslationNeutronPortHelper.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ResourceTranslationNeutronPortHelper.java
@@ -9,243 +9,245 @@ import java.util.Map;
public class ResourceTranslationNeutronPortHelper {
- public static final String IP_COUNT_REQUIRED = "ip_count_required";
- public static final String FLOATING_IP_COUNT_REQUIRED = "floating_ip_count_required";
- public static final String NETWORK = "network";
- public static final String NETWORK_ROLE_TAG = "network_role_tag";
- public static final String FIXED_IPS = "fixed_ips";
- public static final String IP_VERSION = "ip_version";
- public static final String IP_ADDRESS = "ip_address";
- public static final String GET_INPUT = "get_input";
- public static final String ALLOWED_ADDRESS_PAIRS = "allowed_address_pairs";
- public static final String FLOATING_IP = "_floating_ip";
- public static final String FLOATING_V6_IP = "_floating_v6_ip";
- public static final String IPS = "_ips";
- public static final String V6_IPS = "_v6_ips";
- public static final String NET_NAME = "_net_name";
- public static final String NET_ID = "_net_id";
- public static final String NET_FQDN = "_net_fqdn";
- public static final String IPV4_REGEX = "\\w*_ip_\\d+";
- public static final String IPV6_REGEX = "\\w*_v6_ip_\\d+";
- public static final String MAC_COUNT_REQUIRED = "mac_count_required";
- public static final String MAC_ADDRESS = "mac_address";
- public static final String IS_REQUIRED = "is_required";
- public static final String IP_REQUIREMENTS = "ip_requirements";
- public static final String MAC_REQUIREMENTS = "mac_requirements";
- public static final int DEFAULT_IP_VERSION = 4;
-
- public void setAdditionalProperties(Map<String, Object> properties) {
- properties.putAll(initRequirments());
- populateIpRequirments(properties);
- populateMacRequirments(properties);
- populateNetworkRoleTag(properties);
- }
-
- private void populateIpRequirments(Map<String, Object> properties) {
- populateFixedIpCount(properties);
- populateFloatingIpCount(properties);
- createDefaultIpRequirment(properties);
- }
-
- private Map<String, Object> initRequirments() {
- Map<String, Object> properties = new HashMap();
- List<Map<String, Object>> ipRequirementsList = new ArrayList<>();
- properties.put(IP_REQUIREMENTS, ipRequirementsList);
- properties.put(MAC_REQUIREMENTS, createMacRequirment());
- return properties;
-
- }
-
- private Map<String, Object> createMacRequirment() {
- Map<String, Object> macRequirements = new HashMap();
- Map<String, Object> macIsRequired = new HashMap();
- macIsRequired.put(IS_REQUIRED, Boolean.FALSE);
- macRequirements.put(MAC_COUNT_REQUIRED, macIsRequired);
- return macRequirements;
- }
-
- private void populateMacRequirments(Map<String, Object> properties) {
- if (properties.containsKey(MAC_ADDRESS)) {
- populateMacCount(properties);
- }
- }
-
- private void populateMacCount(Map<String, Object> properties) {
- Map<String, Object> macRequirements = (Map<String, Object>) properties.get(MAC_REQUIREMENTS);
- Map<String, Object> macIsRequired = new HashMap();
- macIsRequired.put(IS_REQUIRED, Boolean.TRUE);
- macRequirements.put(MAC_COUNT_REQUIRED, macIsRequired);
- properties.put(MAC_REQUIREMENTS, macRequirements);
- }
-
- private void populateFloatingIpCount(Map<String, Object> properties) {
- populateIpCountRequired(properties, ALLOWED_ADDRESS_PAIRS, FLOATING_IP_COUNT_REQUIRED );
- }
-
- private void populateFixedIpCount(Map<String, Object> properties) {
- populateIpCountRequired(properties, FIXED_IPS, IP_COUNT_REQUIRED );
- }
-
-
- private void createDefaultIpRequirment(Map<String, Object> properties) {
- List<Map<String, Object>> ipRequirmentsList = ((List<Map<String, Object>>) properties.get(IP_REQUIREMENTS));
-
- if(CollectionUtils.isEmpty(ipRequirmentsList)) {
- ipRequirmentsList.add(createIPRequirment(DEFAULT_IP_VERSION));
- }
- }
-
- private Map<String, Object> createIPRequirment(Object version) {
- Map<String, Object> ipRequirements = new HashMap();
- Map<String, Object> isRequired = new HashMap();
- Map<String, Object> floatingIsRequired = new HashMap();
- isRequired.put(IS_REQUIRED, Boolean.FALSE);
- floatingIsRequired.put(IS_REQUIRED, Boolean.FALSE);
- ipRequirements.put(IP_COUNT_REQUIRED, isRequired);
- ipRequirements.put(FLOATING_IP_COUNT_REQUIRED, floatingIsRequired);
- ipRequirements.put(IP_VERSION, version);
- return ipRequirements;
- }
-
- private void populateIpCountRequired(Map<String, Object> properties, String ipType, String ipCountRequired ){
-
- Object propertyValue = properties.get(ipType);
- if(propertyValue == null){
- return;
- }
-
- if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
- handleMapProperty(ipType, ipCountRequired, properties, (Map.Entry<String, Object>) ((Map) propertyValue).entrySet().iterator().next());
- }
- else if (propertyValue instanceof List && !((List) propertyValue).isEmpty()) {
- handleListProperty(ipType, ipCountRequired, properties, (List) propertyValue);
- }
-
- }
-
- private void handleListProperty(String ipType, String ipCountRequired, Map<String, Object> properties, List propertyValue) {
- for (int i = 0; i < propertyValue.size(); i++) {
- handleIpAddress(ipType, ipCountRequired, properties, propertyValue.get(i));
- }
- }
-
- private void handleMapProperty(String ipType, String ipCountRequired, Map<String, Object> properties, Map.Entry<String, Object> mapEntry) {
- updateIpCountRequired(ipType, ipCountRequired, properties, mapEntry.getValue());
- }
-
- private void handleIpAddress(String ipType, String ipCountRequired, Map<String, Object> properties, Object ipMap) {
- if(ipMap instanceof Map && !((Map) ipMap).isEmpty()) {
- Object ipAddressMap = ((Map) ipMap).get(IP_ADDRESS);
- if (ipAddressMap instanceof Map && !((Map) ipAddressMap).isEmpty()) {
- Object ipInput = ((Map) ipAddressMap).get(GET_INPUT);
- updateIpCountRequired(ipType, ipCountRequired, properties, ipInput);
- }
- }
- }
-
- private void updateIpCountRequired(String ipType, String ipCountRequired, Map<String, Object> properties, Object ipInput) {
- Object ipVersion = getVersion(ipInput, ipType);
- updateIpCountRequiredForVersion(ipCountRequired, properties, ipVersion);
- }
-
- private void updateIpCountRequiredForVersion(String ipCountRequired, Map<String, Object> properties, Object ipVersion) {
- if (ipVersion != null) {
- HashMap<Object, Map<String, Object>> ipRequirmentsMap = getIPRequirments(properties);
- Map<String, Object> ipRequirement = ipRequirmentsMap.get(ipVersion);
- if (ipRequirement == null){
- ipRequirement = addIPRequirment(properties, ipVersion);
- }
- updateIpCountRequired(ipCountRequired, ipRequirement);
- }
- }
-
- private Map<String, Object> addIPRequirment(Map<String, Object> properties, Object ipVersion) {
- List<Map<String, Object>> ipRequirmentsList = ((List<Map<String,Object>>) properties.get(IP_REQUIREMENTS));
- Map<String, Object> newIpRequirment = createIPRequirment(ipVersion);
- ipRequirmentsList.add(newIpRequirment);
- return newIpRequirment;
- }
+ public static final String IP_COUNT_REQUIRED = "ip_count_required";
+ public static final String FLOATING_IP_COUNT_REQUIRED = "floating_ip_count_required";
+ public static final String NETWORK = "network";
+ public static final String NETWORK_ROLE_TAG = "network_role_tag";
+ public static final String FIXED_IPS = "fixed_ips";
+ public static final String IP_VERSION = "ip_version";
+ public static final String IP_ADDRESS = "ip_address";
+ public static final String GET_INPUT = "get_input";
+ public static final String ALLOWED_ADDRESS_PAIRS = "allowed_address_pairs";
+ public static final String FLOATING_IP = "_floating_ip";
+ public static final String FLOATING_V6_IP = "_floating_v6_ip";
+ public static final String IPS = "_ips";
+ public static final String V6_IPS = "_v6_ips";
+ public static final String NET_NAME = "_net_name";
+ public static final String NET_ID = "_net_id";
+ public static final String NET_FQDN = "_net_fqdn";
+ public static final String IPV4_REGEX = "\\w*_ip_\\d+";
+ public static final String IPV6_REGEX = "\\w*_v6_ip_\\d+";
+ public static final String MAC_COUNT_REQUIRED = "mac_count_required";
+ public static final String MAC_ADDRESS = "mac_address";
+ public static final String IS_REQUIRED = "is_required";
+ public static final String IP_REQUIREMENTS = "ip_requirements";
+ public static final String MAC_REQUIREMENTS = "mac_requirements";
+ public static final int DEFAULT_IP_VERSION = 4;
- private void updateIpCountRequired(String ipCountRequired, Map<String, Object> ipRequirement) {
- Map<String, Object> isIPCountRequired = (Map<String, Object>)ipRequirement.get(ipCountRequired);
- isIPCountRequired.put(IS_REQUIRED, Boolean.TRUE);
- }
-
- private HashMap <Object, Map<String, Object>> getIPRequirments (Map<String, Object> properties) {
- HashMap<Object, Map<String, Object>> ipRequirmentsMap = new HashMap();
- List<Map<String, Object>> ipRequirmentsList = ((List<Map<String,Object>>) properties.get(IP_REQUIREMENTS));
- ipRequirmentsList.stream().forEach(e->ipRequirmentsMap.put(e.get(IP_VERSION),e));
- return ipRequirmentsMap;
- }
+ public void setAdditionalProperties(Map<String, Object> properties) {
+ setRequirments(properties);
+ setNetworkRoleTag(properties);
+ }
+
+ private void setRequirments(Map<String, Object> properties) {
+ properties.putAll(addRequirments());
+ setIpRequirments(properties);
+ setMacRequirments(properties);
+ }
+
+ private void setIpRequirments(Map<String, Object> properties) {
+ setFixedIpCount(properties);
+ setFloatingIpCount(properties);
+ addDefaultIpRequirment(properties);
+ }
+
+ private Map<String, Object> addRequirments() {
+ Map<String, Object> properties = new HashMap();
+ List<Map<String, Object>> ipRequirementsList = new ArrayList<>();
+ properties.put(IP_REQUIREMENTS, ipRequirementsList);
+ properties.put(MAC_REQUIREMENTS, createMacRequirment());
+ return properties;
+
+ }
+
+ private Map<String, Object> createMacRequirment() {
+ Map<String, Object> macRequirements = new HashMap();
+ Map<String, Object> macIsRequired = new HashMap();
+ macIsRequired.put(IS_REQUIRED, Boolean.FALSE);
+ macRequirements.put(MAC_COUNT_REQUIRED, macIsRequired);
+ return macRequirements;
+ }
+
+ private void setMacRequirments(Map<String, Object> properties) {
+ updateMacCountRequired(properties);
+ }
- private void populateNetworkRoleTag(Map<String, Object> properties) {
- Object propertyValue = properties.get(NETWORK);
- if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
- Map.Entry<String, String> mapEntry =
- (Map.Entry<String, String>) ((Map) propertyValue).entrySet().iterator().next();
- if (mapEntry.getValue() instanceof String && getNetworkRole(mapEntry.getValue())!=null) {
- properties.put(NETWORK_ROLE_TAG, getNetworkRole(mapEntry.getValue()));
- }
+ private void updateMacCountRequired(Map<String, Object> properties) {
+ if (properties.containsKey(MAC_ADDRESS)) {
+ Map<String, Object> macRequirements = (Map<String, Object>) properties.get(MAC_REQUIREMENTS);
+ Map<String, Object> macIsRequired = (Map<String, Object>) macRequirements.get(MAC_COUNT_REQUIRED);
+ macIsRequired.put(IS_REQUIRED, Boolean.TRUE);
+ }
}
- }
-
- private Object getVersion(Object value, String type) {
-
- Object version = null;
- if(type.equals(FIXED_IPS)){
- version = getIpVersion(value);
- }
- else if(type.equals(ALLOWED_ADDRESS_PAIRS)){
- version = getFloatingIpVersion(value);
- }
- return version;
- }
-
- private Object getFloatingIpVersion(Object value) {
- Object ipVersion = null;
- // Allowed ONLY String parameter
- if(value instanceof String) {
- if (((String) value).endsWith(FLOATING_V6_IP)) {
- ipVersion = 6;
- }
- else if (((String) value).endsWith(FLOATING_IP)){
- ipVersion = 4;
- }
+ private void setFloatingIpCount(Map<String, Object> properties) {
+ handleIpCountRequired(properties, ALLOWED_ADDRESS_PAIRS, FLOATING_IP_COUNT_REQUIRED );
+ }
+
+ private void setFixedIpCount(Map<String, Object> properties) {
+ handleIpCountRequired(properties, FIXED_IPS, IP_COUNT_REQUIRED );
+ }
+
+
+ private void addDefaultIpRequirment(Map<String, Object> properties) {
+ List<Map<String, Object>> ipRequirmentsList = ((List<Map<String, Object>>) properties.get(IP_REQUIREMENTS));
+
+ if(CollectionUtils.isEmpty(ipRequirmentsList)) {
+ ipRequirmentsList.add(createIPRequirment(DEFAULT_IP_VERSION));
+ }
+ }
+
+ private Map<String, Object> createIPRequirment(Object version) {
+ Map<String, Object> ipRequirements = new HashMap();
+ Map<String, Object> isRequired = new HashMap();
+ Map<String, Object> floatingIsRequired = new HashMap();
+ isRequired.put(IS_REQUIRED, Boolean.FALSE);
+ floatingIsRequired.put(IS_REQUIRED, Boolean.FALSE);
+ ipRequirements.put(IP_COUNT_REQUIRED, isRequired);
+ ipRequirements.put(FLOATING_IP_COUNT_REQUIRED, floatingIsRequired);
+ ipRequirements.put(IP_VERSION, version);
+ return ipRequirements;
+ }
+
+ private void handleIpCountRequired(Map<String, Object> properties, String ipType, String ipCountRequired ){
+
+ Object propertyValue = properties.get(ipType);
+ if(propertyValue == null){
+ return;
+ }
+
+ if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
+ handleMapProperty(ipType, ipCountRequired, properties, (Map.Entry<String, Object>) ((Map) propertyValue).entrySet().iterator().next());
+ }
+ else if (propertyValue instanceof List && !((List) propertyValue).isEmpty()) {
+ handleListProperty(ipType, ipCountRequired, properties, (List) propertyValue);
+ }
+
+ }
+
+ private void handleListProperty(String ipType, String ipCountRequired, Map<String, Object> properties, List propertyValue) {
+ for (int i = 0; i < propertyValue.size(); i++) {
+ handleIpAddress(ipType, ipCountRequired, properties, propertyValue.get(i));
+ }
+ }
+
+ private void handleMapProperty(String ipType, String ipCountRequired, Map<String, Object> properties, Map.Entry<String, Object> mapEntry) {
+ updateIpCountRequired(ipType, ipCountRequired, properties, mapEntry.getValue());
+ }
+
+ private void handleIpAddress(String ipType, String ipCountRequired, Map<String, Object> properties, Object ipMap) {
+ if(ipMap instanceof Map && !((Map) ipMap).isEmpty()) {
+ Object ipAddressMap = ((Map) ipMap).get(IP_ADDRESS);
+ if (ipAddressMap instanceof Map && !((Map) ipAddressMap).isEmpty()) {
+ Object ipInput = ((Map) ipAddressMap).get(GET_INPUT);
+ updateIpCountRequired(ipType, ipCountRequired, properties, ipInput);
+ }
+ }
+ }
+
+ private void updateIpCountRequired(String ipType, String ipCountRequired, Map<String, Object> properties, Object ipInput) {
+ Object ipVersion = getVersion(ipInput, ipType);
+ updateIpCountRequiredForVersion(ipCountRequired, properties, ipVersion);
+ }
+
+ private void updateIpCountRequiredForVersion(String ipCountRequired, Map<String, Object> properties, Object ipVersion) {
+ if (ipVersion != null) {
+ HashMap<Object, Map<String, Object>> ipRequirmentsMap = getIPRequirments(properties);
+ Map<String, Object> ipRequirement = ipRequirmentsMap.get(ipVersion);
+ if (ipRequirement == null){
+ ipRequirement = addIPRequirment(properties, ipVersion);
+ }
+ updateIpCountRequired(ipCountRequired, ipRequirement);
+ }
+ }
+
+ private Map<String, Object> addIPRequirment(Map<String, Object> properties, Object ipVersion) {
+ List<Map<String, Object>> ipRequirmentsList = ((List<Map<String,Object>>) properties.get(IP_REQUIREMENTS));
+ Map<String, Object> newIpRequirment = createIPRequirment(ipVersion);
+ ipRequirmentsList.add(newIpRequirment);
+ return newIpRequirment;
+ }
+
+ private void updateIpCountRequired(String ipCountRequired, Map<String, Object> ipRequirement) {
+ Map<String, Object> isIPCountRequired = (Map<String, Object>)ipRequirement.get(ipCountRequired);
+ isIPCountRequired.put(IS_REQUIRED, Boolean.TRUE);
+ }
+
+ private HashMap <Object, Map<String, Object>> getIPRequirments (Map<String, Object> properties) {
+ HashMap<Object, Map<String, Object>> ipRequirmentsMap = new HashMap();
+ List<Map<String, Object>> ipRequirmentsList = ((List<Map<String,Object>>) properties.get(IP_REQUIREMENTS));
+ ipRequirmentsList.stream().forEach(e->ipRequirmentsMap.put(e.get(IP_VERSION),e));
+ return ipRequirmentsMap;
+ }
+
+ private void setNetworkRoleTag(Map<String, Object> properties) {
+ Object propertyValue = properties.get(NETWORK);
+ if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
+ Map.Entry<String, String> mapEntry =
+ (Map.Entry<String, String>) ((Map) propertyValue).entrySet().iterator().next();
+ if (mapEntry.getValue() instanceof String && getNetworkRole(mapEntry.getValue())!=null) {
+ properties.put(NETWORK_ROLE_TAG, getNetworkRole(mapEntry.getValue()));
+ }
+ }
+ }
+
+ private Object getVersion(Object value, String type) {
+
+ Object version = null;
+ if(type.equals(FIXED_IPS)){
+ version = getIpVersion(value);
+ }
+ else if(type.equals(ALLOWED_ADDRESS_PAIRS)){
+ version = getFloatingIpVersion(value);
+ }
+ return version;
+ }
+
+ private Object getFloatingIpVersion(Object value) {
+ Object ipVersion = null;
+
+ // Allowed ONLY String parameter
+ if(value instanceof String) {
+ if (((String) value).endsWith(FLOATING_V6_IP)) {
+ ipVersion = 6;
+ }
+ else if (((String) value).endsWith(FLOATING_IP)){
+ ipVersion = 4;
+ }
+ }
+ return ipVersion;
+ }
+
+ private Object getIpVersion(Object value) {
+
+ // Allowed List or String parameter
+ Object ipVersion = null;
+ if (value instanceof List && !((List) value).isEmpty()){
+ value = ((List) value).get(0);
+ }
+
+ if(value instanceof String) {
+ if (((String) value).endsWith(V6_IPS) || ((String) value).matches(IPV6_REGEX)) {
+ ipVersion = 6;
+ }
+ else {
+ ipVersion = 4;
+ }
+ }
+ return ipVersion;
+ }
+
+ private Object getNetworkRole(String value) {
+ Object networkRole = null;
+ if(value.endsWith(NET_NAME)) {
+ networkRole = value.substring(0, value.length() - NET_NAME.length());
+ }
+ else if(value.endsWith(NET_ID)) {
+ networkRole = value.substring(0, value.length() - NET_ID.length());
+ }
+ else if(value.endsWith(NET_FQDN)) {
+ networkRole = value.substring(0, value.length() - NET_FQDN.length());
+ }
+ return networkRole;
}
- return ipVersion;
- }
-
- private Object getIpVersion(Object value) {
-
- // Allowed List or String parameter
- Object ipVersion = null;
- if (value instanceof List && !((List) value).isEmpty()){
- value = ((List) value).get(0);
- }
-
- if(value instanceof String) {
- if (((String) value).endsWith(V6_IPS) || ((String) value).matches(IPV6_REGEX)) {
- ipVersion = 6;
- }
- else {
- ipVersion = 4;
- }
- }
- return ipVersion;
- }
-
- private Object getNetworkRole(String value) {
- Object networkRole = null;
- if(value.endsWith(NET_NAME)) {
- networkRole = value.substring(0, value.length() - NET_NAME.length());
- }
- else if(value.endsWith(NET_ID)) {
- networkRole = value.substring(0, value.length() - NET_ID.length());
- }
- else if(value.endsWith(NET_FQDN)) {
- networkRole = value.substring(0, value.length() - NET_FQDN.length());
- }
- return networkRole;
- }
} \ No newline at end of file