Test coverage-Corrections 47/63947/7
authorsiddharth0905 <siddharth.singh4@amdocs.com>
Thu, 20 Sep 2018 07:00:37 +0000 (10:00 +0300)
committervempo <vitaliy.emporopulo@amdocs.com>
Tue, 25 Sep 2018 15:07:44 +0000 (18:07 +0300)
Increase test coverage

Change-Id: I8268d31486b3410fbe8791c6d8c4eed4b237462c
Issue-ID: SDC-1673
Signed-off-by: siddharth0905 <siddharth.singh4@amdocs.com>
Signed-off-by: vempo <vitaliy.emporopulo@amdocs.com>
55 files changed:
onboarding/pom.xml
openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java
openecomp-be/lib/openecomp-heat-lib/pom.xml
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/DefinedHeatParameterTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/HeatBoolean.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/FileData.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/ManifestContent.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/ManifestFile.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/Constraint.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ContrailResourceTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ContrailV2ResourceTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/Environment.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplate.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/HeatPseudoParameters.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/HeatResourcesTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/Output.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/Parameter.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ParameterGroup.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ParameterType.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/PolicyTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/PropertiesMapKeyTypes.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/Resource.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ResourceReferenceFunctions.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/model/ResourceTypeToMessageString.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/Artifact.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/ValidationStructureList.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/HeatResourceUtil.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/HeatStructureUtil.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/manifest/ManifestUtil.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerUtil.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatResourceUtilTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatStructureUtilTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/manifest/ManifestUtilTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerUtilTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManagerTest.java
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.env [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.env [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/network.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/second.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsDaoFactoryImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsDaoImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/UserPermissionsDaoFactoryImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/UserPermissionsDaoImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/servlet/PermissionsFilter.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/servlet/PermissionsFilterTest.java [new file with mode: 0644]

index 6c5984e..7cfd93e 100644 (file)
             <dependency>
                 <groupId>org.projectlombok</groupId>
                 <artifactId>lombok</artifactId>
-                <version>1.16.20</version>
+                <version>1.18.2</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
index d5cd56e..c96ceeb 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,8 +20,6 @@
 
 package org.openecomp.core.utilities.file;
 
-import org.apache.commons.collections4.MapUtils;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -31,111 +29,111 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
+import org.apache.commons.collections4.MapUtils;
+
 public class FileContentHandler {
 
-  private Map<String, byte[]> files = new HashMap<>();
+    private Map<String, byte[]> files = new HashMap<>();
+
+    /**
+     * Gets file content.
+     *
+     * @param fileName the file name
+     * @return the file content
+     */
+    public InputStream getFileContent(String fileName) {
 
-  /**
-   * Gets file content.
-   *
-   * @param fileName the file name
-   * @return the file content
-   */
-  public InputStream getFileContent(String fileName) {
+        byte[] content = files.get(fileName);
+        if (content == null || content.length == 0) {
+            return null;
+        }
 
-    byte[] content = files.get(fileName);
-    if (content == null || content.length == 0) {
-      return null;
+        return new ByteArrayInputStream(content);
     }
 
-    return new ByteArrayInputStream(content);
-  }
-
-  /**
-   * Applies a business logic to a file's content while taking care of all retrieval logic.
-   *
-   * @param fileName name of a file inside this content handler.
-   * @param processor the business logic to work on the file's input stream, which may not be set
-   *                  (check the {@link Optional} if no such file can be found
-   * @param <T> return type, may be {@link java.lang.Void}
-   *
-   * @return result produced by the processor
-   */
-  public <T> T processFileContent(String fileName, Function<Optional<InputStream>, T> processor) {
-
-    // do not throw IOException to mimic the existing uses of getFileContent()
-    try (InputStream contentInputStream = getFileContent(fileName)) {
-      return processor.apply(Optional.ofNullable(contentInputStream));
-    } catch (IOException e) {
-      throw new ProcessingException("Failed to process file: " + fileName, e);
+    /**
+     * Applies a business logic to a file's content while taking care of all retrieval logic.
+     *
+     * @param fileName  name of a file inside this content handler.
+     * @param processor the business logic to work on the file's input stream, which may not be set
+     *                  (check the {@link Optional} if no such file can be found
+     * @param <T>       return type, may be {@link java.lang.Void}
+     * @return result produced by the processor
+     */
+    public <T> T processFileContent(String fileName, Function<Optional<InputStream>, T> processor) {
+
+        // do not throw IOException to mimic the existing uses of getFileContent()
+        try (InputStream contentInputStream = getFileContent(fileName)) {
+            return processor.apply(Optional.ofNullable(contentInputStream));
+        } catch (IOException e) {
+            throw new ProcessingException("Failed to process file: " + fileName, e);
+        }
     }
-  }
 
-  public void addFile(String fileName, byte[] content) {
-    files.put(fileName, content);
-  }
+    public void addFile(String fileName, byte[] content) {
+        files.put(fileName, content);
+    }
 
-  public void addFile(String fileName, InputStream is) {
+    public void addFile(String fileName, InputStream is) {
 
-    files.put(fileName, FileUtils.toByteArray(is));
-  }
+        files.put(fileName, FileUtils.toByteArray(is));
+    }
 
-  public Map<String, byte[]> getFiles() {
-    return files;
-  }
+    public Map<String, byte[]> getFiles() {
+        return files;
+    }
 
-  public void setFiles(Map<String, byte[]> files) {
-    this.files = files;
-  }
+    public void setFiles(Map<String, byte[]> files) {
+        this.files = files;
+    }
 
-  public void setFiles(FileContentHandler extFiles) {
-    extFiles.getFileList().stream()
-        .forEach(fileName -> this.addFile(fileName, extFiles.getFileContent(fileName)));
-  }
+    public void setFiles(FileContentHandler extFiles) {
+        extFiles.getFileList().forEach(fileName -> this.addFile(fileName, extFiles.getFileContent(fileName)));
+    }
 
-  public Set<String> getFileList() {
-    return files.keySet();
-  }
+    public Set<String> getFileList() {
+        return files.keySet();
+    }
 
-  public void putAll(Map<String, byte[]> files) {
-    this.files = files;
-  }
+    public void putAll(Map<String, byte[]> files) {
+        this.files = files;
+    }
 
-  public void addAll(FileContentHandler other) {
-    this.files.putAll(other.files);
-  }
+    public void addAll(FileContentHandler other) {
+        this.files.putAll(other.files);
+    }
 
-  public boolean isEmpty() {
-    return MapUtils.isEmpty(this.files);
-  }
+    public boolean isEmpty() {
+        return MapUtils.isEmpty(this.files);
+    }
 
-  public void remove(String fileName) {
-    files.remove(fileName);
-  }
+    public void remove(String fileName) {
+        files.remove(fileName);
+    }
 
-  public boolean containsFile(String fileName) {
-    return files.containsKey(fileName);
-  }
+    public boolean containsFile(String fileName) {
+        return files.containsKey(fileName);
+    }
 
-  /**
-   * An application-specific runtime exception
-   */
-  private static class ProcessingException extends RuntimeException {
+    /**
+     * An application-specific runtime exception
+     */
+    private static class ProcessingException extends RuntimeException {
 
-    public ProcessingException() {
-      super();
-    }
+        public ProcessingException() {
+            super();
+        }
 
-    public ProcessingException(String message) {
-      super(message);
-    }
+        public ProcessingException(String message) {
+            super(message);
+        }
 
-    public ProcessingException(Throwable cause) {
-      super(cause);
-    }
+        public ProcessingException(Throwable cause) {
+            super(cause);
+        }
 
-    public ProcessingException(String msg, Throwable cause) {
-      super(msg, cause);
+        public ProcessingException(String msg, Throwable cause) {
+            super(msg, cause);
+        }
     }
-  }
 }
index 0d407e2..9c2d539 100644 (file)
     </parent>
 
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.onap.sdc.common</groupId>
             <artifactId>onap-configuration-management-core</artifactId>
index 0367d09..6009172 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes;
 
-import org.apache.commons.lang.math.NumberUtils;
-import org.apache.commons.lang3.ClassUtils;
-
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.commons.lang.math.NumberUtils;
+import org.apache.commons.lang3.ClassUtils;
+
 public enum DefinedHeatParameterTypes {
-  NUMBER("number"),
-  STRING("string"),
-  COMMA_DELIMITED_LIST("comma_delimited_list"),
-  JSON("json"),
-  BOOLEAN("boolean");
-
-  private static Map<String, DefinedHeatParameterTypes> stringToDefinedType = new HashMap<>();
-
-  static {
-    stringToDefinedType = new HashMap<>();
-    for (DefinedHeatParameterTypes definedHeatParameterType : DefinedHeatParameterTypes.values()) {
-      stringToDefinedType.put(definedHeatParameterType.type, definedHeatParameterType);
+    NUMBER("number"),
+    STRING("string"),
+    COMMA_DELIMITED_LIST("comma_delimited_list"),
+    JSON("json"),
+    BOOLEAN("boolean");
+
+    private static Map<String, DefinedHeatParameterTypes> stringToDefinedType;
+
+    static {
+        stringToDefinedType = new HashMap<>();
+        for (DefinedHeatParameterTypes definedHeatParameterType : DefinedHeatParameterTypes.values()) {
+            stringToDefinedType.put(definedHeatParameterType.type, definedHeatParameterType);
+        }
+    }
+
+    private String type;
+
+    DefinedHeatParameterTypes(String type) {
+        this.type = type;
     }
-  }
-
-  private String type;
-
-  DefinedHeatParameterTypes(String type) {
-    this.type = type;
-  }
-
-  public static DefinedHeatParameterTypes findByHeatResource(String type) {
-    return stringToDefinedType.get(type);
-  }
-
-  /**
-   * Is value is from given type boolean.
-   *
-   * @param value         the value
-   * @param parameterType the parameter type
-   * @return the boolean
-   */
-  public static boolean isValueIsFromGivenType(Object value, String parameterType) {
-    DefinedHeatParameterTypes definedType = findByHeatResource(parameterType);
-
-    if (Objects.nonNull(definedType)) {
-      switch (definedType) {
-        case NUMBER:
-          return NumberUtils.isNumber(String.valueOf(value));
-
-        case BOOLEAN:
-          return HeatBoolean.isValueBoolean(value);
-
-        case COMMA_DELIMITED_LIST:
-          return isValueCommaDelimitedList(value);
-
-        case JSON:
-          return isValueJson(value);
-
-        case STRING:
-          return isValueString(value);
-        default:
-      }
+
+    public static DefinedHeatParameterTypes findByHeatResource(String type) {
+        return stringToDefinedType.get(type);
     }
 
-    return false;
-  }
+    /**
+     * Is value is from given type boolean.
+     *
+     * @param value         the value
+     * @param parameterType the parameter type
+     * @return the boolean
+     */
+    public static boolean isValueIsFromGivenType(Object value, String parameterType) {
+        DefinedHeatParameterTypes definedType = findByHeatResource(parameterType);
+
+        if (Objects.nonNull(definedType)) {
+            switch (definedType) {
+                case NUMBER:
+                    return NumberUtils.isNumber(String.valueOf(value));
+
+                case BOOLEAN:
+                    return HeatBoolean.isValueBoolean(value);
+
+                case COMMA_DELIMITED_LIST:
+                    return isValueCommaDelimitedList(value);
+
+                case JSON:
+                    return isValueJson(value);
+
+                case STRING:
+                    return isValueString(value);
+                default:
+            }
+        }
+
+        return false;
+    }
 
-  public static boolean isNovaServerEnvValueIsFromRightType(Object value) {
-    return isValueIsFromGivenType(value, COMMA_DELIMITED_LIST.getType())
-        || isValueIsFromGivenType(value, STRING.getType());
-  }
+    public static boolean isNovaServerEnvValueIsFromRightType(Object value) {
+        return isValueIsFromGivenType(value, COMMA_DELIMITED_LIST.getType())
+                || isValueIsFromGivenType(value, STRING.getType());
+    }
 
-  private static boolean isValueCommaDelimitedList(Object value) {
-    return  value instanceof List
-            || String.valueOf(value).contains(",")
-            || isValueIsFromGivenType(value, DefinedHeatParameterTypes.STRING.type);
-  }
+    private static boolean isValueCommaDelimitedList(Object value) {
+        return value instanceof List
+                || String.valueOf(value).contains(",")
+                || isValueIsFromGivenType(value, DefinedHeatParameterTypes.STRING.type);
+    }
 
-  private static boolean isValueString(Object value) {
-    return value instanceof String
-            || ClassUtils.isPrimitiveOrWrapper(value.getClass());
-  }
+    private static boolean isValueString(Object value) {
+        return value instanceof String
+                || ClassUtils.isPrimitiveOrWrapper(value.getClass());
+    }
 
-  private static boolean isValueJson(Object value) {
-    return (value instanceof Map) || (value instanceof List);
-  }
+    private static boolean isValueJson(Object value) {
+        return (value instanceof Map) || (value instanceof List);
+    }
 
-  public static boolean isEmptyValueInEnv(Object value) {
-    return Objects.isNull(value);
-  }
+    public static boolean isEmptyValueInEnv(Object value) {
+        return Objects.isNull(value);
+    }
 
-  public String getType() {
-    return type;
-  }
+    public String getType() {
+        return type;
+    }
 
-  public void setType(String type) {
-    this.type = type;
-  }
+    public void setType(String type) {
+        this.type = type;
+    }
 }
index 5753fa2..19fa2d5 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
-*/
+ */
 
 package org.openecomp.sdc.heat.datatypes;
 
+import java.util.HashSet;
+import java.util.Set;
+
 import org.openecomp.sdc.common.errors.CoreException;
 import org.openecomp.sdc.common.errors.ErrorCategory;
 import org.openecomp.sdc.common.errors.ErrorCode;
@@ -23,77 +26,75 @@ import org.openecomp.sdc.heat.services.ErrorCodes;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 
-import java.util.HashSet;
-import java.util.Set;
-
 public class HeatBoolean {
 
-  private static Set<Object> heatFalse;
-  private static Set<Object> heatTrue;
-  private static final  Logger LOG = LoggerFactory.getLogger(HeatBoolean.class.getName());
-
-  private HeatBoolean() {
-    //Utility classes, which are a collection of static members, are not meant to be instantiated
-  }
-  static {
+    private static Set<Object> heatFalse;
+    private static Set<Object> heatTrue;
+    private static final Logger LOG = LoggerFactory.getLogger(HeatBoolean.class.getName());
 
+    private HeatBoolean() {
+        //Utility classes, which are a collection of static members, are not meant to be instantiated
+    }
 
-    heatFalse = new HashSet<>();
-    heatFalse.add("f");
-    heatFalse.add(false);
-    heatFalse.add("false");
-    heatFalse.add("off");
-    heatFalse.add("n");
-    heatFalse.add("no");
-    heatFalse.add(0);
+    static {
 
-    heatTrue = new HashSet<>();
-    heatTrue.add("t");
-    heatTrue.add(true);
-    heatTrue.add("true");
-    heatTrue.add("on");
-    heatTrue.add("y");
-    heatTrue.add("yes");
-    heatTrue.add(1);
 
-  }
+        heatFalse = new HashSet<>();
+        heatFalse.add("f");
+        heatFalse.add(false);
+        heatFalse.add("false");
+        heatFalse.add("off");
+        heatFalse.add("n");
+        heatFalse.add("no");
+        heatFalse.add(0);
 
-  /**
-   * Eval boolean.
-   *
-   * @param value the value
-   * @return the boolean
-   */
-  public static Boolean eval(Object value) {
+        heatTrue = new HashSet<>();
+        heatTrue.add("t");
+        heatTrue.add(true);
+        heatTrue.add("true");
+        heatTrue.add("on");
+        heatTrue.add("y");
+        heatTrue.add("yes");
+        heatTrue.add(1);
 
-    if (value instanceof String) {
-      value = ((String) value).toLowerCase();
-    }
-    if (heatFalse.contains(value)) {
-      return false;
-    } else if (heatTrue.contains(value)) {
-      return true;
-    } else {
-      throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withId(ErrorCodes.INVALID_BOOLEAN)
-          .withCategory(ErrorCategory.APPLICATION)
-          .withMessage("Invalid boolean value [" + value + "].").build());
     }
 
-  }
+    /**
+     * Eval boolean.
+     *
+     * @param value the value
+     * @return the boolean
+     */
+    public static Boolean eval(Object value) {
+
+        if (value instanceof String) {
+            value = ((String) value).toLowerCase();
+        }
+        if (heatFalse.contains(value)) {
+            return false;
+        } else if (heatTrue.contains(value)) {
+            return true;
+        } else {
+            throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withId(ErrorCodes.INVALID_BOOLEAN)
+                    .withCategory(ErrorCategory.APPLICATION)
+                    .withMessage("Invalid boolean value [" + value + "].").build());
+        }
+
+    }
 
-  /**
-   * Is value boolean boolean.
-   *
-   * @param value the value
-   * @return the boolean
-   */
-  public static boolean isValueBoolean(Object value) {
-    try {
-      eval(value);
-      return true;
-    } catch (CoreException ce) {
-      LOG.error("Failed to evaluate value as boolean: {}", value, ce);
-      return false;
+    /**
+     * Is value boolean boolean.
+     *
+     * @param value the value
+     * @return the boolean
+     */
+    public static boolean isValueBoolean(Object value) {
+        try {
+            eval(value);
+            return true;
+        } catch (CoreException ce) {
+            LOG.error("Failed to evaluate value as boolean: {}", value, ce);
+            return false;
+        }
     }
-  }
 }
index 2bc549c..35276b4 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.manifest;
 
-import org.apache.commons.collections4.CollectionUtils;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import java.util.function.Predicate;
 
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.collections4.CollectionUtils;
+
+@Data
 public class FileData {
 
     protected static final Set<Type> heatFileTypes =
-        new HashSet<>(Arrays.asList(Type.HEAT, Type.HEAT_NET, Type.HEAT_VOL));
+            new HashSet<>(Arrays.asList(Type.HEAT, Type.HEAT_NET, Type.HEAT_VOL));
+
+    @Getter(AccessLevel.NONE)
+    @Setter(AccessLevel.NONE)
     private Boolean isBase;
     private String parentFile;
     private String file;
@@ -40,8 +53,8 @@ public class FileData {
     }
 
     public static boolean isHeatFile(Type type) {
-    return heatFileTypes.contains(type);
-  }
+        return heatFileTypes.contains(type);
+    }
 
     public Boolean getBase() {
         return isBase;
@@ -51,43 +64,11 @@ public class FileData {
         isBase = base;
     }
 
-    public String getFile() {
-        return file;
-    }
-
-    public void setFile(String file) {
-        this.file = file;
-    }
-
-    public String getParentFile() {
-        return parentFile;
-    }
-
-    public void setParentFile(String parentFile) {
-    this.parentFile = parentFile;
-  }
-
-    public Type getType() {
-    return type;
-  }
-
-    public void setType(Type type) {
-    this.type = type;
-  }
-
-    public List<FileData> getData() {
-        return data;
-    }
-
-    public void setData(List<FileData> data) {
-        this.data = data;
-    }
-
     /**
-    * Add file data.
-    *
-    * @param data the data
-    */
+     * Add file data.
+     *
+     * @param data the data
+     */
     public void addFileData(FileData data) {
         if (CollectionUtils.isEmpty(this.data)) {
             this.data = new ArrayList<>();
@@ -95,40 +76,32 @@ public class FileData {
         this.data.add(data);
     }
 
+    @AllArgsConstructor
+    @Getter
     public enum Type {
-
-    HEAT("HEAT"),
-    HEAT_ENV("HEAT_ENV"),
-    HEAT_NET("HEAT_NET"),
-    HEAT_VOL("HEAT_VOL"),
-    CHEF("CHEF"),
-    PUPPET("PUPPET"),
-    SHELL("SHELL"),
-    YANG("YANG"),
-    YANG_XML("YANG_XML"),
-    BPEL("BPEL"),
-    DG_XML("DG_XML"),
-    MURANO_PKG("MURANO_PKG"),
-    VENDOR_LICENSE("VENDOR_LICENSE"),
-    VF_LICENSE("VF_LICENSE"),
-    OTHER("OTHER");
+        HEAT("HEAT"),
+        HEAT_ENV("HEAT_ENV"),
+        HEAT_NET("HEAT_NET"),
+        HEAT_VOL("HEAT_VOL"),
+        CHEF("CHEF"),
+        PUPPET("PUPPET"),
+        SHELL("SHELL"),
+        YANG("YANG"),
+        YANG_XML("YANG_XML"),
+        BPEL("BPEL"),
+        DG_XML("DG_XML"),
+        MURANO_PKG("MURANO_PKG"),
+        VENDOR_LICENSE("VENDOR_LICENSE"),
+        VF_LICENSE("VF_LICENSE"),
+        OTHER("OTHER");
 
         private String displayName;
 
-        Type(String displayName) {
-            this.displayName = displayName;
-        }
-
-        public String getDisplayName() {
-            return displayName;
-        }
-
         public static boolean isArtifact(Type fileType) {
-            return !Arrays.asList(HEAT,HEAT_ENV, HEAT_VOL).contains(fileType);
+            return !Arrays.asList(HEAT, HEAT_ENV, HEAT_VOL).contains(fileType);
         }
 
-        public static boolean canBeAssociated(Type fileType)
-        {
+        public static boolean canBeAssociated(Type fileType) {
             return HEAT_VOL == fileType;
         }
     }
index d897171..107b060 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,42 +22,13 @@ package org.openecomp.sdc.heat.datatypes.manifest;
 
 import java.util.List;
 
-public class ManifestContent {
-
-  String name;
-  String description;
-  String version;
-  List<FileData> data;
-
-  public String getName() {
-    return name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public String getDescription() {
-    return description;
-  }
+import lombok.Data;
 
-  public void setDescription(String description) {
-    this.description = description;
-  }
-
-  public String getVersion() {
-    return version;
-  }
-
-  public void setVersion(String version) {
-    this.version = version;
-  }
-
-  public List<FileData> getData() {
-    return data;
-  }
+@Data
+public class ManifestContent {
 
-  public void setData(List<FileData> data) {
-    this.data = data;
-  }
+    private String name;
+    private String description;
+    private String version;
+    private List<FileData> data;
 }
index 607f52a..6a62740 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.manifest;
 
-public class ManifestFile {
-
-  String name;
-  ManifestContent content;
-
-  public String getName() {
-    return name;
-  }
+import lombok.Data;
 
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public ManifestContent getContent() {
-    return content;
-  }
+@Data
+public class ManifestFile {
 
-  public void setContent(ManifestContent content) {
-    this.content = content;
-  }
+    private String name;
+    private ManifestContent content;
 }
index ebbb064..b3658bf 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,56 +23,35 @@ package org.openecomp.sdc.heat.datatypes.model;
 import java.util.ArrayList;
 import java.util.List;
 
-public class Constraint {
-  private Object[] length;
-  private Integer[] range;
-  private List<Object> validValues;
-  private String pattern;
-
-  public Constraint() {
-  }
-
-  public Integer[] getRange() {
-    return range;
-  }
+import lombok.AccessLevel;
+import lombok.Data;
+import lombok.Setter;
 
-  public void setRange(Integer[] inRange) {
-    this.range = new Integer[]{inRange[0], inRange[1]};
-  }
-
-  public List<Object> getValidValues() {
-    return validValues;
-  }
+@Data
+public class Constraint {
 
-  public void setValidValues(List<Object> validValues) {
-    this.validValues = validValues;
-  }
+    private Object[] length;
+    @Setter(AccessLevel.NONE)
+    private Integer[] range;
+    private List<Object> validValues;
+    private String pattern;
 
-  /**
-   * Add valid value.
-   *
-   * @param validValue the valid value
-   */
-  public void addValidValue(Object validValue) {
-    if (this.validValues == null) {
-      this.validValues = new ArrayList<>();
+    public Constraint() {
     }
-    validValues.add(validValue);
-  }
 
-  public Object[] getLength() {
-    return length;
-  }
-
-  public void setLength(Object[] length) {
-    this.length = length;
-  }
-
-  public String getPattern() {
-    return pattern;
-  }
+    public void setRange(Integer[] inRange) {
+        this.range = new Integer[] {inRange[0], inRange[1]};
+    }
 
-  public void setPattern(String pattern) {
-    this.pattern = pattern;
-  }
+    /**
+     * Add valid value.
+     *
+     * @param validValue the valid value
+     */
+    public void addValidValue(Object validValue) {
+        if (this.validValues == null) {
+            this.validValues = new ArrayList<>();
+        }
+        validValues.add(validValue);
+    }
 }
index 47eaefa..7538f11 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -25,45 +25,45 @@ import java.util.Map;
 import java.util.Objects;
 
 public enum ContrailResourceTypes {
-  ATTACH_POLICY("OS::Contrail::AttachPolicy"),
-  SERVICE_INSTANCE("OS::Contrail::ServiceInstance"),
-  SERVICE_TEMPLATE("OS::Contrail::ServiceTemplate"),
-  NETWORK_POLICY("OS::Contrail::NetworkPolicy"),
-  VIRTUAL_NETWORK("OS::Contrail::VirtualNetwork");
+    ATTACH_POLICY("OS::Contrail::AttachPolicy"),
+    SERVICE_INSTANCE("OS::Contrail::ServiceInstance"),
+    SERVICE_TEMPLATE("OS::Contrail::ServiceTemplate"),
+    NETWORK_POLICY("OS::Contrail::NetworkPolicy"),
+    VIRTUAL_NETWORK("OS::Contrail::VirtualNetwork");
 
-  private static Map<String, ContrailResourceTypes> stringToContrailResourceTypeMap;
+    private static Map<String, ContrailResourceTypes> stringToContrailResourceTypeMap;
 
-  static {
-    stringToContrailResourceTypeMap = new HashMap<>();
+    static {
+        stringToContrailResourceTypeMap = new HashMap<>();
 
-    for (ContrailResourceTypes type : ContrailResourceTypes.values()) {
-      stringToContrailResourceTypeMap.put(type.contrailResourceType, type);
+        for (ContrailResourceTypes type : ContrailResourceTypes.values()) {
+            stringToContrailResourceTypeMap.put(type.contrailResourceType, type);
+        }
     }
-  }
 
-  private String contrailResourceType;
+    private String contrailResourceType;
 
-  ContrailResourceTypes(String contrailResourceType) {
-    this.contrailResourceType = contrailResourceType;
-  }
+    ContrailResourceTypes(String contrailResourceType) {
+        this.contrailResourceType = contrailResourceType;
+    }
 
-  /**
-   * Find by contrail v 2 resource contrail resource types.
-   *
-   * @param contrailV2Resource the contrail v 2 resource
-   * @return the contrail resource types
-   */
-  public static ContrailResourceTypes findByContrailV2Resource(String contrailV2Resource) {
-    return contrailV2Resource == null ? null
-        : stringToContrailResourceTypeMap.get(contrailV2Resource);
+    /**
+     * Find by contrail v 2 resource contrail resource types.
+     *
+     * @param contrailV2Resource the contrail v 2 resource
+     * @return the contrail resource types
+     */
+    public static ContrailResourceTypes findByContrailV2Resource(String contrailV2Resource) {
+        return contrailV2Resource == null ? null
+                : stringToContrailResourceTypeMap.get(contrailV2Resource);
 
-  }
+    }
 
-  public static boolean isResourceTypeContrail(String resourceType) {
-    return Objects.nonNull(findByContrailV2Resource(resourceType));
-  }
+    public static boolean isResourceTypeContrail(String resourceType) {
+        return Objects.nonNull(findByContrailV2Resource(resourceType));
+    }
 
-  public String getContrailResourceType() {
-    return contrailResourceType;
-  }
+    public String getContrailResourceType() {
+        return contrailResourceType;
+    }
 }
index ff70609..40253ad 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -25,36 +25,36 @@ import java.util.Map;
 import java.util.Objects;
 
 public enum ContrailV2ResourceTypes {
-  NETWROK_IPAM("OS::ContrailV2::NetworkIpam"),
-  VIRTUAL_NETWORK("OS::ContrailV2::VirtualNetwork"),
-  NETWORK_POLICY("OS::ContrailV2::NetworkPolicy"),
-  VIRTUAL_MACHINE_INTERFACE("OS::ContrailV2::VirtualMachineInterface");
+    NETWROK_IPAM("OS::ContrailV2::NetworkIpam"),
+    VIRTUAL_NETWORK("OS::ContrailV2::VirtualNetwork"),
+    NETWORK_POLICY("OS::ContrailV2::NetworkPolicy"),
+    VIRTUAL_MACHINE_INTERFACE("OS::ContrailV2::VirtualMachineInterface");
 
-  private static Map<String, ContrailV2ResourceTypes> stringToContrailV2ResourceTypeMap;
+    private static Map<String, ContrailV2ResourceTypes> stringToContrailV2ResourceTypeMap;
 
-  static {
-    stringToContrailV2ResourceTypeMap = new HashMap<>();
+    static {
+        stringToContrailV2ResourceTypeMap = new HashMap<>();
 
-    for (ContrailV2ResourceTypes type : ContrailV2ResourceTypes.values()) {
-      stringToContrailV2ResourceTypeMap.put(type.contrailV2ResourceType, type);
+        for (ContrailV2ResourceTypes type : ContrailV2ResourceTypes.values()) {
+            stringToContrailV2ResourceTypeMap.put(type.contrailV2ResourceType, type);
+        }
     }
-  }
 
-  private String contrailV2ResourceType;
+    private String contrailV2ResourceType;
 
-  ContrailV2ResourceTypes(String contrailV2ResourceType) {
-    this.contrailV2ResourceType = contrailV2ResourceType;
-  }
+    ContrailV2ResourceTypes(String contrailV2ResourceType) {
+        this.contrailV2ResourceType = contrailV2ResourceType;
+    }
 
-  public static ContrailV2ResourceTypes findByContrailV2Resource(String contrailV2Resource) {
-    return stringToContrailV2ResourceTypeMap.get(contrailV2Resource);
-  }
+    public static ContrailV2ResourceTypes findByContrailV2Resource(String contrailV2Resource) {
+        return stringToContrailV2ResourceTypeMap.get(contrailV2Resource);
+    }
 
-  public static boolean isResourceTypeContrailV2(String resourceType) {
-    return Objects.nonNull(findByContrailV2Resource(resourceType));
-  }
+    public static boolean isResourceTypeContrailV2(String resourceType) {
+        return Objects.nonNull(findByContrailV2Resource(resourceType));
+    }
 
-  public String getContrailV2ResourceType() {
-    return contrailV2ResourceType;
-  }
+    public String getContrailV2ResourceType() {
+        return contrailV2ResourceType;
+    }
 }
index b2f45d0..db5121b 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,14 +22,10 @@ package org.openecomp.sdc.heat.datatypes.model;
 
 import java.util.Map;
 
-public class Environment {
-  Map<String, Object> parameters;
+import lombok.Data;
 
-  public Map<String, Object> getParameters() {
-    return parameters;
-  }
+@Data
+public class Environment {
 
-  public void setParameters(Map<String, Object> parameters) {
-    this.parameters = parameters;
-  }
+    private Map<String, Object> parameters;
 }
index 294bb9e..3387c43 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,68 +23,16 @@ package org.openecomp.sdc.heat.datatypes.model;
 import java.util.List;
 import java.util.Map;
 
-public class HeatOrchestrationTemplate {
-  String heat_template_version;
-  String description;
-  List<ParameterGroup> parameter_groups;
-  Map<String, Parameter> parameters;
-  Map<String, Resource> resources;
-  Map<String, Output> outputs;
-  Map<String, Object> conditions;
-
-  public String getHeat_template_version() {
-    return heat_template_version;
-  }
-
-  public void setHeat_template_version(String heat_template_version) {
-    this.heat_template_version = heat_template_version;
-  }
-
-  public String getDescription() {
-    return description;
-  }
-
-  public void setDescription(String description) {
-    this.description = description;
-  }
-
-  public List<ParameterGroup> getParameter_groups() {
-    return parameter_groups;
-  }
-
-  public void setParameter_groups(List<ParameterGroup> parameter_groups) {
-    this.parameter_groups = parameter_groups;
-  }
+import lombok.Data;
 
-  public Map<String, Parameter> getParameters() {
-    return parameters;
-  }
-
-  public void setParameters(Map<String, Parameter> parameters) {
-    this.parameters = parameters;
-  }
-
-  public Map<String, Resource> getResources() {
-    return resources;
-  }
-
-  public void setResources(Map<String, Resource> resources) {
-    this.resources = resources;
-  }
-
-  public Map<String, Output> getOutputs() {
-    return outputs;
-  }
-
-  public void setOutputs(Map<String, Output> outputs) {
-    this.outputs = outputs;
-  }
-
-  public Map<String, Object> getConditions() {
-    return conditions;
-  }
+@Data
+public class HeatOrchestrationTemplate {
 
-  public void setConditions(Map<String, Object> conditions) {
-    this.conditions = conditions;
-  }
+    private String heat_template_version;
+    private String description;
+    private List<ParameterGroup> parameter_groups;
+    private Map<String, Parameter> parameters;
+    private Map<String, Resource> resources;
+    private Map<String, Output> outputs;
+    private Map<String, Object> conditions;
 }
index c822a78..7ed8203 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,39 +23,33 @@ package org.openecomp.sdc.heat.datatypes.model;
 import java.util.ArrayList;
 import java.util.List;
 
-public enum HeatPseudoParameters {
-  OS_STACK_NAME("OS::stack_name"),
-  OS_STACK_ID("OS::stack_id"),
-  OS_PROJECT_ID("OS::project_id");
-
-  private static List<String> pseudoParameterNames;
+import lombok.Getter;
 
-  static {
-    pseudoParameterNames = new ArrayList<>();
-    for (HeatPseudoParameters parameter : HeatPseudoParameters.values()) {
-      pseudoParameterNames.add(parameter.getPseudoParameter());
+@Getter
+public enum HeatPseudoParameters {
+    OS_STACK_NAME("OS::stack_name"),
+    OS_STACK_ID("OS::stack_id"),
+    OS_PROJECT_ID("OS::project_id");
+
+    private static List<String> pseudoParameterNames;
+    private String pseudoParameter;
+
+    static {
+        pseudoParameterNames = new ArrayList<>();
+        for (HeatPseudoParameters parameter : HeatPseudoParameters.values()) {
+            pseudoParameterNames.add(parameter.getPseudoParameter());
+        }
     }
-  }
-
-  private String pseudoParameter;
-
-  HeatPseudoParameters(String pseudoParameter) {
-    this.pseudoParameter = pseudoParameter;
-  }
 
-  public static List<String> getPseudoParameterNames() {
-    return pseudoParameterNames;
-  }
-
-  public static void setPseudoParameterNames(List<String> pseudoParameterNames) {
-    HeatPseudoParameters.pseudoParameterNames = pseudoParameterNames;
-  }
+    HeatPseudoParameters(String pseudoParameter) {
+        this.pseudoParameter = pseudoParameter;
+    }
 
-  public String getPseudoParameter() {
-    return pseudoParameter;
-  }
+    public static List<String> getPseudoParameterNames() {
+        return pseudoParameterNames;
+    }
 
-  public void setPseudoParameter(String pseudoParameter) {
-    this.pseudoParameter = pseudoParameter;
-  }
+    public static void setPseudoParameterNames(List<String> pseudoParameterNames) {
+        HeatPseudoParameters.pseudoParameterNames = pseudoParameterNames;
+    }
 }
index b73fe38..a9598eb 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -27,93 +27,85 @@ import java.util.Map;
 import java.util.Objects;
 
 public enum HeatResourcesTypes {
-  NOVA_SERVER_RESOURCE_TYPE("OS::Nova::Server"),
-  NOVA_SERVER_GROUP_RESOURCE_TYPE("OS::Nova::ServerGroup"),
-  NEUTRON_PORT_RESOURCE_TYPE("OS::Neutron::Port"),
-  CONTRAIL_NETWORK_RULE_RESOURCE_TYPE("OS::Contrail::NetworkPolicy"),
-  CONTRAIL_NETWORK_ATTACH_RULE_RESOURCE_TYPE("OS::Contrail::AttachPolicy"),
-  CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE("OS::Contrail::VirtualNetwork"),
-  CINDER_VOLUME_RESOURCE_TYPE("OS::Cinder::Volume"),
-  CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE("OS::Cinder::VolumeAttachment"),
-  NEUTRON_NET_RESOURCE_TYPE("OS::Neutron::Net"),
-  NEUTRON_SUBNET_RESOURCE_TYPE("OS::Neutron::Subnet"),
-  NEUTRON_SECURITY_GROUP_RESOURCE_TYPE("OS::Neutron::SecurityGroup"),
-  HEAT_SOFTWARE_CONFIG_TYPE("OS::Heat::SoftwareConfig"),
-  HEAT_CLOUD_CONFIG_TYPE("OS::Heat::CloudConfig"),
-  HEAT_MULTIPART_MIME_TYPE("OS::Heat::MultipartMime"),
-  HEAT_CONTRAIL_NETWORK_IPAM_TYPE("OS::Contrail::NetworkIpam"),
-  CONTRAIL_V2_VIRTUAL_NETWORK_RESOURCE_TYPE("OS::ContrailV2::VirtualNetwork"),
-  CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE("OS::ContrailV2::VirtualMachineInterface"),
-  CONTRAIL_SERVICE_TEMPLATE("OS::Contrail::ServiceTemplate"),
-  CONTRAIL_SERVICE_INSTANCE("OS::Contrail::ServiceInstance"),
-  CONTRAIL_V2_NETWORK_RULE_RESOURCE_TYPE("OS::ContrailV2::NetworkPolicy"),
-  RESOURCE_GROUP_RESOURCE_TYPE("OS::Heat::ResourceGroup");
-
-  private static Map<String, HeatResourcesTypes> stringToHeatResourceTypeMap;
-
-  static {
-    stringToHeatResourceTypeMap = new HashMap<>();
-
-    for (HeatResourcesTypes type : HeatResourcesTypes.values()) {
-      stringToHeatResourceTypeMap.put(type.heatResource, type);
+    NOVA_SERVER_RESOURCE_TYPE("OS::Nova::Server"),
+    NOVA_SERVER_GROUP_RESOURCE_TYPE("OS::Nova::ServerGroup"),
+    NEUTRON_PORT_RESOURCE_TYPE("OS::Neutron::Port"),
+    CONTRAIL_NETWORK_RULE_RESOURCE_TYPE("OS::Contrail::NetworkPolicy"),
+    CONTRAIL_NETWORK_ATTACH_RULE_RESOURCE_TYPE("OS::Contrail::AttachPolicy"),
+    CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE("OS::Contrail::VirtualNetwork"),
+    CINDER_VOLUME_RESOURCE_TYPE("OS::Cinder::Volume"),
+    CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE("OS::Cinder::VolumeAttachment"),
+    NEUTRON_NET_RESOURCE_TYPE("OS::Neutron::Net"),
+    NEUTRON_SUBNET_RESOURCE_TYPE("OS::Neutron::Subnet"),
+    NEUTRON_SECURITY_GROUP_RESOURCE_TYPE("OS::Neutron::SecurityGroup"),
+    HEAT_SOFTWARE_CONFIG_TYPE("OS::Heat::SoftwareConfig"),
+    HEAT_CLOUD_CONFIG_TYPE("OS::Heat::CloudConfig"),
+    HEAT_MULTIPART_MIME_TYPE("OS::Heat::MultipartMime"),
+    HEAT_CONTRAIL_NETWORK_IPAM_TYPE("OS::Contrail::NetworkIpam"),
+    CONTRAIL_V2_VIRTUAL_NETWORK_RESOURCE_TYPE("OS::ContrailV2::VirtualNetwork"),
+    CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE("OS::ContrailV2::VirtualMachineInterface"),
+    CONTRAIL_SERVICE_TEMPLATE("OS::Contrail::ServiceTemplate"),
+    CONTRAIL_SERVICE_INSTANCE("OS::Contrail::ServiceInstance"),
+    CONTRAIL_V2_NETWORK_RULE_RESOURCE_TYPE("OS::ContrailV2::NetworkPolicy"),
+    RESOURCE_GROUP_RESOURCE_TYPE("OS::Heat::ResourceGroup");
+
+    private static Map<String, HeatResourcesTypes> stringToHeatResourceTypeMap;
+    private String heatResource;
+
+    static {
+        stringToHeatResourceTypeMap = new HashMap<>();
+
+        for (HeatResourcesTypes type : HeatResourcesTypes.values()) {
+            stringToHeatResourceTypeMap.put(type.heatResource, type);
+        }
     }
-  }
-
-  private String heatResource;
-
-
-  HeatResourcesTypes(String heatResource) {
-    this.heatResource = heatResource;
-  }
-
-  public static HeatResourcesTypes findByHeatResource(String heatResource) {
-    return stringToHeatResourceTypeMap.get(heatResource);
-  }
-
-  public static boolean isResourceTypeValid(String resourceType) {
-    return Objects.nonNull(findByHeatResource(resourceType));
-  }
 
-  /**
-   * Is resource expected to be exposed boolean.
-   *
-   * @param resourceType the resource type
-   * @return the boolean
-   */
-  public static boolean isResourceExpectedToBeExposed(String resourceType) {
-    //todo - check
-    return (resourceType.equals(NOVA_SERVER_GROUP_RESOURCE_TYPE.getHeatResource())
-        || resourceType.equals(CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource())
-        || resourceType.equals(NEUTRON_NET_RESOURCE_TYPE.getHeatResource())
-        || resourceType.equals(CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
-        || resourceType.equals(NEUTRON_SECURITY_GROUP_RESOURCE_TYPE.getHeatResource())
-      );
-  }
-
-  /**
-   * Gets list for resource type.
-   *
-   * @param types the types
-   * @return the list for resource type
-   */
-  public static Map<HeatResourcesTypes, List<String>> getListForResourceType(
-      HeatResourcesTypes... types) {
-    Map<HeatResourcesTypes, List<String>> result = new HashMap<>();
-
-    for (HeatResourcesTypes type : types) {
-      result.put(type, new ArrayList<>());
+    HeatResourcesTypes(String heatResource) {
+        this.heatResource = heatResource;
     }
 
-    return result;
-  }
+    public static HeatResourcesTypes findByHeatResource(String heatResource) {
+        return stringToHeatResourceTypeMap.get(heatResource);
+    }
 
-  public String getHeatResource() {
+    public static boolean isResourceTypeValid(String resourceType) {
+        return Objects.nonNull(findByHeatResource(resourceType));
+    }
 
-    return heatResource;
-  }
+    /**
+     * Is resource expected to be exposed boolean.
+     *
+     * @param resourceType the resource type
+     * @return the boolean
+     */
+    public static boolean isResourceExpectedToBeExposed(String resourceType) {
+        //todo - check
+        return (resourceType.equals(NOVA_SERVER_GROUP_RESOURCE_TYPE.getHeatResource())
+                || resourceType.equals(CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource())
+                || resourceType.equals(NEUTRON_NET_RESOURCE_TYPE.getHeatResource())
+                || resourceType.equals(CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
+                || resourceType.equals(NEUTRON_SECURITY_GROUP_RESOURCE_TYPE.getHeatResource())
+        );
+    }
 
-  public void setHeatResource(String heatResource) {
-    this.heatResource = heatResource;
-  }
+    /**
+     * Gets list for resource type.
+     *
+     * @param types the types
+     * @return the list for resource type
+     */
+    public static Map<HeatResourcesTypes, List<String>> getListForResourceType(
+            HeatResourcesTypes... types) {
+        Map<HeatResourcesTypes, List<String>> result = new HashMap<>();
+
+        for (HeatResourcesTypes type : types) {
+            result.put(type, new ArrayList<>());
+        }
+
+        return result;
+    }
 
+    public String getHeatResource() {
+        return heatResource;
+    }
 }
index 8222edd..343205d 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.model;
 
-public class Output {
-  String description;
-  Object value;
-
-  public String getDescription() {
-    return description;
-  }
+import lombok.Data;
 
-  public void setDescription(String description) {
-    this.description = description;
-  }
-
-  public Object getValue() {
-    return value;
-  }
+@Data
+public class Output {
 
-  public void setValue(Object value) {
-    this.value = value;
-  }
+    String description;
+    Object value;
 }
index d419738..81372aa 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,68 +23,16 @@ package org.openecomp.sdc.heat.datatypes.model;
 import java.util.List;
 import java.util.Map;
 
-public class Parameter {
-  String type;
-  String label;
-  String description;
-  Object _default;
-  boolean hidden;
-  List<Map<String, Object>> constraints;
-  boolean immutable;
-
-  public String getType() {
-    return type;
-  }
-
-  public void setType(String type) {
-    this.type = type;
-  }
-
-  public String getLabel() {
-    return label;
-  }
-
-  public void setLabel(String label) {
-    this.label = label;
-  }
-
-  public String getDescription() {
-    return description;
-  }
-
-  public void setDescription(String description) {
-    this.description = description;
-  }
+import lombok.Data;
 
-  public Object get_default() {
-    return _default;
-  }
-
-  public void set_default(Object _default) {
-    this._default = _default;
-  }
-
-  public boolean isHidden() {
-    return hidden;
-  }
-
-  public void setHidden(boolean hidden) {
-    this.hidden = hidden;
-  }
-
-  public List<Map<String, Object>> getConstraints() {
-    return constraints;
-  }
-
-  public void setConstraints(List<Map<String, Object>> constraints) {
-    this.constraints = constraints;
-  }
-
-  public boolean isImmutable() {
-    return immutable;
-  }
+@Data
+public class Parameter {
 
-  public void setImmutable(boolean immutable) {
-    this.immutable = immutable;
-  }
+    private String type;
+    private String label;
+    private String description;
+    private Object _default;
+    private boolean hidden;
+    private List<Map<String, Object>> constraints;
+    private boolean immutable;
 }
index 8ab066f..4595466 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,32 +22,12 @@ package org.openecomp.sdc.heat.datatypes.model;
 
 import java.util.List;
 
-public class ParameterGroup {
-  String label;
-  String description;
-  List<String> parameters;
-
-  public String getLabel() {
-    return label;
-  }
-
-  public void setLabel(String label) {
-    this.label = label;
-  }
+import lombok.Data;
 
-  public String getDescription() {
-    return description;
-  }
-
-  public void setDescription(String description) {
-    this.description = description;
-  }
-
-  public List<String> getParameters() {
-    return parameters;
-  }
+@Data
+public class ParameterGroup {
 
-  public void setParameters(List<String> parameters) {
-    this.parameters = parameters;
-  }
+    private String label;
+    private String description;
+    private List<String> parameters;
 }
index 37c430e..3f6dc9f 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.model;
 
-public enum ParameterType {
-
-  STRING("string"),
-  NUMBER("number"),
-  JSON("json"),
-  BOOLEAN("boolean"),
-  COMMA_DELIMITED_LIST("comma_delimited_list");
-
-  private String displayName;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
 
-  ParameterType(String displayName) {
-    this.displayName = displayName;
-  }
-
-  public String getDisplayName() {
-    return displayName;
-  }
+@AllArgsConstructor
+@Getter
+public enum ParameterType {
 
+    STRING("string"),
+    NUMBER("number"),
+    JSON("json"),
+    BOOLEAN("boolean"),
+    COMMA_DELIMITED_LIST("comma_delimited_list");
 
+    private String displayName;
 }
index 3195e61..77a7cd4 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -24,38 +24,31 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
 public enum PolicyTypes {
-  AFFINITY("affinity"),
-  ANTI_AFFINITY("anti-affinity");
+    AFFINITY("affinity"),
+    ANTI_AFFINITY("anti-affinity");
 
-  private static Map<String, PolicyTypes> stringToPolicyTypesMap;
+    private static Map<String, PolicyTypes> stringToPolicyTypesMap;
 
-  static {
-    stringToPolicyTypesMap = new HashMap<>();
-    for (PolicyTypes type : PolicyTypes.values()) {
-      stringToPolicyTypesMap.put(type.policy, type);
+    static {
+        stringToPolicyTypesMap = new HashMap<>();
+        for (PolicyTypes type : PolicyTypes.values()) {
+            stringToPolicyTypesMap.put(type.policy, type);
+        }
     }
-  }
-
-  private String policy;
-
-  PolicyTypes(String policy) {
-    this.policy = policy;
-  }
 
-  public static PolicyTypes findByPolicy(String policy) {
-    return stringToPolicyTypesMap.get(policy);
-  }
+    private String policy;
 
-  public static boolean isGivenPolicyValid(String policyToCheck) {
-    return Objects.nonNull(findByPolicy(policyToCheck));
-  }
-
-  public String getPolicy() {
-    return policy;
-  }
+    public static PolicyTypes findByPolicy(String policy) {
+        return stringToPolicyTypesMap.get(policy);
+    }
 
-  public void setPolicy(String policy) {
-    this.policy = policy;
-  }
+    public static boolean isGivenPolicyValid(String policyToCheck) {
+        return Objects.nonNull(findByPolicy(policyToCheck));
+    }
 }
index e8d43fc..46673c2 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.model;
 
-public enum PropertiesMapKeyTypes {
-  IMAGE("image"),
-  FLAVOR("flavor"),
-  NETWORKS("networks"),
-  RESOURCE_DEF("resource_def");
-
-  private String keyMap;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
 
-  PropertiesMapKeyTypes(String keyMap) {
-    this.keyMap = keyMap;
-  }
-
-  public String getKeyMap() {
-    return keyMap;
-  }
+@Getter
+@AllArgsConstructor
+public enum PropertiesMapKeyTypes {
+    IMAGE("image"),
+    FLAVOR("flavor"),
+    NETWORKS("networks"),
+    RESOURCE_DEF("resource_def");
 
-  public void setKeyMap(String keyMap) {
-    this.keyMap = keyMap;
-  }
+    private String keyMap;
 }
index 2c70105..4703f43 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,71 +22,27 @@ package org.openecomp.sdc.heat.datatypes.model;
 
 import java.util.Map;
 
-public class Resource {
-  String type;
-  Map<String, Object> properties;
-  Object metadata;
-  Object depends_on;
-  Object update_policy;
-  Object deletion_policy;
-
-  public String getType() {
-    return type;
-  }
-
-  public void setType(String type) {
-    this.type = type;
-  }
-
-  public Map<String, Object> getProperties() {
-    return properties;
-  }
-
-  public void setProperties(Map<String, Object> properties) {
-    this.properties = properties;
-  }
-
-  public Object getMetadata() {
-    return metadata;
-  }
-
-  public void setMetadata(Object metadata) {
-    this.metadata = metadata;
-  }
+import lombok.Data;
 
-  public Object getDepends_on() {
-    return depends_on;
-  }
-
-  public void setDepends_on(Object depends_on) {
-    this.depends_on = depends_on;
-  }
-
-  public Object getUpdate_policy() {
-    return update_policy;
-  }
-
-  public void setUpdate_policy(Object update_policy) {
-    this.update_policy = update_policy;
-  }
-
-  public Object getDeletion_policy() {
-    return deletion_policy;
-  }
-
-  public void setDeletion_policy(Object deletion_policy) {
-    this.deletion_policy = deletion_policy;
-  }
+@Data
+public class Resource {
 
-  @Override
-  public String toString() {
-    return "Resource{"
-        + "type='" + type + '\''
-        + ", properties=" + properties
-        + ", metadata=" + metadata
-        + ", depends_on=" + depends_on
-        + ", update_policy='" + update_policy + '\''
-        + ", deletion_policy='" + deletion_policy + '\''
-        + '}';
-  }
+    private String type;
+    private Map<String, Object> properties;
+    private Object metadata;
+    private Object depends_on;
+    private Object update_policy;
+    private Object deletion_policy;
+
+    @Override
+    public String toString() {
+        return "Resource{"
+                + "type='" + type + '\''
+                + ", properties=" + properties
+                + ", metadata=" + metadata
+                + ", depends_on=" + depends_on
+                + ", update_policy='" + update_policy + '\''
+                + ", deletion_policy='" + deletion_policy + '\''
+                + '}';
+    }
 }
index b36d130..9c1feb2 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.model;
 
-public enum ResourceReferenceFunctions {
-  GET_RESOURCE("get_resource"),
-  GET_PARAM("get_param"),
-  GET_ATTR("get_attr"),
-  GET_FILE("get_file"),
-  SCHEDULER_HINTS("scheduler_hints");
-
-
-  private String function;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
 
-  ResourceReferenceFunctions(String function) {
-    this.function = function;
-  }
-
-  public String getFunction() {
-    return function;
-  }
+@AllArgsConstructor
+@Getter
+public enum ResourceReferenceFunctions {
+    GET_RESOURCE("get_resource"),
+    GET_PARAM("get_param"),
+    GET_ATTR("get_attr"),
+    GET_FILE("get_file"),
+    SCHEDULER_HINTS("scheduler_hints");
 
-  public void setFunction(String function) {
-    this.function = function;
-  }
+    private String function;
 }
index d7ede70..c4a1358 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -24,32 +24,31 @@ import java.util.HashMap;
 import java.util.Map;
 
 public enum ResourceTypeToMessageString {
-  SERVER_GROUP(HeatResourcesTypes.NOVA_SERVER_GROUP_RESOURCE_TYPE, "ServerGroup"),
-  SECURITY_GROUP(HeatResourcesTypes.NEUTRON_SECURITY_GROUP_RESOURCE_TYPE, "SecurityGroup"),
-  NETWORK_POLICY(HeatResourcesTypes.CONTRAIL_NETWORK_RULE_RESOURCE_TYPE, "NetworkPolicy");
+    SERVER_GROUP(HeatResourcesTypes.NOVA_SERVER_GROUP_RESOURCE_TYPE, "ServerGroup"),
+    SECURITY_GROUP(HeatResourcesTypes.NEUTRON_SECURITY_GROUP_RESOURCE_TYPE, "SecurityGroup"),
+    NETWORK_POLICY(HeatResourcesTypes.CONTRAIL_NETWORK_RULE_RESOURCE_TYPE, "NetworkPolicy");
 
-  private static Map<HeatResourcesTypes, String> resourcesTypesStringMap;
+    private static Map<HeatResourcesTypes, String> resourcesTypesStringMap;
 
-  static {
-    resourcesTypesStringMap = new HashMap<>();
+    static {
+        resourcesTypesStringMap = new HashMap<>();
 
-    for (ResourceTypeToMessageString resourceTypeToMessageString : ResourceTypeToMessageString
-        .values()) {
-      resourcesTypesStringMap
-          .put(resourceTypeToMessageString.type, resourceTypeToMessageString.messageString);
+        for (ResourceTypeToMessageString resourceTypeToMessageString : ResourceTypeToMessageString
+                .values()) {
+            resourcesTypesStringMap
+                    .put(resourceTypeToMessageString.type, resourceTypeToMessageString.messageString);
+        }
     }
-  }
 
-  private String messageString;
-  private HeatResourcesTypes type;
+    private String messageString;
+    private HeatResourcesTypes type;
 
+    ResourceTypeToMessageString(HeatResourcesTypes type, String messageString) {
+        this.type = type;
+        this.messageString = messageString;
+    }
 
-  ResourceTypeToMessageString(HeatResourcesTypes type, String messgageString) {
-    this.type = type;
-    this.messageString = messgageString;
-  }
-
-  public static String getTypeForMessageFromResourceType(HeatResourcesTypes type) {
-    return resourcesTypesStringMap.get(type);
-  }
+    public static String getTypeForMessageFromResourceType(HeatResourcesTypes type) {
+        return resourcesTypesStringMap.get(type);
+    }
 }
index 95ae4e5..9d1fbe3 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.structure;
 
+import java.util.ArrayList;
+import java.util.List;
 
+import lombok.AccessLevel;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
 import org.openecomp.sdc.datatypes.error.ErrorMessage;
 import org.openecomp.sdc.heat.datatypes.manifest.FileData;
 
-import java.util.ArrayList;
-import java.util.List;
-
+@Getter
+@Setter
+@EqualsAndHashCode
 public class Artifact implements Comparable<Artifact> {
 
-  private String fileName;
-  private FileData.Type type;
-  private List<ErrorMessage> errors;
-
-  public Artifact(String fileName, FileData.Type type) {
-    this.fileName = fileName;
-    this.type = type;
-  }
-
-
-  public String getFileName() {
-    return fileName;
-  }
-
-  public void setFileName(String name) {
-    this.fileName = name;
-  }
+    private String fileName;
 
+    @Setter(AccessLevel.NONE)
+    @EqualsAndHashCode.Exclude
+    private FileData.Type type;
 
-  public FileData.Type getType() {
-    return type;
-  }
+    @EqualsAndHashCode.Exclude
+    private List<ErrorMessage> errors;
 
-  public List<ErrorMessage> getErrors() {
-    return errors;
-  }
-
-  public void setErrors(List<ErrorMessage> errors) {
-    this.errors = errors;
-  }
-
-  /**
-   * Add error to error list.
-   *
-   * @param error the error
-   */
-  public void addErrorToErrorList(ErrorMessage error) {
-    if (this.errors == null || this.errors.isEmpty()) {
-      this.errors = new ArrayList<>();
+    public Artifact(String fileName, FileData.Type type) {
+        this.fileName = fileName;
+        this.type = type;
     }
 
-    this.errors.add(error);
-  }
-
-  @Override
-  public int hashCode() {
-    int result = fileName.hashCode();
-    return result;
-  }
-
-  @Override
-  public boolean equals(Object obj) {
-    if (this == obj) {
-      return true;
+    /**
+     * Add error to error list.
+     *
+     * @param error the error
+     */
+    public void addErrorToErrorList(ErrorMessage error) {
+        if (this.errors == null || this.errors.isEmpty()) {
+            this.errors = new ArrayList<>();
+        }
+
+        this.errors.add(error);
     }
-    if (obj == null || getClass() != obj.getClass()) {
-      return false;
-    }
-
-    Artifact artifact = (Artifact) obj;
 
-    if (!fileName.equals(artifact.fileName)) {
-      return false;
+    @Override
+    public int compareTo(Artifact artifact) {
+        return artifact.getFileName().compareTo(this.getFileName());
     }
-    return true;
-
-  }
-
-  @Override
-  public int compareTo(Artifact artifact) {
-    return artifact.getFileName().compareTo(this.getFileName());
-  }
 }
index 5313d4d..8d1b591 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.structure;
 
-
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.heat.datatypes.manifest.FileData;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 
+import lombok.AccessLevel;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.manifest.FileData;
+
+@Data
 public class HeatStructureTree implements Comparable<HeatStructureTree> {
 
-  private String fileName;
-  private FileData.Type type;
-  private Boolean isBase;
-  private HeatStructureTree env;
-  private List<ErrorMessage> errors;
-  private Set<HeatStructureTree> heat;
-  private Set<HeatStructureTree> volume;
-  private Set<HeatStructureTree> network;
-  private Set<HeatStructureTree> nested;
-  private Set<HeatStructureTree> other;
-  private Set<Artifact> artifacts;
-
-  public HeatStructureTree() {
-  }
-
-  ;
-
-  public HeatStructureTree(String fileName, boolean isBase) {
-    setBase(isBase);
-    setFileName(fileName);
-  }
-
-  /**
-   * Gets heat structure tree by name.
-   *
-   * @param filesSet the files set
-   * @param filename the filename
-   * @return the heat structure tree by name
-   */
-  public static HeatStructureTree getHeatStructureTreeByName(Set<HeatStructureTree> filesSet,
-                                                             String filename) {
-    for (HeatStructureTree heatStructureTree : filesSet) {
-      if (heatStructureTree.getFileName().equals(filename)) {
-        return heatStructureTree;
-      }
-    }
+    private String fileName;
+    private FileData.Type type;
 
-    return null;
-  }
-
-  public void setType(FileData.Type type) {
-    this.type = type;
-  }
-
-  public Boolean getBase() {
-    return isBase;
-  }
-
-  public void setBase(Boolean base) {
-    isBase = base;
-  }
-
-  public String getFileName() {
-    return fileName;
-  }
-
-  public void setFileName(String file) {
-    this.fileName = file;
-  }
-
-  @JsonProperty(value = "heat")
-  public Set<HeatStructureTree> getHeat() {
-    return heat;
-  }
-
-  public void setHeat(Set<HeatStructureTree> heat) {
-    this.heat = heat;
-  }
-
-  public Set<HeatStructureTree> getNested() {
-    return nested;
-  }
-
-  public void setNested(Set<HeatStructureTree> nested) {
-    this.nested = nested;
-  }
-
-  public Set<Artifact> getArtifacts() {
-    return artifacts;
-  }
-
-  public void setArtifacts(Set<Artifact> artifacts) {
-    this.artifacts = artifacts;
-  }
-
-  /**
-   * Add heat structure tree to nested heat list.
-   *
-   * @param heatStructureTree the heat structure tree
-   */
-  public void addHeatStructureTreeToNestedHeatList(HeatStructureTree heatStructureTree) {
-    if (this.nested == null) {
-      this.nested = new TreeSet<>();
+    @Getter(AccessLevel.NONE)
+    @Setter(AccessLevel.NONE)
+    private Boolean isBase;
+
+    private HeatStructureTree env;
+    private List<ErrorMessage> errors;
+    private Set<HeatStructureTree> heat;
+    private Set<HeatStructureTree> volume;
+    private Set<HeatStructureTree> network;
+    private Set<HeatStructureTree> nested;
+    private Set<HeatStructureTree> other;
+    private Set<Artifact> artifacts;
+
+    public HeatStructureTree() {
     }
-    if (!findItemInSetByName(this.nested, heatStructureTree)) {
-      this.nested.add(heatStructureTree);
+
+    public HeatStructureTree(String fileName, boolean isBase) {
+        this.isBase = isBase;
+        this.fileName = fileName;
     }
-  }
-
-  /**
-   * Add artifact to artifact list.
-   *
-   * @param artifact the artifact
-   */
-  public void addArtifactToArtifactList(Artifact artifact) {
-    if (this.artifacts == null || this.artifacts.isEmpty()) {
-      this.artifacts = new TreeSet<>();
+
+    public Boolean getBase() {
+        return isBase;
     }
-    this.artifacts.add(artifact);
-  }
-
-  public HeatStructureTree getEnv() {
-    return env;
-  }
-
-  public void setEnv(HeatStructureTree env) {
-    this.env = env;
-  }
-
-  public Set<HeatStructureTree> getVolume() {
-    return volume;
-  }
-
-  public void setVolume(Set<HeatStructureTree> volume) {
-    this.volume = volume;
-  }
-
-  public Set<HeatStructureTree> getNetwork() {
-    return network;
-  }
-
-  public void setNetwork(Set<HeatStructureTree> network) {
-    this.network = network;
-  }
-
-  /**
-   * Add network to network list.
-   *
-   * @param heatStructureTree the heat structure tree
-   */
-  public void addNetworkToNetworkList(HeatStructureTree heatStructureTree) {
-    if (this.network == null) {
-      this.network = new TreeSet<>();
+
+    public void setBase(Boolean isBase) {
+        this.isBase = isBase;
     }
-    if (!findItemInSetByName(this.network, heatStructureTree)) {
-      this.network.add(heatStructureTree);
+
+    /**
+     * Gets heat structure tree by name.
+     *
+     * @param filesSet the files set
+     * @param filename the filename
+     * @return the heat structure tree by name
+     */
+    public static HeatStructureTree getHeatStructureTreeByName(Set<HeatStructureTree> filesSet,
+                                                               String filename) {
+        for (HeatStructureTree heatStructureTree : filesSet) {
+            if (heatStructureTree.getFileName().equals(filename)) {
+                return heatStructureTree;
+            }
+        }
+
+        return null;
     }
-  }
-
-  /**
-   * Add volume file to volume list.
-   *
-   * @param heatStructureTree the heat structure tree
-   */
-  public void addVolumeFileToVolumeList(HeatStructureTree heatStructureTree) {
-    if (this.volume == null) {
-      this.volume = new TreeSet<>();
+
+    /**
+     * Add heat structure tree to nested heat list.
+     *
+     * @param heatStructureTree the heat structure tree
+     */
+    public void addHeatStructureTreeToNestedHeatList(HeatStructureTree heatStructureTree) {
+        if (this.nested == null) {
+            this.nested = new TreeSet<>();
+        }
+        if (!findItemInSetByName(this.nested, heatStructureTree)) {
+            this.nested.add(heatStructureTree);
+        }
     }
-    if (!findItemInSetByName(this.volume, heatStructureTree)) {
-      this.volume.add(heatStructureTree);
+
+    /**
+     * Add artifact to artifact list.
+     *
+     * @param artifact the artifact
+     */
+    public void addArtifactToArtifactList(Artifact artifact) {
+        if (this.artifacts == null || this.artifacts.isEmpty()) {
+            this.artifacts = new TreeSet<>();
+        }
+        this.artifacts.add(artifact);
     }
-  }
-
-  /**
-   * Add heat to heat list.
-   *
-   * @param heat the heat
-   */
-  public void addHeatToHeatList(HeatStructureTree heat) {
-    if (this.heat == null) {
-      this.heat = new TreeSet<>();
+
+    /**
+     * Add network to network list.
+     *
+     * @param heatStructureTree the heat structure tree
+     */
+    public void addNetworkToNetworkList(HeatStructureTree heatStructureTree) {
+        if (this.network == null) {
+            this.network = new TreeSet<>();
+        }
+        if (!findItemInSetByName(this.network, heatStructureTree)) {
+            this.network.add(heatStructureTree);
+        }
     }
 
-    this.heat.add(heat);
-  }
-
-  /**
-   * Add other to other list.
-   *
-   * @param other the other
-   */
-  public void addOtherToOtherList(HeatStructureTree other) {
-    if (this.other == null) {
-      this.other = new TreeSet<>();
+    /**
+     * Add volume file to volume list.
+     *
+     * @param heatStructureTree the heat structure tree
+     */
+    public void addVolumeFileToVolumeList(HeatStructureTree heatStructureTree) {
+        if (this.volume == null) {
+            this.volume = new TreeSet<>();
+        }
+        if (!findItemInSetByName(this.volume, heatStructureTree)) {
+            this.volume.add(heatStructureTree);
+        }
     }
 
-    this.other.add(other);
-  }
-
-  /**
-   * Find item in set by name boolean.
-   *
-   * @param searchSet the search set
-   * @param toFind    the to find
-   * @return the boolean
-   */
-  public boolean findItemInSetByName(Set<HeatStructureTree> searchSet, HeatStructureTree toFind) {
-    for (HeatStructureTree heatStructureTree : searchSet) {
-      if (heatStructureTree.getFileName().equals(toFind.getFileName())) {
-        return true;
-      }
+    /**
+     * Add heat to heat list.
+     *
+     * @param heat the heat
+     */
+    public void addHeatToHeatList(HeatStructureTree heat) {
+        if (this.heat == null) {
+            this.heat = new TreeSet<>();
+        }
+
+        this.heat.add(heat);
+    }
 
+    /**
+     * Add other to other list.
+     *
+     * @param other the other
+     */
+    public void addOtherToOtherList(HeatStructureTree other) {
+        if (this.other == null) {
+            this.other = new TreeSet<>();
+        }
+
+        this.other.add(other);
     }
 
-    return false;
-  }
-
-  /**
-   * Remove from volume or network.
-   *
-   * @param fileNameToRemove the file name to remove
-   * @param type             the type
-   */
-  public void removeFromVolumeOrNetwork(String fileNameToRemove, FileData.Type type) {
-    Set<HeatStructureTree> volumeOrNetworkSet =
-        type.equals(FileData.Type.HEAT_VOL) ? this.volume : this.network;
-    HeatStructureTree toRemove = getHeatStructureTreeByName(volumeOrNetworkSet, fileNameToRemove);
-
-    volumeOrNetworkSet.remove(toRemove);
-  }
-
-  @Override
-  public int hashCode() {
-    int result1 = fileName != null ? fileName.hashCode() : 0;
-    result1 = 31 * result1 + (env != null ? env.hashCode() : 0);
-    result1 = 31 * result1 + (heat != null ? heat.hashCode() : 0);
-    result1 = 31 * result1 + (volume != null ? volume.hashCode() : 0);
-    result1 = 31 * result1 + (network != null ? network.hashCode() : 0);
-    result1 = 31 * result1 + (artifacts != null ? artifacts.hashCode() : 0);
-    result1 = 31 * result1 + (nested != null ? nested.hashCode() : 0);
-    result1 = 31 * result1 + (errors != null ? errors.hashCode() : 0);
-
-
-    return result1;
-  }
-
-  @Override
-  public boolean equals(Object other) {
-    if (this == other) {
-      return true;
+    /**
+     * Find item in set by name boolean.
+     *
+     * @param searchSet the search set
+     * @param toFind    the to find
+     * @return the boolean
+     */
+    public boolean findItemInSetByName(Set<HeatStructureTree> searchSet, HeatStructureTree toFind) {
+        for (HeatStructureTree heatStructureTree : searchSet) {
+            if (heatStructureTree.getFileName().equals(toFind.getFileName())) {
+                return true;
+            }
+        }
+        return false;
     }
-    if (other == null || getClass() != other.getClass()) {
-      return false;
+
+    /**
+     * Remove from volume or network.
+     *
+     * @param fileNameToRemove the file name to remove
+     * @param type             the type
+     */
+    public void removeFromVolumeOrNetwork(String fileNameToRemove, FileData.Type type) {
+        Set<HeatStructureTree> volumeOrNetworkSet =
+                type.equals(FileData.Type.HEAT_VOL) ? this.volume : this.network;
+        HeatStructureTree toRemove = getHeatStructureTreeByName(volumeOrNetworkSet, fileNameToRemove);
+
+        volumeOrNetworkSet.remove(toRemove);
     }
 
-    HeatStructureTree heatStructureTree = (HeatStructureTree) other;
+    @Override
+    public int hashCode() {
+        int result1 = fileName != null ? fileName.hashCode() : 0;
+        result1 = 31 * result1 + (env != null ? env.hashCode() : 0);
+        result1 = 31 * result1 + (heat != null ? heat.hashCode() : 0);
+        result1 = 31 * result1 + (volume != null ? volume.hashCode() : 0);
+        result1 = 31 * result1 + (network != null ? network.hashCode() : 0);
+        result1 = 31 * result1 + (artifacts != null ? artifacts.hashCode() : 0);
+        result1 = 31 * result1 + (nested != null ? nested.hashCode() : 0);
+        result1 = 31 * result1 + (errors != null ? errors.hashCode() : 0);
 
-    if (fileName != null ? !fileName.equals(heatStructureTree.fileName)
-        : heatStructureTree.fileName != null) {
-      return false;
-    }
-    if (env != null ? !env.equals(heatStructureTree.env) : heatStructureTree.env != null) {
-      return false;
-    }
-    if (heat != null ? !heat.equals(heatStructureTree.heat) : heatStructureTree.heat != null) {
-      return false;
-    }
-    if (volume != null ? !volume.equals(heatStructureTree.volume)
-        : heatStructureTree.volume != null) {
-      return false;
-    }
-    if (network != null ? !network.equals(heatStructureTree.network)
-        : heatStructureTree.network != null) {
-      return false;
-    }
-    if (artifacts != null ? !artifacts.equals(heatStructureTree.artifacts)
-        : heatStructureTree.artifacts != null) {
-      return false;
-    }
-    if (nested != null ? !nested.equals(heatStructureTree.nested)
-        : heatStructureTree.nested != null) {
-      return false;
-    }
-    if (errors != null ? !errors.equals(heatStructureTree.errors)
-        : heatStructureTree.errors != null) {
-      return false;
-    }
 
-    return true;
-  }
-
-  public List<ErrorMessage> getErrors() {
-    return errors;
-  }
-
-  public void setErrors(List<ErrorMessage> errors) {
-    this.errors = errors;
-  }
-
-  /**
-   * Add error to errors list.
-   *
-   * @param error the error
-   */
-  public void addErrorToErrorsList(ErrorMessage error) {
-    if (this.errors == null || this.errors.isEmpty()) {
-      this.errors = new ArrayList<>();
-    }
-    if (!this.errors.contains(error)) {
-      this.errors.add(error);
+        return result1;
     }
-  }
 
-  public Set<HeatStructureTree> getOther() {
-    return other;
-  }
+    @Override
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+        if (other == null || getClass() != other.getClass()) {
+            return false;
+        }
+
+        HeatStructureTree heatStructureTree = (HeatStructureTree) other;
+
+        if (fileName != null ? !fileName.equals(heatStructureTree.fileName)
+                : heatStructureTree.fileName != null) {
+            return false;
+        }
+        if (env != null ? !env.equals(heatStructureTree.env) : heatStructureTree.env != null) {
+            return false;
+        }
+        if (heat != null ? !heat.equals(heatStructureTree.heat) : heatStructureTree.heat != null) {
+            return false;
+        }
+        if (volume != null ? !volume.equals(heatStructureTree.volume)
+                : heatStructureTree.volume != null) {
+            return false;
+        }
+        if (network != null ? !network.equals(heatStructureTree.network)
+                : heatStructureTree.network != null) {
+            return false;
+        }
+        if (artifacts != null ? !artifacts.equals(heatStructureTree.artifacts)
+                : heatStructureTree.artifacts != null) {
+            return false;
+        }
+        if (nested != null ? !nested.equals(heatStructureTree.nested)
+                : heatStructureTree.nested != null) {
+            return false;
+        }
+
+        return errors != null ? errors.equals(heatStructureTree.errors) : heatStructureTree.errors == null;
+    }
 
-  public void setOther(Set<HeatStructureTree> other) {
-    this.other = other;
-  }
+    /**
+     * Add error to errors list.
+     *
+     * @param error the error
+     */
+    public void addErrorToErrorsList(ErrorMessage error) {
+        if (this.errors == null || this.errors.isEmpty()) {
+            this.errors = new ArrayList<>();
+        }
+        if (!this.errors.contains(error)) {
+            this.errors.add(error);
+        }
+    }
 
-  @Override
-  public int compareTo(HeatStructureTree obj) {
-    return obj.getFileName().compareTo(this.getFileName());
-  }
+    @Override
+    public int compareTo(HeatStructureTree obj) {
+        return obj.getFileName().compareTo(this.getFileName());
+    }
 }
index f2acb28..27b87b9 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.datatypes.structure;
 
-public class ValidationStructureList {
-  private HeatStructureTree importStructure;
-
-  public ValidationStructureList() {
-  }
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 
-  public ValidationStructureList(HeatStructureTree importStructure) {
-    this.importStructure = importStructure;
-  }
-
-  public HeatStructureTree getImportStructure() {
-    return importStructure;
-  }
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ValidationStructureList {
 
-  public void setImportStructure(HeatStructureTree importStructure) {
-    this.importStructure = importStructure;
-  }
+    private HeatStructureTree importStructure;
 }
index a44b019..4563e68 100644 (file)
@@ -21,6 +21,8 @@ import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 
 public class HeatResourceUtil {
@@ -31,9 +33,9 @@ public class HeatResourceUtil {
     private static final String PORT_RESOURCE_ID_REGEX_PREFIX =
             WORDS_REGEX + PORT_RESOURCE_ID_REGEX_SUFFIX;
     private static final String PORT_INT_RESOURCE_ID_REGEX_PREFIX = PORT_RESOURCE_ID_REGEX_PREFIX
-            + UNDERSCORE + "int_"+ WORDS_REGEX + UNDERSCORE;
+            + UNDERSCORE + "int_" + WORDS_REGEX + UNDERSCORE;
     private static final String SUB_INTERFACE_INT_RESOURCE_ID_REGEX_PREFIX =
-            PORT_RESOURCE_ID_REGEX_PREFIX + UNDERSCORE + "subint_"+ WORDS_REGEX + UNDERSCORE;
+            PORT_RESOURCE_ID_REGEX_PREFIX + UNDERSCORE + "subint_" + WORDS_REGEX + UNDERSCORE;
 
     public static Optional<String> evaluateNetworkRoleFromResourceId(String resourceId,
                                                                      String resourceType) {
@@ -56,17 +58,23 @@ public class HeatResourceUtil {
     }
 
     private static Optional<PortType> getPortType(String resourceType) {
-        if (resourceType.equals(
-                HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource())) {
+        if (HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource()
+                .equals(resourceType)) {
             return Optional.of(PortType.VMI);
-        } else if (resourceType.equals(
-                HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource())) {
+        } else if (HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource().equals(resourceType)) {
             return Optional.of(PortType.PORT);
         }
         return Optional.empty();
     }
 
-    public static Optional<String> extractNetworkRoleFromSubInterfaceId(String  resourceId,
+    /**
+     * Extract network role from sub interface id optional.
+     *
+     * @param resourceId   the resource id
+     * @param resourceType the resource type
+     * @return the optional
+     */
+    public static Optional<String> extractNetworkRoleFromSubInterfaceId(String resourceId,
                                                                         String resourceType) {
         Optional<PortType> portType = getPortType(resourceType);
         if (portType.isPresent()) {
@@ -79,19 +87,13 @@ public class HeatResourceUtil {
         return Optional.empty();
     }
 
+    @AllArgsConstructor
+    @Getter
     private enum PortType {
         PORT("port"),
         VMI("vmi");
 
         private String portTypeName;
-
-        PortType(String portTypeName) {
-            this.portTypeName = portTypeName;
-        }
-
-        public String getPortTypeName() {
-            return portTypeName;
-        }
     }
 
     private static String getNetworkRole(String portResourceId, String portIdRegex) {
index ef09841..b73c7e8 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.services;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
 import org.openecomp.core.validation.types.GlobalValidationContext;
@@ -27,12 +33,6 @@ import org.openecomp.sdc.common.errors.Messages;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
 import org.openecomp.sdc.heat.datatypes.model.ResourceReferenceFunctions;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
 /**
  * Created by TALIO on 2/19/2017.
  */
@@ -42,77 +42,83 @@ public class HeatStructureUtil {
         // prevent instantiation
     }
 
-  /**
-   * Gets referenced values by function name.
-   *
-   * @param filename      the filename
-   * @param functionName  the function name
-   * @param propertyValue the property value
-   * @param globalContext the global context
-   * @return the referenced values by function name
-   */
-  public static Set<String> getReferencedValuesByFunctionName(String filename, String functionName,
-                                                              Object propertyValue,
-                                                              GlobalValidationContext globalContext) {
-    Set<String> valuesNames = new HashSet<>();
-    if (propertyValue instanceof Map) {
-      Map<String, Object> currPropertyMap = (Map<String, Object>) propertyValue;
-      if (currPropertyMap.containsKey(functionName)) {
-        Object getFunctionValue = currPropertyMap.get(functionName);
-        if (!(getFunctionValue instanceof String) && functionName.equals(
-            ResourceReferenceFunctions.GET_RESOURCE.getFunction())) {
-          globalContext.addMessage(filename, ErrorLevel.ERROR, ErrorMessagesFormatBuilder
-                  .getErrorWithParameters(globalContext.getMessageCode(),
-                          Messages.INVALID_GET_RESOURCE_SYNTAX.getErrorMessage(),
-                      getFunctionValue == null ? "null" : getFunctionValue.toString()));
-          return valuesNames;
-        }
-        if (getFunctionValue instanceof String) {
+    /**
+     * Gets referenced values by function name.
+     *
+     * @param filename      the filename
+     * @param functionName  the function name
+     * @param propertyValue the property value
+     * @param globalContext the global context
+     * @return the referenced values by function name
+     */
+    public static Set<String> getReferencedValuesByFunctionName(String filename, String functionName,
+                                                                Object propertyValue,
+                                                                GlobalValidationContext globalContext) {
+        Set<String> valuesNames = new HashSet<>();
+        if (propertyValue instanceof Map) {
+            Map<String, Object> currPropertyMap = (Map<String, Object>) propertyValue;
+            if (currPropertyMap.containsKey(functionName)) {
+                Object getFunctionValue = currPropertyMap.get(functionName);
+                if (!(getFunctionValue instanceof String) && functionName.equals(
+                        ResourceReferenceFunctions.GET_RESOURCE.getFunction())) {
+                    globalContext.addMessage(filename, ErrorLevel.ERROR, ErrorMessagesFormatBuilder
+                            .getErrorWithParameters(globalContext.getMessageCode(),
+                                    Messages.INVALID_GET_RESOURCE_SYNTAX.getErrorMessage(),
+                                    getFunctionValue == null ? "null" : getFunctionValue.toString()));
+                    return valuesNames;
+                }
+                if (getFunctionValue instanceof String) {
 
-          if (functionName.equals(ResourceReferenceFunctions.GET_FILE.getFunction())) {
-            getFunctionValue = ((String) getFunctionValue).replace("file:///", "");
-          }
+                    if (functionName.equals(ResourceReferenceFunctions.GET_FILE.getFunction())) {
+                        getFunctionValue = ((String) getFunctionValue).replace("file:///", "");
+                    }
 
-          valuesNames.add((String) getFunctionValue);
-        } else if (getFunctionValue instanceof List) {
-          if (CollectionUtils.isNotEmpty((List) getFunctionValue)) {
-            if (((List) getFunctionValue).get(0) instanceof String) {
-              valuesNames.add(((String) ((List) getFunctionValue).get(0)).replace("file:///", ""));
+                    valuesNames.add((String) getFunctionValue);
+                } else if (getFunctionValue instanceof List) {
+                    if (CollectionUtils.isNotEmpty((List) getFunctionValue)) {
+                        if (((List) getFunctionValue).get(0) instanceof String) {
+                            valuesNames.add(((String) ((List) getFunctionValue).get(0)).replace("file:///", ""));
+                        } else {
+                            valuesNames.addAll(getReferencedValuesByFunctionName(filename, functionName,
+                                    ((List) getFunctionValue).get(0), globalContext));
+                        }
+
+                    }
+                } else {
+                    valuesNames.addAll(
+                            getReferencedValuesByFunctionName(filename, functionName, getFunctionValue,
+                                    globalContext));
+                }
             } else {
-              valuesNames.addAll(getReferencedValuesByFunctionName(filename, functionName,
-                  ((List) getFunctionValue).get(0), globalContext));
+                for (Map.Entry<String, Object> nestedPropertyMap : currPropertyMap.entrySet()) {
+                    valuesNames.addAll(getReferencedValuesByFunctionName(filename, functionName,
+                            nestedPropertyMap.getValue(), globalContext));
+                }
+            }
+        } else if (propertyValue instanceof List) {
+            List propertyValueArray = (List) propertyValue;
+            for (Object propValue : propertyValueArray) {
+                valuesNames.addAll(
+                        getReferencedValuesByFunctionName(filename, functionName, propValue,
+                                globalContext));
             }
-
-          }
-        } else {
-          valuesNames.addAll(
-              getReferencedValuesByFunctionName(filename, functionName, getFunctionValue,
-                  globalContext));
-        }
-      } else {
-        for (Map.Entry<String, Object> nestedPropertyMap : currPropertyMap.entrySet()) {
-          valuesNames.addAll(getReferencedValuesByFunctionName(filename, functionName,
-              nestedPropertyMap.getValue(), globalContext));
         }
-      }
-    } else if (propertyValue instanceof List) {
-      List propertyValueArray = (List) propertyValue;
-      for (Object propValue : propertyValueArray) {
-        valuesNames.addAll(
-            getReferencedValuesByFunctionName(filename, functionName, propValue,
-                globalContext));
-      }
-    }
 
-    return valuesNames;
-  }
+        return valuesNames;
+    }
 
 
-  public static boolean isNestedResource(String resourceType) {
-    if(Objects.isNull(resourceType)){
-      return false;
+    /**
+     * Is nested resource.
+     *
+     * @param resourceType the resource type
+     * @return the boolean
+     */
+    public static boolean isNestedResource(String resourceType) {
+        if (Objects.isNull(resourceType)) {
+            return false;
+        }
+        return resourceType.endsWith(".yaml") || resourceType.endsWith(".yml");
     }
-    return resourceType.endsWith(".yaml") || resourceType.endsWith(".yml");
-  }
 
 }
index ef057a9..8c6daac 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.heat.services.manifest;
 
-
-import org.apache.commons.collections4.CollectionUtils;
-import org.openecomp.sdc.heat.datatypes.manifest.FileData;
-import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
-
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.heat.datatypes.manifest.FileData;
+import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
+
 public class ManifestUtil {
 
 
-  /**
-   * Gets file and its env.
-   *
-   * @param manifestContent the manifest content
-   * @return the file and its env
-   */
-  public static Map<String, FileData> getFileAndItsEnv(ManifestContent manifestContent) {
-    Map<String, FileData> fileEnvMap = new HashMap<>();
-    scanFileEnvMap(null, manifestContent.getData(), fileEnvMap);
-    return fileEnvMap;
-  }
-
-
-  /**
-   * Scan file env map.
-   *
-   * @param fileData     the file data
-   * @param fileDataList the file data list
-   * @param fileEnvMap   the file env map
-   */
-  public static void scanFileEnvMap(FileData fileData, List<FileData> fileDataList,
-                                    Map<String, FileData> fileEnvMap) {
-
-    if (CollectionUtils.isEmpty(fileDataList)) {
-      return;
+    /**
+     * Gets file and its env.
+     *
+     * @param manifestContent the manifest content
+     * @return the file and its env
+     */
+    public static Map<String, FileData> getFileAndItsEnv(ManifestContent manifestContent) {
+        Map<String, FileData> fileEnvMap = new HashMap<>();
+        scanFileEnvMap(null, manifestContent.getData(), fileEnvMap);
+        return fileEnvMap;
     }
 
-    for (FileData childFileData : fileDataList) {
-      FileData.Type childType = childFileData.getType();
-      if (fileData != null) {
-        if (childType != null && childType.equals(FileData.Type.HEAT_ENV)) {
-          fileEnvMap.put(fileData.getFile(), childFileData);
+
+    /**
+     * Scan file env map.
+     *
+     * @param fileData     the file data
+     * @param fileDataList the file data list
+     * @param fileEnvMap   the file env map
+     */
+    private static void scanFileEnvMap(FileData fileData, List<FileData> fileDataList,
+                                      Map<String, FileData> fileEnvMap) {
+
+        if (CollectionUtils.isEmpty(fileDataList)) {
+            return;
+        }
+
+        for (FileData childFileData : fileDataList) {
+            FileData.Type childType = childFileData.getType();
+            if (fileData != null) {
+                if (childType != null && childType.equals(FileData.Type.HEAT_ENV)) {
+                    fileEnvMap.put(fileData.getFile(), childFileData);
+                }
+            }
+            scanFileEnvMap(childFileData, childFileData.getData(), fileEnvMap);
         }
-      }
-      scanFileEnvMap(childFileData, childFileData.getData(), fileEnvMap);
-    }
-  }
-
-
-  /**
-   * Gets file type map.
-   *
-   * @param manifestContent the manifest content
-   * @return the file type map
-   */
-  public static Map<String, FileData.Type> getFileTypeMap(ManifestContent manifestContent) {
-    Map<String, FileData.Type> fileTypeMap = new HashMap<>();
-    scanFileTypeMap(null, manifestContent.getData(), fileTypeMap);
-    return fileTypeMap;
-  }
-
-  private static FileData.Type scanFileTypeMap(FileData fileData, List<FileData> data,
-                                               Map<String, FileData.Type> fileTypeMap) {
-    if (fileData != null) {
-      fileTypeMap.put(fileData.getFile(), fileData.getType());
-    }
-    if (data == null) {
-      return null;
     }
 
-    for (FileData chileFileData : data) {
-      FileData.Type type = scanFileTypeMap(chileFileData, chileFileData.getData(), fileTypeMap);
-      if (type != null) {
-        return type;
-      }
+
+    /**
+     * Gets file type map.
+     *
+     * @param manifestContent the manifest content
+     * @return the file type map
+     */
+    public static Map<String, FileData.Type> getFileTypeMap(ManifestContent manifestContent) {
+        Map<String, FileData.Type> fileTypeMap = new HashMap<>();
+        scanFileTypeMap(null, manifestContent.getData(), fileTypeMap);
+        return fileTypeMap;
     }
-    return null;
-  }
 
+    private static FileData.Type scanFileTypeMap(FileData fileData, List<FileData> data,
+                                                 Map<String, FileData.Type> fileTypeMap) {
+        if (fileData != null) {
+            fileTypeMap.put(fileData.getFile(), fileData.getType());
+        }
+        if (data == null) {
+            return null;
+        }
 
-  /**
-   * Gets artifacts.
-   *
-   * @param manifestContent the manifest content
-   * @return the artifacts
-   */
-  public static Set<String> getArtifacts(ManifestContent manifestContent) {
-    Set<String> artifacts = new HashSet<>();
-    scanArtifacts(null, manifestContent.getData(), artifacts);
+        for (FileData chileFileData : data) {
+            FileData.Type type = scanFileTypeMap(chileFileData, chileFileData.getData(), fileTypeMap);
+            if (type != null) {
+                return type;
+            }
+        }
+        return null;
+    }
 
-    return artifacts;
-  }
 
+    /**
+     * Gets artifacts.
+     *
+     * @param manifestContent the manifest content
+     * @return the artifacts
+     */
+    public static Set<String> getArtifacts(ManifestContent manifestContent) {
+        Set<String> artifacts = new HashSet<>();
+        scanArtifacts(null, manifestContent.getData(), artifacts);
 
-  private static void scanArtifacts(FileData fileData, List<FileData> data, Set<String> artifacts) {
-    if (fileData != null && fileData.getType() != null) {
-      if (isArtifact(fileData)) {
-        artifacts.add(fileData.getFile());
-      }
+        return artifacts;
     }
 
-    if (data == null) {
-      return;
-    }
+    private static void scanArtifacts(FileData fileData, List<FileData> data, Set<String> artifacts) {
+        if (fileData != null && fileData.getType() != null) {
+            if (isArtifact(fileData)) {
+                artifacts.add(fileData.getFile());
+            }
+        }
 
-    for (FileData chileFileData : data) {
-      scanArtifacts(chileFileData, chileFileData.getData(), artifacts);
-    }
-  }
-
-  private static boolean isArtifact(FileData fileData) {
-    if (FileData.Type.valueOf(fileData.getType().name()) != null
-        && !fileData.getType().equals(FileData.Type.HEAT)
-        && !fileData.getType().equals(FileData.Type.HEAT_ENV)
-        && !fileData.getType().equals(FileData.Type.HEAT_NET)
-        && !fileData.getType().equals(FileData.Type.HEAT_VOL)) {
-      return true;
+        if (data == null) {
+            return;
+        }
+
+        for (FileData chileFileData : data) {
+            scanArtifacts(chileFileData, chileFileData.getData(), artifacts);
+        }
     }
-    return false;
-  }
-
-  /**
-   * Gets base files.
-   *
-   * @param manifestContent the manifest content
-   * @return the base files
-   */
-  public static Set<String> getBaseFiles(ManifestContent manifestContent) {
-    Set<String> baseFiles = new HashSet<>();
-    scanBase(null, manifestContent.getData(), baseFiles);
-    return baseFiles;
-  }
-
-  private static void scanBase(FileData fileData, List<FileData> data, Set<String> baseFiles) {
-    if (fileData != null && fileData.getBase() != null) {
-      if (fileData.getBase()) {
-        baseFiles.add(fileData.getFile());
-      }
+
+    private static boolean isArtifact(FileData fileData) {
+        return FileData.Type.valueOf(fileData.getType().name()) != null
+                && !fileData.getType().equals(FileData.Type.HEAT)
+                && !fileData.getType().equals(FileData.Type.HEAT_ENV)
+                && !fileData.getType().equals(FileData.Type.HEAT_NET)
+                && !fileData.getType().equals(FileData.Type.HEAT_VOL);
     }
 
-    if (data == null) {
-      return;
+    /**
+     * Gets base files.
+     *
+     * @param manifestContent the manifest content
+     * @return the base files
+     */
+    public static Set<String> getBaseFiles(ManifestContent manifestContent) {
+        Set<String> baseFiles = new HashSet<>();
+        scanBase(null, manifestContent.getData(), baseFiles);
+        return baseFiles;
     }
 
-    for (FileData chileFileData : data) {
-      scanBase(chileFileData, chileFileData.getData(), baseFiles);
+    private static void scanBase(FileData fileData, List<FileData> data, Set<String> baseFiles) {
+        if (fileData != null && fileData.getBase() != null) {
+            if (fileData.getBase()) {
+                baseFiles.add(fileData.getFile());
+            }
+        }
+
+        if (data == null) {
+            return;
+        }
+
+        for (FileData chileFileData : data) {
+            scanBase(chileFileData, chileFileData.getData(), baseFiles);
+        }
     }
-  }
 }
index e8fe034..936f02b 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
-*/
+ */
 
 package org.openecomp.sdc.heat.services.tree;
 
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
 import org.onap.sdc.tosca.services.YamlUtil;
 import org.openecomp.core.utilities.file.FileContentHandler;
 import org.openecomp.core.utilities.file.FileUtils;
@@ -31,257 +39,247 @@ import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
 
 public class HeatTreeManager {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(HeatTreeManager.class);
-
-
-  private FileContentHandler heatContentMap = new FileContentHandler();
-  private byte[] manifest;
-  private HeatStructureTree tree = new HeatStructureTree();
-  private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
-  private Map<String, Artifact> artifactRef = new HashMap<>();
-  private Map<String, Artifact> candidateOrphanArtifacts = new HashMap<>();
-  private Map<String, HeatStructureTree> nestedFiles = new HashMap<>();
-  private Map<HeatStructureTree, HeatStructureTree> volumeFileToParent = new HashMap<>();
-  private Map<HeatStructureTree, HeatStructureTree> networkFileToParent = new HashMap<>();
-  private Set<String> manifestFiles = new HashSet<>();
-
-  /**
-   * Add file.
-   *
-   * @param fileName the file name
-   * @param content  the content
-   */
-  public void addFile(String fileName, InputStream content) {
-    if (fileName.equals(SdcCommon.MANIFEST_NAME)) {
-      manifest = FileUtils.toByteArray(content);
-
-    } else {
-      heatContentMap.addFile(fileName, content);
+    private static final Logger LOGGER = LoggerFactory.getLogger(HeatTreeManager.class);
+
+
+    private FileContentHandler heatContentMap = new FileContentHandler();
+    private byte[] manifest;
+    private HeatStructureTree tree = new HeatStructureTree();
+    private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
+    private Map<String, Artifact> artifactRef = new HashMap<>();
+    private Map<String, Artifact> candidateOrphanArtifacts = new HashMap<>();
+    private Map<String, HeatStructureTree> nestedFiles = new HashMap<>();
+    private Map<HeatStructureTree, HeatStructureTree> volumeFileToParent = new HashMap<>();
+    private Map<HeatStructureTree, HeatStructureTree> networkFileToParent = new HashMap<>();
+    private Set<String> manifestFiles = new HashSet<>();
+
+    /**
+     * Add file.
+     *
+     * @param fileName the file name
+     * @param content  the content
+     */
+    public void addFile(String fileName, InputStream content) {
+        if (fileName.equals(SdcCommon.MANIFEST_NAME)) {
+            manifest = FileUtils.toByteArray(content);
+
+        } else {
+            heatContentMap.addFile(fileName, content);
+        }
+    }
+
+    /**
+     * Create tree.
+     */
+    public void createTree() {
+        if (manifest == null) {
+            LOGGER.error("Missing manifest file in the zip.");
+            return;
+        }
+        ManifestContent manifestData =
+                JsonUtil.json2Object(new String(manifest), ManifestContent.class);
+        scanTree(null, manifestData.getData());
+        addNonNestedVolumeNetworkToTree(volumeFileToParent, nestedFiles.keySet(), true);
+        addNonNestedVolumeNetworkToTree(networkFileToParent, nestedFiles.keySet(), false);
+        handleOrphans();
+
+        tree = fileTreeRef.get(SdcCommon.PARENT);
     }
-  }
-
-  /**
-   * Create tree.
-   */
-  public void createTree() {
-    if (manifest == null) {
-      LOGGER.error("Missing manifest file in the zip.");
-      return;
+
+    private void handleOrphans() {
+        tree = fileTreeRef.get(SdcCommon.PARENT);
+        candidateOrphanArtifacts.forEach((key, value) -> tree.addArtifactToArtifactList(value));
+        nestedFiles
+                .values().stream().filter(tree.getHeat()::contains)
+                .forEach(tree.getHeat()::remove);
+
+        heatContentMap.getFileList().stream().filter(this::isNotInManifestFiles)
+                .forEach(this::addTreeOther);
     }
-    ManifestContent manifestData =
-        JsonUtil.json2Object(new String(manifest), ManifestContent.class);
-    scanTree(null, manifestData.getData());
-    addNonNestedVolumeNetworkToTree(volumeFileToParent, nestedFiles.keySet(), true);
-    addNonNestedVolumeNetworkToTree(networkFileToParent, nestedFiles.keySet(), false);
-    handleOrphans();
-
-    tree = fileTreeRef.get(SdcCommon.PARENT);
-  }
-
-  private void handleOrphans() {
-    tree = fileTreeRef.get(SdcCommon.PARENT);
-    candidateOrphanArtifacts.entrySet().stream()
-        .forEach(entry -> tree.addArtifactToArtifactList(entry.getValue()));
-    nestedFiles
-        .values().stream().filter(tree.getHeat()::contains)
-        .forEach(tree.getHeat()::remove);
-
-    heatContentMap.getFileList().stream().filter(this::isNotInManifestFiles)
-        .forEach(this::addTreeOther);
-  }
-
-  private boolean isNotInManifestFiles(String fileName) {
-    return !manifestFiles.contains(fileName);
-  }
-
-  private void addTreeOther(String fileName) {
-    if (tree.getOther() == null) {
-      tree.setOther(new HashSet<>());
+
+    private boolean isNotInManifestFiles(String fileName) {
+        return !manifestFiles.contains(fileName);
     }
-    HeatStructureTree other = new HeatStructureTree(fileName, false);
-    fileTreeRef.put(fileName, other);
-    tree.getOther().add(other);
-  }
 
+    private void addTreeOther(String fileName) {
+        if (tree.getOther() == null) {
+            tree.setOther(new HashSet<>());
+        }
+        HeatStructureTree other = new HeatStructureTree(fileName, false);
+        fileTreeRef.put(fileName, other);
+        tree.getOther().add(other);
+    }
 
-  private void handleHeatContentReference(HeatStructureTree fileHeatStructureTree,
-                                          GlobalValidationContext globalContext) {
 
-    String fileName = fileHeatStructureTree.getFileName();
+    private void handleHeatContentReference(HeatStructureTree fileHeatStructureTree,
+                                            GlobalValidationContext globalContext) {
 
-    try (InputStream fileContent = this.heatContentMap.getFileContent(fileName)) {
-      HeatOrchestrationTemplate hot =
-          new YamlUtil().yamlToObject(fileContent, HeatOrchestrationTemplate.class);
+        String fileName = fileHeatStructureTree.getFileName();
+        try (InputStream fileContent = this.heatContentMap.getFileContent(fileName)) {
+            HeatOrchestrationTemplate hot =
+                    new YamlUtil().yamlToObject(fileContent, HeatOrchestrationTemplate.class);
 
-      Set<String> nestedSet = HeatTreeManagerUtil.getNestedFiles(fileName, hot, globalContext);
-      addHeatNestedFiles(fileHeatStructureTree, nestedSet);
+            Set<String> nestedSet = HeatTreeManagerUtil.getNestedFiles(hot);
+            addHeatNestedFiles(fileHeatStructureTree, nestedSet);
 
-      Set<String> artifactSet = HeatTreeManagerUtil.getArtifactFiles(fileName, hot, globalContext);
-      addHeatArtifactFiles(fileHeatStructureTree, artifactSet);
-    } catch (Exception ignore) {
-      LOGGER.debug("Invalid YAML received. No need to process content reference - ignoring", ignore);
-    }
-  }
-
-
-  private void addHeatArtifactFiles(HeatStructureTree fileHeatStructureTree,
-                                    Set<String> artifactSet) {
-    Artifact artifact;
-    for (String artifactName : artifactSet) {
-      FileData.Type type =
-          candidateOrphanArtifacts.get(artifactName) != null ? candidateOrphanArtifacts
-              .get(artifactName).getType() : null;
-      artifact = new Artifact(artifactName, type);
-      artifactRef.put(artifactName, artifact);
-      candidateOrphanArtifacts.remove(artifactName);
-      fileHeatStructureTree.addArtifactToArtifactList(artifact);
-    }
-  }
-
-
-  private void addHeatNestedFiles(HeatStructureTree fileHeatStructureTree, Set<String> nestedSet) {
-    HeatStructureTree childHeatStructureTree;
-    for (String nestedName : nestedSet) {
-      childHeatStructureTree = fileTreeRef.get(nestedName);
-      if (childHeatStructureTree == null) {
-        childHeatStructureTree = new HeatStructureTree();
-        childHeatStructureTree.setFileName(nestedName);
-        fileTreeRef.put(nestedName, childHeatStructureTree);
-      }
-      fileHeatStructureTree.addHeatStructureTreeToNestedHeatList(childHeatStructureTree);
-      nestedFiles.put(childHeatStructureTree.getFileName(), childHeatStructureTree);
+            Set<String> artifactSet = HeatTreeManagerUtil.getArtifactFiles(fileName, hot, globalContext);
+            addHeatArtifactFiles(fileHeatStructureTree, artifactSet);
+        } catch (Exception exp) {
+            LOGGER.debug("Invalid YAML received. No need to process content reference - ignoring", exp);
+        }
     }
-  }
-
-
-  /**
-   * Add errors.
-   *
-   * @param validationErrors the validation errors
-   */
-  public void addErrors(Map<String, List<ErrorMessage>> validationErrors) {
-
-    validationErrors.entrySet().stream().filter(entry ->{
-      return fileTreeRef.get(entry.getKey()) != null;
-    }).forEach(entry -> entry.getValue().stream().forEach(fileTreeRef.get(entry.getKey())::addErrorToErrorsList));
-
-    validationErrors.entrySet().stream().filter(entry -> {
-      return artifactRef.get(entry.getKey()) != null;
-    }).forEach(entry -> artifactRef.get(entry.getKey()).setErrors(entry.getValue()));
-
-  }
-
-  /**
-   * Scan tree.
-   *
-   * @param parent the parent
-   * @param data   the data
-   */
-  public void scanTree(String parent, List<FileData> data) {
-    String fileName;
-    FileData.Type type;
-    HeatStructureTree parentHeatStructureTree;
-    HeatStructureTree fileHeatStructureTree;
-    HeatStructureTree childHeatStructureTree;
-    Artifact artifact;
-    if (parent == null) {
-      parentHeatStructureTree = new HeatStructureTree();
-      fileTreeRef.put(SdcCommon.PARENT, parentHeatStructureTree);
-    } else {
-      parentHeatStructureTree = fileTreeRef.get(parent);
+
+
+    private void addHeatArtifactFiles(HeatStructureTree fileHeatStructureTree,
+                                      Set<String> artifactSet) {
+        Artifact artifact;
+        for (String artifactName : artifactSet) {
+            FileData.Type type =
+                    candidateOrphanArtifacts.get(artifactName) != null ? candidateOrphanArtifacts
+                            .get(artifactName).getType() : null;
+            artifact = new Artifact(artifactName, type);
+            artifactRef.put(artifactName, artifact);
+            candidateOrphanArtifacts.remove(artifactName);
+            fileHeatStructureTree.addArtifactToArtifactList(artifact);
+        }
     }
 
-    for (FileData fileData : data) {
-      fileName = fileData.getFile();
-      manifestFiles.add(fileName);
-      type = fileData.getType();
 
-      if (Objects.nonNull(type) && FileData.Type.HEAT.equals(type)) {
-        fileHeatStructureTree = fileTreeRef.get(fileName);
-        if (fileHeatStructureTree == null) {
-          fileHeatStructureTree = new HeatStructureTree();
-          fileTreeRef.put(fileName, fileHeatStructureTree);
+    private void addHeatNestedFiles(HeatStructureTree fileHeatStructureTree, Set<String> nestedSet) {
+        HeatStructureTree childHeatStructureTree;
+        for (String nestedName : nestedSet) {
+            childHeatStructureTree = fileTreeRef.get(nestedName);
+            if (childHeatStructureTree == null) {
+                childHeatStructureTree = new HeatStructureTree();
+                childHeatStructureTree.setFileName(nestedName);
+                fileTreeRef.put(nestedName, childHeatStructureTree);
+            }
+            fileHeatStructureTree.addHeatStructureTreeToNestedHeatList(childHeatStructureTree);
+            nestedFiles.put(childHeatStructureTree.getFileName(), childHeatStructureTree);
         }
-        fileHeatStructureTree.setFileName(fileName);
-        fileHeatStructureTree.setBase(fileData.getBase());
-        fileHeatStructureTree.setType(type);
-        handleHeatContentReference(fileHeatStructureTree, null);
-        parentHeatStructureTree.addHeatToHeatList(fileHeatStructureTree);
-        if (fileData.getData() != null) {
-          scanTree(fileName, fileData.getData());
+    }
+
+
+    /**
+     * Add errors.
+     *
+     * @param validationErrors the validation errors
+     */
+    public void addErrors(Map<String, List<ErrorMessage>> validationErrors) {
+
+        validationErrors.entrySet().stream()
+                .filter(entry -> fileTreeRef.get(entry.getKey()) != null)
+                .forEach(entry -> entry.getValue().forEach(fileTreeRef.get(entry.getKey())::addErrorToErrorsList));
+
+        validationErrors.entrySet().stream()
+                .filter(entry -> artifactRef.get(entry.getKey()) != null)
+                .forEach(entry -> artifactRef.get(entry.getKey()).setErrors(entry.getValue()));
+
+    }
+
+    /**
+     * Scan tree.
+     *
+     * @param parent the parent
+     * @param data   the data
+     */
+    public void scanTree(String parent, List<FileData> data) {
+        String fileName;
+        FileData.Type type;
+        HeatStructureTree parentHeatStructureTree;
+        HeatStructureTree fileHeatStructureTree;
+        HeatStructureTree childHeatStructureTree;
+        Artifact artifact;
+        if (parent == null) {
+            parentHeatStructureTree = new HeatStructureTree();
+            fileTreeRef.put(SdcCommon.PARENT, parentHeatStructureTree);
+        } else {
+            parentHeatStructureTree = fileTreeRef.get(parent);
         }
-      } else {
-        childHeatStructureTree = new HeatStructureTree();
-        childHeatStructureTree.setFileName(fileName);
-        childHeatStructureTree.setBase(fileData.getBase());
-        childHeatStructureTree.setType(type);
-        fileTreeRef.put(childHeatStructureTree.getFileName(), childHeatStructureTree);
-
-        if (type == null) {
-          parentHeatStructureTree.addOtherToOtherList(childHeatStructureTree);
-        } else if (FileData.Type.HEAT_NET.equals(type)) {
-          networkFileToParent.put(childHeatStructureTree, parentHeatStructureTree);
-          if (fileData.getData() != null) {
-            scanTree(fileName, fileData.getData());
-          }
-          handleHeatContentReference(childHeatStructureTree, null);
-
-        } else if (FileData.Type.HEAT_VOL.equals(type)) {
-          volumeFileToParent.put(childHeatStructureTree, parentHeatStructureTree);
-          if (fileData.getData() != null) {
-            scanTree(fileName, fileData.getData());
-          }
-          handleHeatContentReference(childHeatStructureTree, null);
-        } else if (FileData.Type.HEAT_ENV.equals(type)) {
-          if (parentHeatStructureTree != null && parentHeatStructureTree.getFileName() != null) {
-            parentHeatStructureTree.setEnv(childHeatStructureTree);
-          } else {
-            if (parentHeatStructureTree.getOther() == null) {
-              parentHeatStructureTree.setOther(new HashSet<>());
+
+        for (FileData fileData : data) {
+            fileName = fileData.getFile();
+            manifestFiles.add(fileName);
+            type = fileData.getType();
+
+            if (Objects.nonNull(type) && FileData.Type.HEAT.equals(type)) {
+                fileHeatStructureTree = fileTreeRef.get(fileName);
+                if (fileHeatStructureTree == null) {
+                    fileHeatStructureTree = new HeatStructureTree();
+                    fileTreeRef.put(fileName, fileHeatStructureTree);
+                }
+                fileHeatStructureTree.setFileName(fileName);
+                fileHeatStructureTree.setBase(fileData.getBase());
+                fileHeatStructureTree.setType(type);
+                handleHeatContentReference(fileHeatStructureTree, null);
+                parentHeatStructureTree.addHeatToHeatList(fileHeatStructureTree);
+                if (fileData.getData() != null) {
+                    scanTree(fileName, fileData.getData());
+                }
+            } else {
+                childHeatStructureTree = new HeatStructureTree();
+                childHeatStructureTree.setFileName(fileName);
+                childHeatStructureTree.setBase(fileData.getBase());
+                childHeatStructureTree.setType(type);
+                fileTreeRef.put(childHeatStructureTree.getFileName(), childHeatStructureTree);
+
+                if (type == null) {
+                    parentHeatStructureTree.addOtherToOtherList(childHeatStructureTree);
+                } else if (FileData.Type.HEAT_NET.equals(type)) {
+                    networkFileToParent.put(childHeatStructureTree, parentHeatStructureTree);
+                    if (fileData.getData() != null) {
+                        scanTree(fileName, fileData.getData());
+                    }
+                    handleHeatContentReference(childHeatStructureTree, null);
+
+                } else if (FileData.Type.HEAT_VOL.equals(type)) {
+                    volumeFileToParent.put(childHeatStructureTree, parentHeatStructureTree);
+                    if (fileData.getData() != null) {
+                        scanTree(fileName, fileData.getData());
+                    }
+                    handleHeatContentReference(childHeatStructureTree, null);
+                } else if (FileData.Type.HEAT_ENV.equals(type)) {
+                    if (parentHeatStructureTree != null && parentHeatStructureTree.getFileName() != null) {
+                        parentHeatStructureTree.setEnv(childHeatStructureTree);
+                    } else {
+                        if (parentHeatStructureTree.getOther() == null) {
+                            parentHeatStructureTree.setOther(new HashSet<>());
+                        }
+                        parentHeatStructureTree.getOther().add(childHeatStructureTree);
+                    }
+                } else {
+                    artifact = new Artifact(fileName, type);
+                    if (!artifactRef.keySet().contains(fileName)) {
+                        artifactRef.put(fileName, artifact);
+                        candidateOrphanArtifacts.put(fileName, artifact);
+                    }
+                }
             }
-            parentHeatStructureTree.getOther().add(childHeatStructureTree);
-          }
-        } else {
-          artifact = new Artifact(fileName, type);
-          if (!artifactRef.keySet().contains(fileName)) {
-            artifactRef.put(fileName, artifact);
-            candidateOrphanArtifacts.put(fileName, artifact);
-          }
         }
-      }
     }
-  }
-
-
-  private void addNonNestedVolumeNetworkToTree(
-      Map<HeatStructureTree, HeatStructureTree> netVolToParent, Set<String> nestedFileNames,
-      boolean isVolume) {
-    for (Map.Entry<HeatStructureTree, HeatStructureTree> entry : netVolToParent.entrySet()) {
-      HeatStructureTree netOrVolNode = entry.getKey();
-      HeatStructureTree parent = entry.getValue();
-      if (!nestedFileNames.contains(netOrVolNode.getFileName())) {
-        if (isVolume) {
-          parent.addVolumeFileToVolumeList(netOrVolNode);
-        } else {
-          parent.addNetworkToNetworkList(netOrVolNode);
+
+
+    private void addNonNestedVolumeNetworkToTree(
+            Map<HeatStructureTree, HeatStructureTree> netVolToParent, Set<String> nestedFileNames,
+            boolean isVolume) {
+        for (Map.Entry<HeatStructureTree, HeatStructureTree> entry : netVolToParent.entrySet()) {
+            HeatStructureTree netOrVolNode = entry.getKey();
+            HeatStructureTree parent = entry.getValue();
+            if (!nestedFileNames.contains(netOrVolNode.getFileName())) {
+                if (isVolume) {
+                    parent.addVolumeFileToVolumeList(netOrVolNode);
+                } else {
+                    parent.addNetworkToNetworkList(netOrVolNode);
+                }
+            }
         }
-      }
     }
-  }
 
 
-  public HeatStructureTree getTree() {
-    return tree;
-  }
+    public HeatStructureTree getTree() {
+        return tree;
+    }
 }
index 7a2dfc9..8c6d135 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
-*/
+ */
 
 
 package org.openecomp.sdc.heat.services.tree;
 
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.openecomp.core.utilities.file.FileContentHandler;
@@ -30,196 +36,185 @@ import org.openecomp.sdc.heat.datatypes.model.PropertiesMapKeyTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
 import org.openecomp.sdc.heat.services.HeatStructureUtil;
 
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
 public class HeatTreeManagerUtil {
 
-  private static final String TYPE = "type";
-  private HeatTreeManagerUtil() {
-
-  }
-
-  /**
-   * Init heat tree manager heat tree manager.
-   *
-   * @param fileContentMap the file content map
-   * @return the heat tree manager
-   */
-  public static HeatTreeManager initHeatTreeManager(FileContentHandler fileContentMap) {
-
-    HeatTreeManager heatTreeManager = new HeatTreeManager();
-    fileContentMap.getFileList().stream().forEach(
-            fileName -> heatTreeManager.addFile(fileName, fileContentMap.getFileContent(fileName)));
-
-    return heatTreeManager;
-  }
-
-  /**
-   * Gets nested files.
-   *
-   * @param filename the filename
-   * @param hot the hot
-   * @param globalContext the global context
-   * @return the nested files
-   */
-  public static Set<String> getNestedFiles(String filename, HeatOrchestrationTemplate hot,
-                                           GlobalValidationContext globalContext) {
-    Set<String> nestedFileList = new HashSet<>();
-    hot.getResources().values().stream().filter(
-            resource -> resource.getType().endsWith(".yaml") || resource.getType().endsWith(".yml"))
-            .forEach(resource -> nestedFileList.add(resource.getType()));
-
-    Set<String> resourceDefNestedFiles = getResourceDefNestedFiles(hot);
-    nestedFileList.addAll(resourceDefNestedFiles);
-    return nestedFileList;
-  }
-
-  /**
-   * Gets artifact files.
-   *
-   * @param filename the filename
-   * @param hot the hot
-   * @param globalContext the global context
-   * @return the artifact files
-   */
-  public static Set<String> getArtifactFiles(String filename, HeatOrchestrationTemplate hot,
-                                             GlobalValidationContext globalContext) {
-    Set<String> artifactSet = new HashSet<>();
-    Collection<Resource> resourcesValue =
-            hot.getResources() == null ? null : hot.getResources().values();
-    if (CollectionUtils.isNotEmpty(resourcesValue)) {
-      for (Resource resource : resourcesValue) {
-        Collection<Object> properties =
-                resource.getProperties() == null ? null : resource.getProperties().values();
-
-        artifactSet.addAll(getArtifactsFromPropertiesAndAddInArtifactSet(properties,
-                                      filename, globalContext));
-      }
+    private static final String TYPE = "type";
+
+    private HeatTreeManagerUtil() {
+
     }
-    return artifactSet;
-  }
-
-  private static Set<String> getArtifactsFromPropertiesAndAddInArtifactSet(Collection<Object> properties,
-                                                    String filename,
-                                                    GlobalValidationContext globalContext ){
-    Set<String> artifactSet = new HashSet<>();
-    if (CollectionUtils.isNotEmpty(properties)) {
-
-      for (Object property : properties) {
-        Set<String> artifactNames =
-                HeatStructureUtil.getReferencedValuesByFunctionName(filename, "get_file", property,
-                        globalContext);
-        artifactSet.addAll(artifactNames);
-      }
+
+    /**
+     * Init heat tree manager heat tree manager.
+     *
+     * @param fileContentMap the file content map
+     * @return the heat tree manager
+     */
+    public static HeatTreeManager initHeatTreeManager(FileContentHandler fileContentMap) {
+
+        HeatTreeManager heatTreeManager = new HeatTreeManager();
+        fileContentMap.getFileList().forEach(
+                fileName -> heatTreeManager.addFile(fileName, fileContentMap.getFileContent(fileName)));
+
+        return heatTreeManager;
     }
 
-    return artifactSet;
-  }
-
-  private static Set<String> getResourceDefNestedFiles(HeatOrchestrationTemplate hot) {
-    Set<String> resourceDefNestedFiles = new HashSet<>();
-    hot.getResources()
-            .entrySet().stream().filter(entry -> entry.getValue().getType()
-            .equals(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource()))
-            .filter(entry ->
-                    getResourceDef(entry.getValue()) != null
-                            && HeatStructureUtil.isNestedResource(
-                            getResourceDef(entry.getValue())
-                                    .getType()))
-            .forEach(entry -> resourceDefNestedFiles.add(
-                    getResourceDef( entry.getValue()).getType()));
-    return resourceDefNestedFiles;
-  }
-
-  /**
-   * Gets resource def.
-   *
-   * @param resource the resource
-   * @return the resource def
-   */
-  @SuppressWarnings("unchecked")
-  public static Resource getResourceDef( Resource resource) {
-    Resource resourceDef = null;
-    Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
-            : (Map<String, Object>) resource.getProperties().get(
-            PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
-    if (resourceDefValueMap != null && MapUtils.isNotEmpty(resourceDefValueMap) ) {
-      Object resourceDefType = resourceDefValueMap.get(TYPE);
-      if ( resourceDefType instanceof String && isResourceGroupTypeNested((String) resourceDefType)) {
-        resourceDef = new Resource();
-        resourceDef.setType((String) resourceDefType);
-        //noinspection unchecked
-        resourceDef.setProperties((Map<String, Object>) resourceDefValueMap.get("properties"));
-      }
+    /**
+     * Will verify the resource type and if type is of nested will return the nested file name
+     *
+     * @param hot Containing all translated data from heat file
+     * @return the nested files
+     */
+    public static Set<String> getNestedFiles(HeatOrchestrationTemplate hot) {
+        Set<String> nestedFileList = new HashSet<>();
+        hot.getResources().values().stream().filter(
+                resource -> resource.getType().endsWith(".yaml") || resource.getType().endsWith(".yml"))
+                .forEach(resource -> nestedFileList.add(resource.getType()));
+
+        Set<String> resourceDefNestedFiles = getResourceDefNestedFiles(hot);
+        nestedFileList.addAll(resourceDefNestedFiles);
+        return nestedFileList;
+    }
+
+    /**
+     * Verify if any artifact present in file whose detail is provided and return Artifact name
+     *
+     * @param filename      name of file where artifact is too be looked for
+     * @param hot           translated heat data
+     * @param globalContext the global context
+     * @return the artifact files name
+     */
+    public static Set<String> getArtifactFiles(String filename, HeatOrchestrationTemplate hot,
+                                               GlobalValidationContext globalContext) {
+        Set<String> artifactSet = new HashSet<>();
+        Collection<Resource> resourcesValue =
+                hot.getResources() == null ? null : hot.getResources().values();
+        if (CollectionUtils.isNotEmpty(resourcesValue)) {
+            for (Resource resource : resourcesValue) {
+                Collection<Object> properties =
+                        resource.getProperties() == null ? null : resource.getProperties().values();
+
+                artifactSet.addAll(getArtifactsFromPropertiesAndAddInArtifactSet(properties,
+                        filename, globalContext));
+            }
+        }
+        return artifactSet;
+    }
+
+    private static Set<String> getArtifactsFromPropertiesAndAddInArtifactSet(Collection<Object> properties,
+                                                                             String filename,
+                                                                             GlobalValidationContext globalContext) {
+        Set<String> artifactSet = new HashSet<>();
+        if (CollectionUtils.isNotEmpty(properties)) {
+
+            for (Object property : properties) {
+                Set<String> artifactNames =
+                        HeatStructureUtil.getReferencedValuesByFunctionName(filename, "get_file", property,
+                                globalContext);
+                artifactSet.addAll(artifactNames);
+            }
+        }
+
+        return artifactSet;
+    }
 
+    private static Set<String> getResourceDefNestedFiles(HeatOrchestrationTemplate hot) {
+        Set<String> resourceDefNestedFiles = new HashSet<>();
+        hot.getResources()
+                .entrySet().stream().filter(entry -> entry.getValue().getType()
+                .equals(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource()))
+                .filter(entry ->
+                        getResourceDef(entry.getValue()) != null
+                                && HeatStructureUtil.isNestedResource(
+                                getResourceDef(entry.getValue())
+                                        .getType()))
+                .forEach(entry -> resourceDefNestedFiles.add(
+                        getResourceDef(entry.getValue()).getType()));
+        return resourceDefNestedFiles;
     }
-    return resourceDef;
-  }
-
-  @SuppressWarnings("unchecked")
-  public static void checkResourceGroupTypeValid(String filename, String resourceName,
-                                                 Resource resource,
-                                                 GlobalValidationContext globalContext) {
-    Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
-            : (Map<String, Object>) resource.getProperties().get(
-            PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
-    if (resourceDefValueMap != null && MapUtils.isNotEmpty(resourceDefValueMap) ) {
-      Object resourceDefType = resourceDefValueMap.get(TYPE);
-      if (Objects.nonNull(resourceDefType) && !(resourceDefType instanceof String) ) {
-        globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
+
+    /**
+     * Gets resource def.
+     *
+     * @param resource the resource
+     * @return the resource def
+     */
+    @SuppressWarnings("unchecked")
+    public static Resource getResourceDef(Resource resource) {
+        Resource resourceDef = null;
+        Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
+                : (Map<String, Object>) resource.getProperties().get(
+                        PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
+        if (MapUtils.isNotEmpty(resourceDefValueMap)) {
+            Object resourceDefType = resourceDefValueMap.get(TYPE);
+            if (resourceDefType instanceof String && isResourceGroupTypeNested((String) resourceDefType)) {
+                resourceDef = new Resource();
+                resourceDef.setType((String) resourceDefType);
+                //noinspection unchecked
+                resourceDef.setProperties((Map<String, Object>) resourceDefValueMap.get("properties"));
+            }
+
+        }
+        return resourceDef;
+    }
+
+    @SuppressWarnings("unchecked")
+    public static void checkResourceGroupTypeValid(String filename, String resourceName,
+                                                   Resource resource,
+                                                   GlobalValidationContext globalContext) {
+        Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
+                : (Map<String, Object>) resource.getProperties().get(
+                        PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
+        if (MapUtils.isNotEmpty(resourceDefValueMap)) {
+            Object resourceDefType = resourceDefValueMap.get(TYPE);
+            if (Objects.nonNull(resourceDefType) && !(resourceDefType instanceof String)) {
+                globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
                         .getErrorWithParameters(
                                 globalContext.getMessageCode(),
                                 Messages.INVALID_RESOURCE_GROUP_TYPE.getErrorMessage(),
                                 resourceName, resourceDefType.toString()));
-      }
+            }
+        }
     }
-  }
-
-  @SuppressWarnings("unchecked")
-  public static void checkResourceTypeValid(String filename, String resourceName,
-                                            Resource resource,
-                                            GlobalValidationContext globalContext) {
-    Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
-            : (Map<String, Object>) resource.getProperties().get(
-            PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
-    if (resourceDefValueMap != null && MapUtils.isNotEmpty(resourceDefValueMap) ) {
-      Object resourceDefType = resourceDefValueMap.get(TYPE);
-      if (Objects.isNull(resourceDefType)) {
-        globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
+
+    @SuppressWarnings("unchecked")
+    public static void checkResourceTypeValid(String filename, String resourceName,
+                                              Resource resource,
+                                              GlobalValidationContext globalContext) {
+        Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
+                : (Map<String, Object>) resource.getProperties().get(PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
+        if (MapUtils.isNotEmpty(resourceDefValueMap)) {
+            Object resourceDefType = resourceDefValueMap.get(TYPE);
+            if (Objects.isNull(resourceDefType)) {
+                globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
                         .getErrorWithParameters(
                                 globalContext.getMessageCode(), Messages.INVALID_RESOURCE_TYPE.getErrorMessage(),
                                 "null", resourceName));
-      }
+            }
+        }
     }
-  }
-
-  public static boolean isResourceGroupTypeNested(String resourceDefType) {
-    return HeatStructureUtil.isNestedResource(resourceDefType);
-  }
-
-  public static boolean checkIfResourceGroupTypeIsNested(String filename, String resourceName,
-                                                         Resource resource,
-                                                         GlobalValidationContext globalContext) {
-    //noinspection unchecked
-    Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
-            : (Map<String, Object>) resource.getProperties().get(
-            PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
-    if (resourceDefValueMap != null && MapUtils.isNotEmpty(resourceDefValueMap) ) {
-      Object resourceDefType = resourceDefValueMap.get(TYPE);
-      if (resourceDefType instanceof String && isResourceGroupTypeNested((String) resourceDefType)) {
-
-        globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
+
+    public static boolean isResourceGroupTypeNested(String resourceDefType) {
+        return HeatStructureUtil.isNestedResource(resourceDefType);
+    }
+
+    public static boolean checkIfResourceGroupTypeIsNested(String filename, String resourceName,
+                                                           Resource resource,
+                                                           GlobalValidationContext globalContext) {
+        //noinspection unchecked
+        Map<String, Object> resourceDefValueMap = resource.getProperties() == null ? null
+                : (Map<String, Object>) resource.getProperties().get(PropertiesMapKeyTypes.RESOURCE_DEF.getKeyMap());
+        if (MapUtils.isNotEmpty(resourceDefValueMap)) {
+            Object resourceDefType = resourceDefValueMap.get(TYPE);
+            if (resourceDefType instanceof String && isResourceGroupTypeNested((String) resourceDefType)) {
+                globalContext.addMessage(filename, ErrorLevel.WARNING, ErrorMessagesFormatBuilder
                         .getErrorWithParameters(
                                 globalContext.getMessageCode(),
                                 Messages.INVALID_RESOURCE_GROUP_TYPE.getErrorMessage(),
                                 resourceName, resourceDefType.toString()));
-        return true;
-      }
+                return true;
+            }
+        }
+        return false;
     }
-    return false;
-  }
 }
index c711c72..944ab62 100644 (file)
@@ -1,9 +1,20 @@
-package org.openecomp.sdc.heat.services.tree;
+/*
+ * Copyright © 2017-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
 
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.sdc.common.utils.SdcCommon;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+package org.openecomp.sdc.heat.services.tree;
 
 import java.io.File;
 import java.util.HashMap;
@@ -12,56 +23,84 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.regex.Pattern;
 
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+
+/**
+ * The type Tosca tree manager.
+ */
 public class ToscaTreeManager {
-  private FileContentHandler csarContentMap = new FileContentHandler();
-  private HeatStructureTree tree = new HeatStructureTree();
-  private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
 
+    private FileContentHandler csarContentMap = new FileContentHandler();
+    private HeatStructureTree tree = new HeatStructureTree();
+    private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
 
-  public void addFile(String fileName, byte[] content) {
-    if (!fileName.equals(SdcCommon.CSAR_MANIFEST_NAME)) {
-      csarContentMap.addFile(fileName, content);
-    }
-  }
 
-  public void createTree() {
-    for (Map.Entry<String, byte[]> fileEntry : csarContentMap.getFiles().entrySet()) {
-      String[] splitFilename = getFullFileNameAsArray(fileEntry.getKey());
-      addFileToTree(splitFilename, 0, splitFilename[0], tree);
+    /**
+     * Add file.
+     *
+     * @param fileName the file name
+     * @param content  the content
+     */
+    public void addFile(String fileName, byte[] content) {
+        if (!fileName.equals(SdcCommon.CSAR_MANIFEST_NAME)) {
+            csarContentMap.addFile(fileName, content);
+        }
     }
-  }
 
-  private void addFileToTree(String[] splitFilename, int startIndex, String fullFileName,
-                             HeatStructureTree parent) {
-    fileTreeRef.putIfAbsent(fullFileName, new HeatStructureTree());
-    HeatStructureTree heatStructureTree = fileTreeRef.get(fullFileName);
-    heatStructureTree.setFileName(splitFilename[startIndex]);
-    if (startIndex < splitFilename.length - 1) {
-      addFileToTree(splitFilename, startIndex + 1,
-          getFullFileName(fullFileName, splitFilename[startIndex + 1]), heatStructureTree);
+    /**
+     * Create tree.
+     */
+    public void createTree() {
+        for (Map.Entry<String, byte[]> fileEntry : csarContentMap.getFiles().entrySet()) {
+            String[] splitFilename = getFullFileNameAsArray(fileEntry.getKey());
+            addFileToTree(splitFilename, 0, splitFilename[0], tree);
+        }
     }
-    parent.addHeatStructureTreeToNestedHeatList(heatStructureTree);
-  }
 
-  public void addErrors(Map<String, List<ErrorMessage>> validationErrors) {
-    validationErrors.entrySet().stream().filter(entry ->
-        Objects.nonNull(fileTreeRef.get(entry.getKey()))).forEach(entry -> entry.getValue()
-        .forEach(error -> fileTreeRef.get(entry.getKey()).addErrorToErrorsList(error)));
-  }
+    private void addFileToTree(String[] splitFilename, int startIndex, String fullFileName,
+                               HeatStructureTree parent) {
+        fileTreeRef.putIfAbsent(fullFileName, new HeatStructureTree());
+        HeatStructureTree heatStructureTree = fileTreeRef.get(fullFileName);
+        heatStructureTree.setFileName(splitFilename[startIndex]);
+        if (startIndex < splitFilename.length - 1) {
+            addFileToTree(splitFilename, startIndex + 1,
+                    getFullFileName(fullFileName, splitFilename[startIndex + 1]), heatStructureTree);
+        }
+        parent.addHeatStructureTreeToNestedHeatList(heatStructureTree);
+    }
 
-  private String getFullFileName(String parentFullName, String fileName) {
-    return parentFullName + File.separator + fileName;
-  }
+    /**
+     * Add errors.
+     *
+     * @param validationErrors the validation errors
+     */
+    public void addErrors(Map<String, List<ErrorMessage>> validationErrors) {
+        validationErrors.entrySet().stream().filter(entry ->
+                Objects.nonNull(fileTreeRef.get(entry.getKey()))).forEach(entry -> entry.getValue()
+                .forEach(error -> fileTreeRef.get(entry.getKey()).addErrorToErrorsList(error)));
+    }
 
-  private String[] getFullFileNameAsArray(String filename) {
-    if (filename.contains("/")) {
-      return filename.split("/");
+    private String getFullFileName(String parentFullName, String fileName) {
+        return parentFullName + File.separator + fileName;
     }
 
-    return filename.split(Pattern.quote(File.separator));
-  }
+    private String[] getFullFileNameAsArray(String filename) {
+        if (filename.contains("/")) {
+            return filename.split("/");
+        }
+
+        return filename.split(Pattern.quote(File.separator));
+    }
 
-  public HeatStructureTree getTree() {
-    return tree;
-  }
+    /**
+     * Gets tree.
+     *
+     * @return the tree
+     */
+    public HeatStructureTree getTree() {
+        return tree;
+    }
 }
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatResourceUtilTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatResourceUtilTest.java
new file mode 100644 (file)
index 0000000..93f8fc9
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.heat.services;
+
+import java.util.Optional;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+
+public class HeatResourceUtilTest {
+
+    private static final String ROLE = "role";
+
+    @Test
+    public void testEvaluateNetworkRoleFromResourceIdEmpty() {
+        Assert.assertFalse(HeatResourceUtil.evaluateNetworkRoleFromResourceId(null, null).isPresent());
+    }
+
+    @Test
+    public void testEvaluateNetworkRoleFromResourceIdNeutronExternal() {
+        Optional<String> networkRole = HeatResourceUtil.evaluateNetworkRoleFromResourceId(
+                "vm_type_1_role_port_1", HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource());
+
+        Assert.assertTrue(networkRole.isPresent());
+        Assert.assertEquals(networkRole.get(), ROLE);
+    }
+
+    @Test
+    public void testEvaluateNetworkRoleFromResourceIdNeutronInternal() {
+        Optional<String> networkRole = HeatResourceUtil.evaluateNetworkRoleFromResourceId(
+                "vm_type_1_int_role_port_1", HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource());
+
+        Assert.assertTrue(networkRole.isPresent());
+        Assert.assertEquals(networkRole.get(), ROLE);
+    }
+
+    @Test
+    public void testEvaluateNetworkRoleFromResourceIdVMIExternal() {
+        Optional<String> networkRole = HeatResourceUtil.evaluateNetworkRoleFromResourceId(
+                "vm_type_1_role_vmi_1", HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE
+                        .getHeatResource());
+
+        Assert.assertTrue(networkRole.isPresent());
+        Assert.assertEquals(networkRole.get(), ROLE);
+    }
+
+    @Test
+    public void testEvaluateNetworkRoleFromResourceIdVMIInternal() {
+        Optional<String> networkRole = HeatResourceUtil.evaluateNetworkRoleFromResourceId(
+                "vm_type_1_int_role_vmi_1", HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE
+                        .getHeatResource());
+
+        Assert.assertTrue(networkRole.isPresent());
+        Assert.assertEquals(networkRole.get(), ROLE);
+    }
+
+    @Test
+    public void testExtractNetworkRoleFromSubInterfaceIdEmpty() {
+        Assert.assertFalse(HeatResourceUtil.extractNetworkRoleFromSubInterfaceId(null, null).isPresent());
+    }
+
+    @Test
+    public void testExtractNetworkRoleFromSubInterfaceId() {
+        Optional<String> networkRole = HeatResourceUtil.extractNetworkRoleFromSubInterfaceId(
+                "vm_type_1_subint_role_vmi_1", HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE
+                        .getHeatResource());
+
+        Assert.assertTrue(networkRole.isPresent());
+        Assert.assertEquals(networkRole.get(), ROLE);
+    }
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatStructureUtilTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/HeatStructureUtilTest.java
new file mode 100644 (file)
index 0000000..70f149b
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.heat.services;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.validation.types.GlobalValidationContext;
+import org.openecomp.sdc.heat.datatypes.model.ResourceReferenceFunctions;
+
+public class HeatStructureUtilTest {
+
+    @Mock
+    private GlobalValidationContext globalValidationContextMock;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testIsResourceNestedFalse() {
+        Assert.assertFalse(HeatStructureUtil.isNestedResource("Test.txt"));
+    }
+
+    @Test
+    public void testIsResourceNestedNull() {
+        Assert.assertFalse(HeatStructureUtil.isNestedResource(null));
+    }
+
+    @Test
+    public void testIsResourceNestedTrue() {
+        Assert.assertTrue(HeatStructureUtil.isNestedResource("Test.yml"));
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameAddMessageCall() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap.put(ResourceReferenceFunctions.GET_RESOURCE.getFunction(), Collections.emptyList());
+
+        Mockito.doNothing().when(globalValidationContextMock).addMessage(Mockito.anyString(), Mockito.any(),
+                Mockito.anyString());
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_RESOURCE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Mockito.verify(globalValidationContextMock, Mockito.times(1))
+                .addMessage(Mockito.anyString(), Mockito.any(), Mockito.anyString());
+        Assert.assertTrue(valueNames.isEmpty());
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameGetFile() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap.put(ResourceReferenceFunctions.GET_FILE.getFunction(), "file:///filename");
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Assert.assertFalse(valueNames.isEmpty());
+        Assert.assertTrue(valueNames.contains("filename"));
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameGetFileValueList() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap
+                .put(ResourceReferenceFunctions.GET_FILE.getFunction(), Collections.singletonList("file:///filename"));
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Assert.assertFalse(valueNames.isEmpty());
+        Assert.assertTrue(valueNames.contains("filename"));
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameGetFileValueListWithAnotherList() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap.put(ResourceReferenceFunctions.GET_FILE.getFunction(),
+                Collections.singletonList(Collections.emptyList()));
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Assert.assertTrue(valueNames.isEmpty());
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNamePassingPropertyMapWithSet() {
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), Collections.singletonList(new HashSet<>()),
+                globalValidationContextMock);
+
+        Assert.assertTrue(valueNames.isEmpty());
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameGetFileValueListSet() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap.put(ResourceReferenceFunctions.GET_FILE.getFunction(),
+                new HashSet<>());
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Assert.assertTrue(valueNames.isEmpty());
+    }
+
+    @Test
+    public void testGetReferencedValuesByFunctionNameIncorrectKeyWithSet() {
+        Map<String, Object> propertyMap = new HashMap<>();
+        propertyMap.put("test", new HashSet<>());
+
+        Set<String> valueNames = HeatStructureUtil.getReferencedValuesByFunctionName("Main.yml",
+                ResourceReferenceFunctions.GET_FILE.getFunction(), propertyMap, globalValidationContextMock);
+
+        Assert.assertTrue(valueNames.isEmpty());
+    }
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/manifest/ManifestUtilTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/manifest/ManifestUtilTest.java
new file mode 100644 (file)
index 0000000..13cf5c9
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.heat.services.manifest;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdc.heat.datatypes.manifest.FileData;
+import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
+
+public class ManifestUtilTest {
+
+    @Test
+    public void testGetFileAndItsEnvNull() {
+        Assert.assertTrue(ManifestUtil.getFileAndItsEnv(new ManifestContent()).isEmpty());
+    }
+
+    @Test
+    public void testGetFileAndItsEnv() {
+
+        Assert.assertEquals(ManifestUtil.getFileAndItsEnv(createManifestContent()).size(), 1);
+    }
+
+    @Test
+    public void testGetFileTypeMapDataNull() {
+        Assert.assertTrue(ManifestUtil.getFileTypeMap(new ManifestContent()).isEmpty());
+    }
+
+    @Test
+    public void testGetFileTypeMap() {
+        Map<String, FileData.Type> fileTypeMap = ManifestUtil.getFileTypeMap(createManifestContent());
+
+        Assert.assertEquals(fileTypeMap.size(), 2);
+        Assert.assertTrue(fileTypeMap.containsKey("Main.yml") && fileTypeMap.containsKey("Test.yml"));
+    }
+
+    @Test
+    public void testGetFileTypeMapDataBlank() {
+        ManifestContent manifestContent = new ManifestContent();
+        manifestContent.setData(Collections.emptyList());
+
+        Assert.assertTrue(ManifestUtil.getFileTypeMap(manifestContent).isEmpty());
+    }
+
+    @Test
+    public void testGetArtifactsDataNull() {
+        Assert.assertTrue(ManifestUtil.getArtifacts(new ManifestContent()).isEmpty());
+    }
+
+    @Test
+    public void testGetArtifacts() {
+        ManifestContent manifestContent = createManifestContent();
+        manifestContent.getData().get(0).getData().get(0).setType(FileData.Type.OTHER);
+
+        Set<String> typeSet = ManifestUtil.getArtifacts(manifestContent);
+        Assert.assertEquals(typeSet.size(), 1);
+        Assert.assertTrue(typeSet.contains("Test.yml"));
+    }
+
+    @Test
+    public void testGetBaseFilesDataNull() {
+        Assert.assertTrue(ManifestUtil.getArtifacts(new ManifestContent()).isEmpty());
+    }
+
+    @Test
+    public void testGetBaseFiles() {
+        Set<String> typeSet = ManifestUtil.getBaseFiles(createManifestContent());
+        Assert.assertEquals(typeSet.size(), 1);
+        Assert.assertTrue(typeSet.contains("Main.yml"));
+    }
+
+    private ManifestContent createManifestContent() {
+
+        FileData fileData1 = new FileData();
+        fileData1.setFile("Test.yml");
+        fileData1.setType(FileData.Type.HEAT_ENV);
+
+        FileData fileData = new FileData();
+        fileData.setFile("Main.yml");
+        fileData.setType(FileData.Type.HEAT_ENV);
+        fileData.setBase(true);
+
+        fileData.setData(Collections.singletonList(fileData1));
+
+        ManifestContent manifestContent = new ManifestContent();
+        manifestContent.setData(Collections.singletonList(fileData));
+
+        return manifestContent;
+    }
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java
new file mode 100644 (file)
index 0000000..e3e1979
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.heat.services.tree;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+
+public class HeatTreeManagerTest {
+
+    @Test
+    public void testCreateTree() throws IOException {
+        HeatTreeManager heatTreeManager = new HeatTreeManager();
+        addFile(heatTreeManager, "mock/model/MANIFEST.json", SdcCommon.MANIFEST_NAME);
+        addFile(heatTreeManager, "mock/model/first.yaml", "first.yaml");
+        addFile(heatTreeManager, "mock/model/second.yaml", "second.yaml");
+        addFile(heatTreeManager, "mock/model/first.env", "first.env");
+        addFile(heatTreeManager, "mock/model/base_cscf_volume.yaml", "base_cscf_volume.yaml");
+        addFile(heatTreeManager, "mock/model/network.yml", "network.yml");
+        addFile(heatTreeManager, "mock/model/testHeat.yml", "testHeat.yml");
+        addFile(heatTreeManager, "mock/model/nested.yml", "nested.yml");
+        addFile(heatTreeManager, "mock/model/base_cscf_volume.env", "base_cscf_volume.env");
+
+        heatTreeManager.createTree();
+
+        HeatStructureTree heatStructureTree = heatTreeManager.getTree();
+        Assert.assertNotNull(heatStructureTree);
+        Assert.assertEquals(1, heatStructureTree.getHeat().size());
+        Assert.assertEquals(1, heatStructureTree.getNetwork().size());
+    }
+
+    private void addFile(HeatTreeManager heatTreeManager, String fileLocation, String fileName)
+            throws IOException {
+
+        List<URL> urlList = FileUtils.getAllLocations(fileLocation);
+        try (InputStream inputStream = new FileInputStream(new File(urlList.get(0).getPath()))) {
+            heatTreeManager.addFile(fileName, inputStream);
+        }
+    }
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerUtilTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerUtilTest.java
new file mode 100644 (file)
index 0000000..6e34350
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.heat.services.tree;
+
+import java.io.File;
+import java.net.URL;
+import java.util.AbstractMap;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.validation.types.GlobalValidationContext;
+import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+
+public class HeatTreeManagerUtilTest {
+
+    private static final String TEST_YML = "test.yml";
+    private static final String TEST = "test";
+    private static final String RESOURCE_DEF = "resource_def";
+
+    @Mock
+    private HeatTreeManager heatTreeManager;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testInitHeatTreeManager() {
+        FileContentHandler fileContentHandler = getFileContentHandler();
+
+        Mockito.doNothing().when(heatTreeManager).addFile(Mockito.any(), Mockito.any());
+        HeatTreeManagerUtil.initHeatTreeManager(fileContentHandler);
+        Mockito.verify(heatTreeManager, Mockito.times(0)).addFile(Mockito.any(), Mockito.any());
+    }
+
+    @Test
+    public void testGetNestedFiles() {
+        HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
+        heatOrchestrationTemplate.setResources(getResourceMap("Type1.yml"));
+        Set<String> nestedFilesSet = HeatTreeManagerUtil.getNestedFiles(heatOrchestrationTemplate);
+
+        Assert.assertNotNull(nestedFilesSet);
+        Assert.assertEquals(nestedFilesSet.size(), 1);
+    }
+
+    @Test
+    public void testGetResourceDefNested() {
+        HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
+        heatOrchestrationTemplate.setResources(getResourceMap("OS::Heat::ResourceGroup"));
+
+        Set<String> nestedFilesSet = HeatTreeManagerUtil.getNestedFiles(heatOrchestrationTemplate);
+        Assert.assertNotNull(nestedFilesSet);
+        Assert.assertTrue(nestedFilesSet.size() ==  1 && nestedFilesSet.contains(TEST_YML));
+    }
+
+    @Test
+    public void testGetArtifactFiles() {
+        HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
+        heatOrchestrationTemplate.setResources(getResourceMap("Type1.yml"));
+        Set<String> nestedFilesSet = HeatTreeManagerUtil.getArtifactFiles("filename.yml", heatOrchestrationTemplate,
+                null);
+
+        Assert.assertNotNull(nestedFilesSet);
+        Assert.assertTrue(nestedFilesSet.contains(TEST));
+    }
+
+    @Test
+    public void testGetResourceDefIfProvidedResourceIsNull() {
+        Assert.assertNull(HeatTreeManagerUtil.getResourceDef(new Resource()));
+    }
+
+    @Test
+    public void testGetResourceDef() {
+        Resource resource = new Resource();
+
+        Map<String, Object> resourceMap = new HashMap<>();
+        Map<String, String> nestedResourceMap = new HashMap<String, String>() {{
+            put("type", TEST_YML);
+        }};
+
+        resourceMap.put(RESOURCE_DEF, nestedResourceMap);
+        resource.setProperties(resourceMap);
+        Resource resultResource = HeatTreeManagerUtil.getResourceDef(resource);
+        Assert.assertNotNull(resultResource);
+        Assert.assertEquals(TEST_YML, resultResource.getType());
+    }
+
+    @Test
+    public void testCheckResourceGroupTypeValid() {
+        Resource resource = new Resource();
+
+        Map<String, Object> resourceMap = new HashMap<>();
+        Map<String, Object> nestedResourceMap = new HashMap<String, Object>() {{
+            put("type", Collections.emptyList());
+        }};
+
+        resourceMap.put(RESOURCE_DEF, nestedResourceMap);
+        resource.setProperties(resourceMap);
+
+        GlobalValidationContext globalValidationContextMock = Mockito.mock(GlobalValidationContext.class);
+        Mockito.doNothing().when(globalValidationContextMock).addMessage(Mockito.anyString(), Mockito.any(), Mockito
+                .anyString());
+
+        HeatTreeManagerUtil.checkResourceGroupTypeValid(TEST_YML, TEST, resource, globalValidationContextMock);
+
+        Mockito.verify(globalValidationContextMock, Mockito.times(1))
+                .addMessage(Mockito.anyString(), Mockito.any(), Mockito.anyString());
+    }
+
+    @Test
+    public void testCheckResourceTypeValid() {
+        Resource resource = new Resource();
+
+        Map<String, Object> resourceMap = new HashMap<>();
+        Map<String, Object> nestedResourceMap = new HashMap<String, Object>() {{
+            put("properties", Collections.emptyList());
+        }};
+
+        resourceMap.put(RESOURCE_DEF, nestedResourceMap);
+        resource.setProperties(resourceMap);
+
+        GlobalValidationContext globalValidationContextMock = Mockito.mock(GlobalValidationContext.class);
+        Mockito.doNothing().when(globalValidationContextMock).addMessage(Mockito.anyString(), Mockito.any(), Mockito
+                .anyString());
+
+        HeatTreeManagerUtil.checkResourceTypeValid(TEST_YML, TEST, resource, globalValidationContextMock);
+
+        Mockito.verify(globalValidationContextMock, Mockito.times(1))
+                .addMessage(Mockito.anyString(), Mockito.any(), Mockito.anyString());
+    }
+
+    @Test
+    public void testCheckIfResourceGroupTypeIsNested() {
+        Resource resource = new Resource();
+
+        Map<String, Object> resourceMap = new HashMap<>();
+        Map<String, Object> nestedResourceMap = new HashMap<String, Object>() {{
+            put("type", TEST_YML);
+        }};
+
+        resourceMap.put(RESOURCE_DEF, nestedResourceMap);
+        resource.setProperties(resourceMap);
+
+        GlobalValidationContext globalValidationContextMock = Mockito.mock(GlobalValidationContext.class);
+        Mockito.doNothing().when(globalValidationContextMock).addMessage(Mockito.anyString(), Mockito.any(), Mockito
+                .anyString());
+
+        boolean result = HeatTreeManagerUtil
+                .checkIfResourceGroupTypeIsNested(TEST_YML, TEST, resource, globalValidationContextMock);
+
+        Mockito.verify(globalValidationContextMock, Mockito.times(1))
+                .addMessage(Mockito.anyString(), Mockito.any(), Mockito.anyString());
+
+        Assert.assertTrue(result);
+    }
+
+    @Test
+    public void testCheckIfResourceGroupTypeIsNestedNull() {
+        Assert.assertFalse(HeatTreeManagerUtil.checkIfResourceGroupTypeIsNested(TEST_YML, TEST, new Resource(),
+                null));
+    }
+
+    private FileContentHandler getFileContentHandler() {
+        FileContentHandler fileContentHandler = new FileContentHandler();
+        Map<String, byte[]> filesByteMap = new HashMap<>();
+        List<URL> urlList = FileUtils.getAllLocations("mock/model");
+        File files = new File(urlList.get(0).getPath());
+        if (files.isDirectory()) {
+            int fileCount = 0;
+            for (File file : Objects.requireNonNull(files.listFiles())) {
+                byte[] bytesArray = new byte[(int) file.length()];
+                filesByteMap.put("File" + ++fileCount, bytesArray);
+            }
+        }
+
+        fileContentHandler.setFiles(filesByteMap);
+
+        return fileContentHandler;
+    }
+
+    private Map<String, Resource> getResourceMap(String type) {
+        Resource resource = new Resource();
+        resource.setType(type);
+        Map<String, String> map = new HashMap<>();
+        map.put("get_file", TEST);
+        resource.setProperties(new HashMap<String, Object>() {{
+            put("get_file", Collections.singletonList(map));
+            put("resource_def", new HashMap<String, Object>() {{
+                put("type", TEST_YML);
+            }});
+        }});
+
+
+        return Stream.of(new AbstractMap.SimpleEntry<>("Res1", resource))
+                .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
+    }
+}
index 0cfac52..4ccf7ea 100644 (file)
+/*
+ * Copyright © 2017-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
 package org.openecomp.sdc.heat.services.tree;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
 import org.junit.Assert;
 import org.junit.Test;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.core.utilities.json.JsonUtil;
 import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.regex.Pattern;
-
 public class ToscaTreeManagerTest {
-  private static final String BASE_DIR = "/mock/toscaTree/";
-  private static final String IN = "in";
-  private static final String OUT = "out";
-  private static final String EXPECTED_TREE_FILE = "/expectedTree.json";
-  private ToscaTreeManager toscaTreeManager = new ToscaTreeManager();
-
-  @Test
-  public void testTreeWithDiffFileNames() throws IOException {
-    String inputDirectory = BASE_DIR + "diffFileNames/" + IN;
-    String outputFileName = BASE_DIR + "diffFileNames/" + OUT + EXPECTED_TREE_FILE;
-
-    testTreeManager(inputDirectory, outputFileName);
-  }
-
-  @Test
-  public void testDirectoriesWithSimilarNameUnderDifferentRoots() throws IOException {
-    String inputDirectory = BASE_DIR + "similarDirectoryName/" + IN;
-    String outputFileName = BASE_DIR + "similarDirectoryName/" + OUT + EXPECTED_TREE_FILE;
-
-    testTreeManager(inputDirectory, outputFileName);
-  }
-
-  @Test
-  public void testTwoFilesUnderSameDirectory() throws IOException {
-    String inputDirectory = BASE_DIR + "twoFilesUnderSameDirectory/" + IN;
-    String outputFileName = BASE_DIR + "twoFilesUnderSameDirectory/" + OUT + EXPECTED_TREE_FILE;
-
-    testTreeManager(inputDirectory, outputFileName);
-  }
-
-  private void testTreeManager(String inputDirectory, String outputFileName) throws IOException {
-    initTreeManager(inputDirectory);
-    toscaTreeManager.createTree();
-    HeatStructureTree tree = toscaTreeManager.getTree();
-
-    validateToscaTree(outputFileName, tree);
-  }
-
-  private void validateToscaTree(String outputFileName, HeatStructureTree tree) throws IOException {
-    String actualTree = JsonUtil.object2Json(tree);
-    File expectedTreeFile = new File(this.getClass().getResource(outputFileName).getFile());
-
-    String expectedTree;
-    try(FileInputStream fis = new FileInputStream(expectedTreeFile)) {
-      expectedTree = new String(FileUtils.toByteArray(fis));
+
+    private static final String BASE_DIR = "/mock/toscaTree/";
+    private static final String IN = "in";
+    private static final String OUT = "out";
+    private static final String EXPECTED_TREE_FILE = "/expectedTree.json";
+    private ToscaTreeManager toscaTreeManager = new ToscaTreeManager();
+
+    @Test
+    public void testTreeWithDiffFileNames() throws IOException {
+        String inputDirectory = BASE_DIR + "diffFileNames/" + IN;
+        String outputFileName = BASE_DIR + "diffFileNames/" + OUT + EXPECTED_TREE_FILE;
+
+        testTreeManager(inputDirectory, outputFileName);
+    }
+
+    @Test
+    public void testDirectoriesWithSimilarNameUnderDifferentRoots() throws IOException {
+        String inputDirectory = BASE_DIR + "similarDirectoryName/" + IN;
+        String outputFileName = BASE_DIR + "similarDirectoryName/" + OUT + EXPECTED_TREE_FILE;
+
+        testTreeManager(inputDirectory, outputFileName);
+    }
+
+    @Test
+    public void testTwoFilesUnderSameDirectory() throws IOException {
+        String inputDirectory = BASE_DIR + "twoFilesUnderSameDirectory/" + IN;
+        String outputFileName = BASE_DIR + "twoFilesUnderSameDirectory/" + OUT + EXPECTED_TREE_FILE;
+
+        testTreeManager(inputDirectory, outputFileName);
     }
-    Assert.assertNotNull(expectedTree);
-    expectedTree = expectedTree.trim().replace("\r", "");
-    Assert.assertEquals(expectedTree, actualTree);
-  }
-
-  private void initTreeManager(String inputDir) throws IOException {
-    String fileName = inputDir.replace("/", File.separator);
-    File directory = new File(this.getClass().getResource(inputDir).getFile());
-
-    addFilesToTreeManager(fileName, directory.listFiles());
-  }
-
-  private void addFilesToTreeManager(String baseDir, File[] listFiles) throws IOException {
-    for (File file : listFiles) {
-      if (file.isDirectory()) {
-        addFilesToTreeManager(baseDir, file.listFiles());
-      } else {
-        toscaTreeManager.addFile(getFileNameWithoutTestDirectory(baseDir, file.getPath()), new byte[2]);
-      }
+
+    private void testTreeManager(String inputDirectory, String outputFileName) throws IOException {
+        initTreeManager(inputDirectory);
+        toscaTreeManager.createTree();
+        HeatStructureTree tree = toscaTreeManager.getTree();
+
+        validateToscaTree(outputFileName, tree);
     }
-  }
 
-  private String getFileNameWithoutTestDirectory(String baseDir, String fileName) {
-    return fileName.split(Pattern.quote(baseDir) + Pattern.quote(File.separator))[1];
-  }
+    private void validateToscaTree(String outputFileName, HeatStructureTree tree) throws IOException {
+        File expectedTreeFile = new File(this.getClass().getResource(outputFileName).getFile());
+
+        String expectedTree;
+        try (FileInputStream fis = new FileInputStream(expectedTreeFile)) {
+            expectedTree = new String(FileUtils.toByteArray(fis));
+        }
+        Assert.assertNotNull(expectedTree);
+        expectedTree = expectedTree.trim().replace("\r", "");
+        String actualTree = JsonUtil.object2Json(tree);
+        Assert.assertEquals(expectedTree, actualTree);
+    }
+
+    private void initTreeManager(String inputDir) {
+        String fileName = inputDir.replace("/", File.separator);
+        File directory = new File(this.getClass().getResource(inputDir).getFile());
+
+        addFilesToTreeManager(fileName, directory.listFiles());
+    }
+
+    private void addFilesToTreeManager(String baseDir, File[] listFiles) {
+        for (File file : listFiles) {
+            if (file.isDirectory()) {
+                addFilesToTreeManager(baseDir, file.listFiles());
+            } else {
+                toscaTreeManager.addFile(getFileNameWithoutTestDirectory(baseDir, file.getPath()), new byte[2]);
+            }
+        }
+    }
+
+    private String getFileNameWithoutTestDirectory(String baseDir, String fileName) {
+        return fileName.split(Pattern.quote(baseDir) + Pattern.quote(File.separator))[1];
+    }
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/MANIFEST.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/MANIFEST.json
new file mode 100644 (file)
index 0000000..fefb79c
--- /dev/null
@@ -0,0 +1,48 @@
+{
+  "name": "validTest",
+  "description": "Valid Test",
+  "version": "1610",
+  "data": [
+    {
+      "file": "first.yaml",
+      "type": "HEAT",
+      "isBase": true,
+      "data": [
+        {
+          "file": "first.env",
+          "type": "HEAT_ENV"
+        },
+        {
+          "file": "base_cscf_volume.yaml",
+          "type": "HEAT_VOL",
+          "data": [
+            {
+              "file": "base_cscf_volume.env",
+              "type": "HEAT_ENV"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": false
+    },
+    {
+      "file": "network.yml",
+      "type": "HEAT_NET"
+    },
+    {
+      "file": "testHeat.yml",
+      "type": "OTHER"
+    },
+    {
+      "file": "testHeat.yml",
+      "type": "VF_LICENSE"
+    },
+    {
+      "file": "envSettings.env"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.env b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.env
new file mode 100644 (file)
index 0000000..9f0eef6
--- /dev/null
@@ -0,0 +1,9 @@
+## Name: "base_cscf_volume.env"
+## Date: 20 Mar 2017
+## Kilo Version
+parameters:
+# PSEUDO CONSTANTS
+# -----------------------------------------------------------------------------
+  cif_volume_size_0: 300
+  oam_volume_size_0: 300
+  vcscf_name_delimeter: "_"
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/base_cscf_volume.yaml
new file mode 100644 (file)
index 0000000..145f82e
--- /dev/null
@@ -0,0 +1,103 @@
+## Name: "base_cscf_volume.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: Volume template for CFX
+
+parameters:
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+
+  vcscf_name_delimeter:
+    type: string
+    description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+    constraints:
+      - allowed_values: [ '-', '', '_', '.']
+
+  availability_zone_0:
+    type: string
+    description: Storage availability zone for volume of first vm
+
+  availability_zone_1:
+    type: string
+    description: Storage availability zone for volume of second vm
+
+  cif_volume_size_0:
+    type: number
+    description: Size of Volume for cif VMs
+    constraints:
+      - range: { min: 1, max: 300 }
+
+  oam_volume_size_0:
+    type: number
+    description: Size of Volume for oam VMs
+    constraints:
+      - range: { min: 1, max: 300 }
+
+resources:
+  cif_volume_0:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: cif_volume_size_0 }
+      availability_zone: { get_param: availability_zone_0}
+      name:
+        str_replace:
+          template: "$VNF$DELcif$DELvolume$DEL0"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  cif_volume_1:
+    type: OS::Cinder::Volume
+    properties:
+      availability_zone: { get_param: availability_zone_1}
+      size: { get_param: cif_volume_size_0 }
+      name:
+        str_replace:
+          template: "$VNF$DELcif$DELvolume$DEL1"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  oam_volume_0:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: oam_volume_size_0 }
+      availability_zone: { get_param: availability_zone_0}
+      name:
+        str_replace:
+          template: "$VNF$DELoam$DELvolume$DEL0"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  oam_volume_1:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: oam_volume_size_0 }
+      availability_zone: { get_param: availability_zone_1}
+      name:
+        str_replace:
+          template: "$VNF$DELoam$DELvolume$DEL1"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+outputs:
+  cif_volume_id_0:
+    description: volume id for first cif
+    value: {get_resource: cif_volume_0}
+
+  cif_volume_id_1:
+    description: volume id for second cif
+    value: {get_resource: cif_volume_1}
+
+  oam_volume_id_0:
+    description: volume id for first oam
+    value: {get_resource: oam_volume_0}
+
+  oam_volume_id_1:
+    description: volume id for second oam
+    value: {get_resource: oam_volume_1}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.env b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.env
new file mode 100644 (file)
index 0000000..90bdb18
--- /dev/null
@@ -0,0 +1,2 @@
+parameters:
+network_ids: Internal2_net_id
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/first.yaml
new file mode 100644 (file)
index 0000000..02234e9
--- /dev/null
@@ -0,0 +1,71 @@
+heat_template_version: 2013-05-23
+description: heat expose volume resource
+
+parameters:
+   network_ids:
+     type: string
+     label: FBS2 label
+     description: FBS2 internal id2
+
+resources:
+  vm_config:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: ungrouped
+      config:
+        str_replace:
+          template: {get_file: envSettings.env}
+
+  cmaui_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_resource: test_net1 }
+      fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+      security_groups: [{get_param: security_group_name}]
+      replacement_policy: AUTO
+
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  FSB2_Internal1:
+      type: OS::Neutron::Port
+      properties:
+        network_id: Internal1_net_id
+  FSB2_Internal2:
+      type: OS::Neutron::Port
+      properties:
+        network_id: { get_param: [network_ids, 0] }
+  FSB2_OAM:
+      type: OS::Neutron::Port
+      properties:
+        network_id: { get_param: Internal1_net_name }
+  FSB2:
+    type: OS::Nova::Server
+    properties:
+      name: fsb2_name_2
+      block_device_mapping: [{device_name: "vda", volume_id : {get_param: cif_volume_id_0 }, delete_on_termination: "false" }]
+      flavor:  fsb2_flavor_name
+      availability_zone:  availability_zone_0
+      metadata:
+        VNF_id: { get_param: vnfvfVF_id }
+        vf_module_id: { get_param: vf_module_id }
+      networks:
+        - port: { get_resource: FSB2_Internal1 }
+        - port: { get_resource: FSB2_Internal2 }
+        - port: { get_resource: FSB2_OAM }
+
+  test_nested:
+    type: nested.yml
+    properties:
+      p2: { get_resource: cmaui_port_2}
+      net1: { get_resource: test_net1}
+
+outputs:
+  expose_resource_nove_output:
+    description: the pcrf_server
+    value: { get_resource: FSB2 }
+
+
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/nested.yml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/nested.yml
new file mode 100644 (file)
index 0000000..e68541e
--- /dev/null
@@ -0,0 +1,76 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: number
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  
+  vdbe_0_subint_untr_vmi_0:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net2 },{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p2 }]
+
+
+
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/network.yml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/network.yml
new file mode 100644 (file)
index 0000000..f069d4d
--- /dev/null
@@ -0,0 +1,733 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates MOG stack
+
+parameters:
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+ # internet_net_name:
+ #   type: string
+ #   label: internet network name
+ #   description: id of the internet network
+ # internet_net_ips:
+ #   type: comma_delimited_list
+ #   label: internet network ips
+ #   description: ip of the internet network
+ # internet_net_floating_ip:
+ #   type: string
+ #   label: mog internet virtual ip
+ #   description: mog internet virtual ip
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_1:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_1:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_1:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_1:
+    type: string
+    description: CSB internal network subnet mask
+
+  security_group_name:
+    type: string
+    label: security group name
+    description: the name of security group
+  cluster-manager-vol-1:
+    type: string
+    label: mog-cm-vol-1
+    description: Cluster Manager volume 1
+  session-manager-vol-1:
+    type: string
+    label: mog-sm-vol-1
+    description: Session Manager volume 1
+  session-manager-vol-2:
+    type: string
+    label: mog-sm-vol-2
+    description: Session Manager volume 2
+  oam-vol-1:
+    type: string
+    label: mog-oam-vol-1
+    description: OAM volume 1
+  oam-vol-2:
+    type: string
+    label: mog-oam-vol-2
+    description: OAM volume 2
+  mog_swift_container:
+    type: string
+    label: mog Config URL
+    description: Config URL
+  mog_script_dir:
+    type: string
+    label: mog Config script directory
+    description: Config script directory
+  mog_script_name:
+    type: string
+    label: mog Config script name
+    description: Config script name
+  mog_parameter_name:
+    type: string
+    label: mog script parameter name
+    description: Config script parameter csv file name
+  cluster-manager-vol-2:
+    type: string
+    label: mog-cm-vol-2
+    description: Cluster Manager volume 2 with ISO image
+
+resources:
+  mog_security_group:
+    type: OS::Neutron::SecurityGroup
+    properties:
+      description: mog security group
+      name: {get_param: security_group_name}
+      rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+              {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+              {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+              {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+              {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+              {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}
+              ]
+
+  csb_net:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: csb_net_name}
+
+  csb_ip_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      name: {get_param: csb_net_name}
+      network_id: { get_resource: csb_net }
+      cidr: { get_param: csb_net_cidr }
+      allocation_pools: [{"start": {get_param: csb_net_start}, "end": {get_param: csb_net_end}}]
+      enable_dhcp: true
+
+  dummy_net_0:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: dummy_net_name_0}
+
+  dummy_ip_subnet_0:
+    type: OS::Neutron::Subnet
+    properties:
+      name: {get_param: dummy_net_name_0}
+      network_id: { get_resource: dummy_net_0 }
+      cidr: { get_param: dummy_net_cidr_0 }
+      allocation_pools: [{"start": {get_param: dummy_net_start_0}, "end": {get_param: dummy_net_end_0}}]
+      enable_dhcp: true
+
+  dummy_net_1:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: dummy_net_name_1}
+
+  dummy_ip_subnet_1:
+    type: OS::Neutron::Subnet
+    properties:
+      name: {get_param: dummy_net_name_1}
+      network_id: { get_resource: dummy_net_1 }
+      cidr: { get_param: dummy_net_cidr_1 }
+      allocation_pools: [{"start": {get_param: dummy_net_start_1}, "end": {get_param: dummy_net_end_1}}]
+      enable_dhcp: true
+
+
+  mogconfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: ungrouped
+      config:
+        str_replace:
+          template: |
+            #!/bin/bash
+            wget -P script_dir swift_container/script_name
+            wget -P script_dir swift_container/parameter_name
+            chmod 755 script_dir/script_name
+            script_dir/script_name
+          params:
+            swift_container: {get_param: mog_swift_container}
+            script_dir: {get_param: mog_script_dir}
+            script_name: {get_param: mog_script_name}
+            #parameter_name: {get_param: mog_parameter_name}
+
+
+  servergroup_mog01:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies:
+        - anti-affinity
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+        - port: {get_resource: pd01_port_1}
+        - port: {get_resource: pd01_port_2}
+        - port: {get_resource: pd01_port_3}
+        - port: {get_resource: pd01_port_4}
+        - port: {get_resource: pd01_port_5}
+        - port: {get_resource: pd01_port_6}
+     #   - port: {get_resource: pd01_port_7}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog01}}
+      user_data_format:  RAW
+
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+  pd01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+      fixed_ips: [{"ip_address": {get_param: [oam_net_ips, 0]}}]
+      security_groups: [{get_resource: mog_security_group}]
+  pd01_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_0}
+      security_groups: [{get_resource: mog_security_group}]
+  pd01_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: rx_net_name}
+      fixed_ips: [{"ip_address": {get_param: [rx_net_ips, 0]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: rx_net_floating_ip} }]
+      security_groups: [{get_resource: mog_security_group}]
+  pd01_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_1}
+      security_groups: [{get_resource: mog_security_group}]
+  pd01_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: ran_net_name}
+      fixed_ips: [{"ip_address": {get_param: [ran_net_ips, 0]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: ran_net_floating_ip} }]
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd01_port_6:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: sl_net_name}
+      fixed_ips: [{"ip_address": {get_param: [sl_net_ips, 0]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: sl_net_floating_ip}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+ # pd01_port_7:
+ #j   type: OS::Neutron::Port
+ #   properties:
+ #     network: {get_param: internet_net_name}
+ #     fixed_ips: [{"ip_address": {get_param: [internet_net_ips, 0]}}]
+ #     allowed_address_pairs: [{"ip_address": {get_param: internet_net_floating_ip} }]
+ #    security_groups: [{get_resource: mog_security_group}]
+
+  server_pd_02:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [pd_server_names, 1]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd02_port_0}
+        - port: {get_resource: pd02_port_1}
+        - port: {get_resource: pd01_port_2}
+        - port: {get_resource: pd01_port_3}
+        - port: {get_resource: pd02_port_4}
+        - port: {get_resource: pd02_port_5}
+        - port: {get_resource: pd02_port_6}
+      #  - port: {get_resource: pd02_port_7}
+
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog01}}
+      user_data_format:  RAW
+
+  pd02_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+      fixed_ips: [{"ip_address": {get_param: [oam_net_ips, 1]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_0}
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: rx_net_name}
+      fixed_ips: [{"ip_address": {get_param: [rx_net_ips, 1]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: rx_net_floating_ip} }]
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_1}
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: ran_net_name}
+      fixed_ips: [{"ip_address": {get_param: [ran_net_ips, 1]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: ran_net_floating_ip} }]
+      security_groups: [{get_resource: mog_security_group}]
+
+  pd02_port_6:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: sl_net_name}
+      fixed_ips: [{"ip_address": {get_param: [sl_net_ips, 1]}}]
+      allowed_address_pairs: [{"ip_address": {get_param: sl_net_floating_ip}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+ # pd02_port_7:
+ #   type: OS::Neutron::Port
+ #   properties:
+    #  network: {get_param: internet_net_name}
+    #  fixed_ips: [{"ip_address": {get_param: [internet_net_ips, 1]}}]
+   #   allowed_address_pairs: [{"ip_address": {get_param: internet_net_floating_ip} }]
+   #   security_groups: [{get_resource: mog_security_group}]
+
+  servergroup_mog02:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies:
+        - anti-affinity
+  server_oam01:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [oam_server_names, 0]}
+      image: {get_param: oam_image_name}
+      flavor: {get_param: oam_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: oam01_port_0}
+        - port: {get_resource: oam01_port_1}
+#      block_device_mapping:
+#        - device_name: vdd
+#          volume_id: { get_param: oam-vol-1 }
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog02}}
+      user_data_format:  RAW
+
+  oam01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  oam01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+      fixed_ips: [{"ip_address": {get_param: [oam_net_ips, 2]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+
+  server_oam02:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [oam_server_names, 1]}
+      image: {get_param: oam_image_name}
+      flavor: {get_param: oam_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: oam02_port_0}
+        - port: {get_resource: oam02_port_1}
+#      block_device_mapping:
+#        - device_name: vdd
+#          volume_id: { get_param: oam-vol-2 }
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog02}}
+      user_data_format:  RAW
+
+  oam02_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  oam02_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+      fixed_ips: [{"ip_address": {get_param: [oam_net_ips, 3]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+
+  server_sm01:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [sm_server_names, 0]}
+      image: {get_param: sm_image_name}
+      flavor: {get_param: sm_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: sm01_port_0}
+        - port: {get_resource: sm01_port_1}
+#      block_device_mapping:
+#        - device_name: vdd
+#          volume_id: { get_param: session-manager-vol-1 }
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog02}}
+      user_data_format:  RAW
+
+  sm01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  sm01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_0}
+      security_groups: [{get_resource: mog_security_group}]
+
+  sm01_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: repl_net_name}
+      fixed_ips: [{"ip_address": {get_param: [repl_net_ips, 0]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+  server_sm02:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [sm_server_names, 1]}
+      image: {get_param: sm_image_name}
+      flavor: {get_param: sm_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+#      block_device_mapping:
+#        - device_name: vdd
+#          volume_id: { get_param: session-manager-vol-2 }
+      networks:
+        - port: {get_resource: sm02_port_0}
+        - port: {get_resource: sm02_port_1}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog02}}
+      user_data_format:  RAW
+
+  sm02_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  sm02_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: dummy_net_0}
+      security_groups: [{get_resource: mog_security_group}]
+
+  sm02_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: repl_net_name}
+      fixed_ips: [{"ip_address": {get_param: [repl_net_ips, 1]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+  servergroup_mog03:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies:
+        - anti-affinity
+  server_ps01:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [ps_server_names, 0]}
+      image: {get_param: ps_image_name}
+      flavor: {get_param: ps_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps01_port_0}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog03}}
+      user_data_format:  RAW
+
+  ps01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  server_ps02:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [ps_server_names, 1]}
+      image: {get_param: ps_image_name}
+      flavor: {get_param: ps_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps02_port_0}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog03}}
+      user_data_format:  RAW
+
+  ps02_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  server_ps03:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [ps_server_names, 2]}
+      image: {get_param: ps_image_name}
+      flavor: {get_param: ps_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps03_port_0}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog03}}
+      user_data_format:  RAW
+
+  ps03_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  server_ps04:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [ps_server_names, 3]}
+      image: {get_param: ps_image_name}
+      flavor: {get_param: ps_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps04_port_0}
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog03}}
+      user_data_format:  RAW
+
+  ps04_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      security_groups: [{get_resource: mog_security_group}]
+
+  server_cm01:
+    type: OS::Nova::Server
+    properties:
+#      config_drive: "True"
+      name: {get_param: [cm_server_names, 0]}
+      image: {get_param: cm_image_name}
+      flavor: {get_param: cm_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: cm01_port_0}
+        - port: {get_resource: cm01_port_1}
+#      block_device_mapping:
+#        - device_name: vdd
+#          volume_id: { get_param: cluster-manager-vol-2 }
+#        - device_name: vde
+#          volume_id: { get_param: cluster-manager-vol-1 }
+      user_data:
+      scheduler_hints: {group: {get_resource: servergroup_mog03}}
+      user_data_format:  RAW
+
+  cm01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_resource: csb_net}
+      fixed_ips: [{"ip_address": {get_param: [csb_net_ips, 10]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
+  cm01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+      fixed_ips: [{"ip_address": {get_param: [oam_net_ips, 4]}}]
+      security_groups: [{get_resource: mog_security_group}]
+
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/second.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/model/second.yaml
new file mode 100644 (file)
index 0000000..bb06b9d
--- /dev/null
@@ -0,0 +1,14 @@
+heat_template_version: 2013-05-23
+
+description: heat second
+
+resources:
+  network_expose:
+    type: OS::Neutron::Net
+
+outputs:
+  expose_resource_network_output:
+    description: the pcrf_server
+    value: { get_resource: network_expose }
+
+
index 87c0338..d2430a6 100644 (file)
@@ -1,6 +1,5 @@
 package org.openecomp.sdc.itempermissions.dao.impl;
 
-
 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDaoFactory;
 
@@ -10,10 +9,10 @@ import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDaoFactory;
  */
 public class ItemPermissionsDaoFactoryImpl extends ItemPermissionsDaoFactory {
 
-  private static ItemPermissionsDao INSTANCE =new ItemPermissionsDaoImpl();
+    private static ItemPermissionsDao INSTANCE = new ItemPermissionsDaoImpl();
 
-  @Override
-  public ItemPermissionsDao createInterface() {
-    return INSTANCE;
-  }
+    @Override
+    public ItemPermissionsDao createInterface() {
+        return INSTANCE;
+    }
 }
index 6421c28..c9c4198 100644 (file)
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.openecomp.sdc.itempermissions.dao.impl;
 
 import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.mapping.Result;
 import com.datastax.driver.mapping.annotations.Accessor;
 import com.datastax.driver.mapping.annotations.Query;
-import org.openecomp.core.nosqldb.api.NoSqlDb;
-import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
-import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
-import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
 
 import java.util.Collection;
 import java.util.Optional;
 import java.util.Set;
 
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
+import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
+
 /**
  * Created by ayalaben on 6/20/2017.
  */
 public class ItemPermissionsDaoImpl implements ItemPermissionsDao {
-  private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
-  private static ItemPermissionsAccessor accessor =
-      noSqlDb.getMappingManager().createAccessor(ItemPermissionsAccessor.class);
-
-  @Override
-  public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
-    return accessor.getItemPermissions(itemId).all();
-  }
-
-  @Override
-  public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
-                                    Set<String> removedUsersIds) {
-    addedUsersIds.forEach(userId -> accessor.addPermission(itemId, userId, permission));
-    removedUsersIds.stream()
-        .filter(userId -> getUserItemPermission(itemId, userId)
-            .map(userPermissionOnItem -> userPermissionOnItem.equals(permission))
-            .orElse(false))
-        .forEach(userId -> accessor.deletePermission(itemId, userId));
-  }
-
-  @Override
-  public Optional<String> getUserItemPermission(String itemId, String userId) {
-    ResultSet result = accessor.getUserItemPermission(itemId, userId);
-    return result.getAvailableWithoutFetching() < 1
-        ? Optional.empty()
-        : Optional.of(result.one().getString(0));
-  }
-
-  @Override
-  public void deleteItemPermissions(String itemId) {
-    accessor.deleteItemPermissions(itemId);
-  }
-
-
-  @Accessor
-  interface ItemPermissionsAccessor {
-    @Query("select * from dox.item_permissions WHERE item_id = ?")
-    Result<ItemPermissionsEntity> getItemPermissions(String itemId);
-
-    @Query("select permission from dox.item_permissions WHERE item_id = ? AND user_id=?")
-    ResultSet getUserItemPermission(String itemId, String userId);
-
-    @Query("delete from dox.item_permissions where item_id = ? and user_id = ?")
-    void deletePermission(String itemId, String userId);
-
-    @Query("insert into dox.item_permissions (item_id,user_id,permission) values (?,?,?)")
-    void addPermission(String itemId, String userId, String permission);
-
-    @Query("delete from dox.item_permissions where item_id=?")
-    void deleteItemPermissions(String itemId);
-
-  }
+
+    private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
+    private static ItemPermissionsAccessor accessor =
+            noSqlDb.getMappingManager().createAccessor(ItemPermissionsAccessor.class);
+
+    @Override
+    public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
+        return accessor.getItemPermissions(itemId).all();
+    }
+
+    @Override
+    public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
+                                      Set<String> removedUsersIds) {
+        addedUsersIds.forEach(userId -> accessor.addPermission(itemId, userId, permission));
+        removedUsersIds.stream()
+                .filter(userId -> getUserItemPermission(itemId, userId)
+                        .map(userPermissionOnItem -> userPermissionOnItem.equals(permission))
+                        .orElse(false))
+                .forEach(userId -> accessor.deletePermission(itemId, userId));
+    }
+
+    @Override
+    public Optional<String> getUserItemPermission(String itemId, String userId) {
+        ResultSet result = accessor.getUserItemPermission(itemId, userId);
+        return result.getAvailableWithoutFetching() < 1
+                ? Optional.empty()
+                : Optional.of(result.one().getString(0));
+    }
+
+    @Override
+    public void deleteItemPermissions(String itemId) {
+        accessor.deleteItemPermissions(itemId);
+    }
+
+
+    @Accessor
+    interface ItemPermissionsAccessor {
+
+        @Query("select * from dox.item_permissions WHERE item_id = ?")
+        Result<ItemPermissionsEntity> getItemPermissions(String itemId);
+
+        @Query("select permission from dox.item_permissions WHERE item_id = ? AND user_id=?")
+        ResultSet getUserItemPermission(String itemId, String userId);
+
+        @Query("delete from dox.item_permissions where item_id = ? and user_id = ?")
+        void deletePermission(String itemId, String userId);
+
+        @Query("insert into dox.item_permissions (item_id,user_id,permission) values (?,?,?)")
+        void addPermission(String itemId, String userId, String permission);
+
+        @Query("delete from dox.item_permissions where item_id=?")
+        void deleteItemPermissions(String itemId);
+
+    }
 }
index ec914b1..d0e41d8 100644 (file)
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.openecomp.sdc.itempermissions.dao.impl;
 
+import java.util.Collection;
+import java.util.Optional;
+import java.util.Set;
+
 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
 import org.openecomp.sdc.itempermissions.PermissionsRules;
 import org.openecomp.sdc.itempermissions.PermissionsServices;
@@ -22,83 +27,79 @@ import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
 import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
 
-import java.util.Collection;
-import java.util.Optional;
-import java.util.Set;
-
 
 /**
  * Created by ayalaben on 6/22/2017.
  */
 public class PermissionsServicesImpl implements PermissionsServices {
 
-  private ItemPermissionsDao itemPermissionsDao;
+    private ItemPermissionsDao itemPermissionsDao;
 
-  private UserPermissionsDao userPermissionsDao;
+    private UserPermissionsDao userPermissionsDao;
 
-  private PermissionsRules permissionsRules;
+    private PermissionsRules permissionsRules;
 
-  private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
+    private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
 
-  public PermissionsServicesImpl(PermissionsRules permissionsRules,
-                                 ItemPermissionsDao itemPermissionsDao,
-                                 UserPermissionsDao userPermissionsDao) {
-    this.itemPermissionsDao = itemPermissionsDao;
-    this.permissionsRules = permissionsRules;
-    this.userPermissionsDao = userPermissionsDao;
-  }
+    public PermissionsServicesImpl(PermissionsRules permissionsRules,
+                                   ItemPermissionsDao itemPermissionsDao,
+                                   UserPermissionsDao userPermissionsDao) {
+        this.itemPermissionsDao = itemPermissionsDao;
+        this.permissionsRules = permissionsRules;
+        this.userPermissionsDao = userPermissionsDao;
+    }
 
 
-  @Override
-  public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
-    return itemPermissionsDao.listItemPermissions(itemId);
-  }
+    @Override
+    public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
+        return itemPermissionsDao.listItemPermissions(itemId);
+    }
 
-  @Override
-  public Set<String> listUserPermittedItems(String userId, String permission) {
-    return userPermissionsDao.listUserPermittedItems(userId, permission);
-  }
+    @Override
+    public Set<String> listUserPermittedItems(String userId, String permission) {
+        return userPermissionsDao.listUserPermittedItems(userId, permission);
+    }
 
-  @Override
-  public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
-                                    Set<String> removedUsersIds) {
+    @Override
+    public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
+                                      Set<String> removedUsersIds) {
 
-    String currentUserId = SessionContextProviderFactory.getInstance()
-        .createInterface().get().getUser().getUserId();
+        String currentUserId = SessionContextProviderFactory.getInstance()
+                .createInterface().get().getUser().getUserId();
 
-    permissionsRules.executeAction(itemId, currentUserId, CHANGE_PERMISSIONS);
+        permissionsRules.executeAction(itemId, currentUserId, CHANGE_PERMISSIONS);
 
-    permissionsRules.updatePermission(itemId, currentUserId, permission, addedUsersIds,
-        removedUsersIds);
+        permissionsRules.updatePermission(itemId, currentUserId, permission, addedUsersIds,
+                removedUsersIds);
 
-    itemPermissionsDao.updateItemPermissions(itemId, permission,
-        addedUsersIds, removedUsersIds);
+        itemPermissionsDao.updateItemPermissions(itemId, permission,
+                addedUsersIds, removedUsersIds);
 
-    userPermissionsDao.updatePermissions(itemId, permission,
-        addedUsersIds, removedUsersIds);
+        userPermissionsDao.updatePermissions(itemId, permission,
+                addedUsersIds, removedUsersIds);
 
-  }
+    }
 
-  @Override
-  public boolean isAllowed(String itemId, String userId, String action) {
-    return itemPermissionsDao.getUserItemPermission(itemId, userId)
-        .map(permission -> permissionsRules.isAllowed(permission, action))
-        .orElse(false);
-  }
+    @Override
+    public boolean isAllowed(String itemId, String userId, String action) {
+        return itemPermissionsDao.getUserItemPermission(itemId, userId)
+                .map(permission -> permissionsRules.isAllowed(permission, action))
+                .orElse(false);
+    }
 
-  @Override
-  public void execute(String itemId, String userId, String action) {
-    permissionsRules.executeAction(itemId, userId, action);
-  }
+    @Override
+    public void execute(String itemId, String userId, String action) {
+        permissionsRules.executeAction(itemId, userId, action);
+    }
 
-  @Override
-  public Optional<String> getUserItemPermission(String itemId, String userId) {
-    return itemPermissionsDao.getUserItemPermission(itemId, userId);
-  }
+    @Override
+    public Optional<String> getUserItemPermission(String itemId, String userId) {
+        return itemPermissionsDao.getUserItemPermission(itemId, userId);
+    }
 
-  @Override
-  public void deleteItemPermissions(String itemId) {
-    itemPermissionsDao.deleteItemPermissions(itemId);
-  }
+    @Override
+    public void deleteItemPermissions(String itemId) {
+        itemPermissionsDao.deleteItemPermissions(itemId);
+    }
 
 }
index 86a64dd..4c23743 100644 (file)
@@ -21,7 +21,7 @@ import org.openecomp.sdc.itempermissions.dao.UserPermissionsDaoFactory;
 
 public class UserPermissionsDaoFactoryImpl extends UserPermissionsDaoFactory {
 
-    private static UserPermissionsDao INSTANCE =new UserPermissionsDaoImpl();
+    private static UserPermissionsDao INSTANCE = new UserPermissionsDaoImpl();
 
     @Override
     public UserPermissionsDao createInterface() {
index dad8f25..8609f2f 100644 (file)
@@ -19,14 +19,15 @@ package org.openecomp.sdc.itempermissions.dao.impl;
 import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.mapping.annotations.Accessor;
 import com.datastax.driver.mapping.annotations.Query;
-import org.openecomp.core.nosqldb.api.NoSqlDb;
-import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
-import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
 
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
+
 public class UserPermissionsDaoImpl implements UserPermissionsDao {
 
     private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
@@ -36,23 +37,23 @@ public class UserPermissionsDaoImpl implements UserPermissionsDao {
 
     @Override
     public Set<String> listUserPermittedItems(String userId, String permission) {
-        ResultSet resultSet = accessor.getUserPermissionItems(userId,permission);
-        if(resultSet.isExhausted()){
+        ResultSet resultSet = accessor.getUserPermissionItems(userId, permission);
+        if (resultSet.isExhausted()) {
             return new HashSet<>();
         } else {
-            return resultSet.one().getSet(0,String.class);
+            return resultSet.one().getSet(0, String.class);
         }
     }
 
     @Override
     public void updatePermissions(String itemId, String permission, Set<String> addedUsersIds,
-                                      Set<String> removedUsersIds) {
+                                  Set<String> removedUsersIds) {
         Set<String> itemSet = Collections.singleton(itemId);
 
         addedUsersIds.forEach(userId ->
-                accessor.addItem(itemSet, userId,permission));
+                accessor.addItem(itemSet, userId, permission));
         removedUsersIds.forEach(userId ->
-                accessor.removeItem(itemSet,userId,permission));
+                accessor.removeItem(itemSet, userId, permission));
     }
 
     @Accessor
index 30472d6..9fe045f 100644 (file)
@@ -48,7 +48,11 @@ public class PermissionsFilter implements Filter {
     private static final String EDIT_ITEM = "Edit_Item";
 
     public PermissionsFilter() {
-        this.permissionsServices = PermissionsServicesFactory.getInstance().createInterface();
+        this(PermissionsServicesFactory.getInstance().createInterface());
+    }
+
+    PermissionsFilter(PermissionsServices permissionsServices) {
+        this.permissionsServices = permissionsServices;
     }
 
     @Override
index 9574d41..0e27dca 100644 (file)
@@ -1,8 +1,21 @@
 package org.openecomp.sdc.itempermissions.dao.impl;
 
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Optional;
+import java.util.Set;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
@@ -14,99 +27,132 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.*;
-
 /**
  * Created by ayalaben on 7/9/2017
  */
 public class PermissionsServicesImplTest {
 
-  private static final String ITEM1_ID = "1";
-  private static final String PERMISSION = "Owner";
-  private static final String USER2_ID = "testUser2";
-  private static final String USER1_ID = "testUser1";
-  private static final String ACTION_SUBMIT = "Submit_Item";
-  private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
-
-  static {
-    SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
-  }
-
-  @Mock
-  private ItemPermissionsDao permissionsDaoMock;
-  @Mock
-  private UserPermissionsDao userPermissionsDao;  // do not delete. needed for permissionService
-  @Mock
-  private PermissionsRules permissionsRules;
-  @InjectMocks
-  @Spy
-  private PermissionsServicesImpl permissionsServices;
-
-
-  @BeforeMethod
-  public void setUp() throws Exception {
-    MockitoAnnotations.initMocks(this);
-  }
-
-  @Test
-  public void testListItemPermissionsWhenNone()  {
-    Collection<ItemPermissionsEntity> permissions =
-        permissionsServices.listItemPermissions(ITEM1_ID);
-    Assert.assertEquals(permissions.size(), 0);
-  }
-
-
-  @Test
-  public void testListItemPermissions(){
-    doReturn(Arrays.asList(
-        createPermissionEntity(ITEM1_ID, USER1_ID, PERMISSION),
-        createPermissionEntity(ITEM1_ID, USER2_ID, PERMISSION)))
-        .when(permissionsDaoMock).listItemPermissions(anyObject());
-
-    Collection<ItemPermissionsEntity> actual =
-        permissionsServices.listItemPermissions(ITEM1_ID);
-    Assert.assertEquals(actual.size(), 2);
-  }
-
-
-  @Test
-  public void testIsAllowed(){
-    when(permissionsDaoMock.getUserItemPermission(ITEM1_ID,USER1_ID)).thenReturn(Optional.of(PERMISSION));
-    when(permissionsRules.isAllowed(PERMISSION,ACTION_SUBMIT)).thenReturn(true);
-
-    Boolean result = permissionsServices.isAllowed(ITEM1_ID,USER1_ID,ACTION_SUBMIT);
-
-    Assert.assertTrue(result);
-
-  }
-  @Test
-  public void testUpdatePermissions(){
-
-    Set<String> addedUsers = new HashSet<>();
-    addedUsers.add(USER2_ID);
-
-    permissionsServices.updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers, new HashSet<>());
-
-    verify(permissionsRules).executeAction(ITEM1_ID,USER1_ID,CHANGE_PERMISSIONS);
-    verify(permissionsRules).updatePermission(ITEM1_ID,USER1_ID,PERMISSION,addedUsers, new HashSet<>());
-    verify(permissionsDaoMock).updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers,new
-        HashSet<>());
-  }
-
-
-  public static ItemPermissionsEntity createPermissionEntity(String itemId, String
-      userId, String permission) {
-    ItemPermissionsEntity permissionsEntity = new ItemPermissionsEntity();
-   permissionsEntity.setItemId(itemId);
-   permissionsEntity.setUserId(userId);
-   permissionsEntity.setPermission(permission);
-    return permissionsEntity;
-  }
+    private static final String ITEM1_ID = "1";
+    private static final String PERMISSION = "Owner";
+    private static final String USER2_ID = "testUser2";
+    private static final String USER1_ID = "testUser1";
+    private static final String ACTION_SUBMIT = "Submit_Item";
+    private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
+
+    static {
+        SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
+    }
+
+    @Mock
+    private ItemPermissionsDao permissionsDaoMock;
+    @Mock
+    private UserPermissionsDao userPermissionsDao;  // do not delete. needed for permissionService
+    @Mock
+    private PermissionsRules permissionsRules;
+    @InjectMocks
+    @Spy
+    private PermissionsServicesImpl permissionsServices;
+
+
+    @BeforeMethod
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testListUserPermittedItems() {
+        Set<String> userPermissionSet = Collections.emptySet();
+
+        Mockito.when(userPermissionsDao.listUserPermittedItems(anyString(), anyString())).thenReturn(userPermissionSet);
+
+        Set<String> permissionsSet = permissionsServices.listUserPermittedItems(USER1_ID, PERMISSION);
+
+        Assert.assertEquals(0, permissionsSet.size());
+    }
+
+    @Test
+    public void testExecute() {
+        Mockito.doNothing().when(permissionsRules).executeAction(anyString(), anyString(), anyString());
+
+        permissionsServices.execute(ITEM1_ID, USER1_ID, PERMISSION);
+
+        Mockito.verify(permissionsRules, times(1)).executeAction(anyString(), anyString(), anyString());
+    }
+
+    @Test
+    public void testDeleteItemPermissions() {
+        Mockito.doNothing().when(permissionsDaoMock).deleteItemPermissions(anyString());
+
+        permissionsServices.deleteItemPermissions(ITEM1_ID);
+
+        Mockito.verify(permissionsDaoMock, times(1)).deleteItemPermissions(anyString());
+    }
+
+    @Test
+    public void testGetUserItemPermission() {
+        Mockito.when(permissionsDaoMock.getUserItemPermission(anyString(), anyString()))
+                .thenReturn(Optional.of(PERMISSION));
+
+        Optional<String> permission = permissionsServices.getUserItemPermission(ITEM1_ID, USER1_ID);
+
+        Assert.assertTrue(permission.isPresent());
+        Assert.assertEquals(permission.get(), PERMISSION);
+    }
+
+    @Test
+    public void testListItemPermissionsWhenNone() {
+        Collection<ItemPermissionsEntity> permissions =
+                permissionsServices.listItemPermissions(ITEM1_ID);
+        Assert.assertEquals(permissions.size(), 0);
+    }
+
+
+    @Test
+    public void testListItemPermissions() {
+        doReturn(Arrays.asList(
+                createPermissionEntity(ITEM1_ID, USER1_ID, PERMISSION),
+                createPermissionEntity(ITEM1_ID, USER2_ID, PERMISSION)))
+                .when(permissionsDaoMock).listItemPermissions(anyObject());
+
+        Collection<ItemPermissionsEntity> actual =
+                permissionsServices.listItemPermissions(ITEM1_ID);
+        Assert.assertEquals(actual.size(), 2);
+    }
+
+
+    @Test
+    public void testIsAllowed() {
+        when(permissionsDaoMock.getUserItemPermission(ITEM1_ID, USER1_ID)).thenReturn(Optional.of(PERMISSION));
+        when(permissionsRules.isAllowed(PERMISSION, ACTION_SUBMIT)).thenReturn(true);
+
+        boolean result = permissionsServices.isAllowed(ITEM1_ID, USER1_ID, ACTION_SUBMIT);
+
+        Assert.assertTrue(result);
+
+    }
+
+    @Test
+    public void testUpdatePermissions() {
+
+        Set<String> addedUsers = new HashSet<>();
+        addedUsers.add(USER2_ID);
+
+        permissionsServices.updateItemPermissions(ITEM1_ID, PERMISSION, addedUsers, new HashSet<>());
+
+        verify(permissionsRules).executeAction(ITEM1_ID, USER1_ID, CHANGE_PERMISSIONS);
+        verify(permissionsRules).updatePermission(ITEM1_ID, USER1_ID, PERMISSION, addedUsers, new HashSet<>());
+        verify(permissionsDaoMock).updateItemPermissions(ITEM1_ID, PERMISSION, addedUsers, new
+                HashSet<>());
+    }
+
+
+    private static ItemPermissionsEntity createPermissionEntity(String itemId, String
+            userId, String permission) {
+        ItemPermissionsEntity permissionsEntity = new ItemPermissionsEntity();
+        permissionsEntity.setItemId(itemId);
+        permissionsEntity.setUserId(userId);
+        permissionsEntity.setPermission(permission);
+        return permissionsEntity;
+    }
 
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/servlet/PermissionsFilterTest.java b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/servlet/PermissionsFilterTest.java
new file mode 100644 (file)
index 0000000..6bb51c3
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ *
+ *  Copyright © 2017-2018 European Support Limited
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.itempermissions.servlet;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.HttpMethod;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.itempermissions.PermissionsServices;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+public class PermissionsFilterTest {
+
+    @Mock
+    private PermissionsServices permissionsServicesMock;
+
+    @InjectMocks
+    @Spy
+    private PermissionsFilter permissionsFilter;
+
+    @BeforeMethod
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testDoFilter() throws ServletException, IOException {
+        HttpServletRequest httpServletRequest = Mockito.spy(HttpServletRequest.class);
+        HttpServletResponse httpServletResponse = Mockito.spy(HttpServletResponse.class);
+        FilterChain filterChain = Mockito.mock(FilterChain.class);
+
+        initializeMocking(httpServletRequest, httpServletResponse, filterChain);
+        Mockito.when(httpServletRequest.getPathInfo()).thenReturn("onboardingci/onbrest/onboarding-api/v1.0");
+
+        permissionsFilter.doFilter(httpServletRequest, httpServletResponse, filterChain);
+
+        Mockito.verify(filterChain, Mockito.times(0)).doFilter(Mockito.any(), Mockito.any());
+    }
+
+    @Test
+    public void testDoFilterPass() throws ServletException, IOException {
+        HttpServletRequest httpServletRequest = Mockito.spy(HttpServletRequest.class);
+        HttpServletResponse httpServletResponse = Mockito.spy(HttpServletResponse.class);
+        FilterChain filterChain = Mockito.mock(FilterChain.class);
+
+        initializeMocking(httpServletRequest, httpServletResponse, filterChain);
+        Mockito.when(httpServletRequest.getPathInfo()).thenReturn("onboardingci/onbrest/onboarding-api");
+        permissionsFilter.doFilter(httpServletRequest, httpServletResponse, filterChain);
+
+        Mockito.verify(filterChain, Mockito.times(1)).doFilter(Mockito.any(), Mockito.any());
+    }
+
+    private void initializeMocking(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
+                                   FilterChain filterChain) throws ServletException, IOException {
+        PrintWriter printWriter = new PrintWriter(new ByteArrayOutputStream());
+        Mockito.when(httpServletRequest.getMethod()).thenReturn(HttpMethod.POST);
+        Mockito.when(httpServletRequest.getHeader("USER_ID")).thenReturn("cs0008");
+        Mockito.when(httpServletResponse.getWriter()).thenReturn(printWriter);
+        Mockito.doNothing().when(filterChain).doFilter(Mockito.any(), Mockito.any());
+        Mockito.when(permissionsServicesMock.isAllowed(
+                Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(false);
+    }
+}