Allow UUID definitions in the mappings JSON 23/83323/1
authormark.j.leonard <mark.j.leonard@gmail.com>
Tue, 26 Mar 2019 10:51:07 +0000 (10:51 +0000)
committermark.j.leonard <mark.j.leonard@gmail.com>
Tue, 26 Mar 2019 10:51:07 +0000 (10:51 +0000)
Add support for reading the Widget invariant and version UUIDs from the
TOSCA mappings JSON. In this commit the artifact-generator.properties is
also read and used to provide default values. This step prevents any
existing deployments (e.g. automated test integration) from failing.
The redundant properties file will be deprecated in a future commit,
only when the JSON configuration has been updated.

Also remove two unused Java files to help with coverage stats.

Change-Id: Idc82e28092a2b028214225c7974db411c9f8a173
Issue-ID: AAI-2284
Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java
src/main/java/org/onap/aai/babel/xml/generator/data/WidgetTypeConfig.java
src/main/java/org/onap/aai/babel/xml/generator/model/Widget.java
src/test/java/org/onap/aai/babel/csar/fixture/ArtifactInfoBuilder.java [deleted file]
src/test/java/org/onap/aai/babel/csar/fixture/TestArtifactInfoImpl.java [deleted file]
src/test/java/org/onap/aai/babel/xml/generator/model/TestWidget.java
src/test/resources/artifact-generator.properties
src/test/resources/tosca-mappings.json

index baecada..620f792 100644 (file)
@@ -37,6 +37,9 @@ import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class WidgetConfigurationUtil {
 
 
 public class WidgetConfigurationUtil {
 
+    public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
+            "Cannot generate artifacts. Widget configuration not found for %s";
+
     private static Properties config;
     private static List<String> instanceGroups = Collections.emptyList();
     private static Map<String, Resource> typeToResource = new HashMap<>();
     private static Properties config;
     private static List<String> instanceGroups = Collections.emptyList();
     private static Map<String, Resource> typeToResource = new HashMap<>();
@@ -49,10 +52,6 @@ public class WidgetConfigurationUtil {
         throw new UnsupportedOperationException("This static class should not be instantiated!");
     }
 
         throw new UnsupportedOperationException("This static class should not be instantiated!");
     }
 
-    public static Properties getConfig() {
-        return config;
-    }
-
     public static void setConfig(Properties config) {
         WidgetConfigurationUtil.config = config;
     }
     public static void setConfig(Properties config) {
         WidgetConfigurationUtil.config = config;
     }
@@ -98,8 +97,14 @@ public class WidgetConfigurationUtil {
             if (type.type == null || type.name == null) {
                 throw new IllegalArgumentException("Incomplete widget type specified: " + type);
             }
             if (type.type == null || type.name == null) {
                 throw new IllegalArgumentException("Incomplete widget type specified: " + type);
             }
-            WidgetType widgetType = new WidgetType(type.type);
-            Widget widget = new Widget(widgetType, type.name, type.deleteFlag);
+            if (type.modelInvariantId == null) {
+                type.modelInvariantId = WidgetConfigurationUtil.getModelInvariantId(type.name);
+            }
+            if (type.modelVersionId == null) {
+                type.modelVersionId = WidgetConfigurationUtil.getModelVersionId(type.name);
+            }
+            Widget widget = new Widget(new WidgetType(type.type), type.name, type.deleteFlag, //
+                    type.modelInvariantId, type.modelVersionId);
             typeToWidget.put(type.type, widget);
         }
         WidgetType.validateElements();
             typeToWidget.put(type.type, widget);
         }
         WidgetType.validateElements();
@@ -117,4 +122,22 @@ public class WidgetConfigurationUtil {
             typeToResource.put(mapping.prefix, resource);
         }
     }
             typeToResource.put(mapping.prefix, resource);
         }
     }
+
+    public static String getModelInvariantId(String name) {
+        String id = config.getProperty(ArtifactType.AAI.name() + ".model-invariant-id." + name);
+        if (id == null) {
+            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+                    ArtifactType.AAI.name() + ".model-invariant-id." + name));
+        }
+        return id;
+    }
+
+    public static String getModelVersionId(String name) {
+        String id = config.getProperty(ArtifactType.AAI.name() + ".model-version-id." + name);
+        if (id == null) {
+            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+                    ArtifactType.AAI.name() + ".model-version-id." + name));
+        }
+        return id;
+    }
 }
 }
index 0d0fe6b..b52c7a5 100644 (file)
@@ -22,7 +22,7 @@
 package org.onap.aai.babel.xml.generator.data;
 
 /**
 package org.onap.aai.babel.xml.generator.data;
 
 /**
- * Widget Type as configured in the TOSCA Mappings. 
+ * Widget Type as configured in the TOSCA Mappings.
  *
  */
 public class WidgetTypeConfig {
  *
  */
 public class WidgetTypeConfig {
@@ -30,5 +30,7 @@ public class WidgetTypeConfig {
     String type;
     String name;
     boolean deleteFlag = false;
     String type;
     String name;
     boolean deleteFlag = false;
+    String modelInvariantId;
+    String modelVersionId;
 
 }
 
 }
index 78a1e8a..ee04abc 100644 (file)
@@ -24,29 +24,29 @@ package org.onap.aai.babel.xml.generator.model;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Properties;
 import java.util.Set;
 import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
 import java.util.Set;
 import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
-import org.onap.aai.babel.xml.generator.data.ArtifactType;
 import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil;
 import org.onap.aai.babel.xml.generator.error.IllegalAccessException;
 import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class Widget extends Model {
 
 import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil;
 import org.onap.aai.babel.xml.generator.error.IllegalAccessException;
 import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class Widget extends Model {
 
-    public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
-            "Cannot generate artifacts. Widget configuration not found for %s";
-
     private Set<String> keys = new HashSet<>();
 
     protected String name;
     protected WidgetType type;
     protected boolean deleteFlag = false;
 
     private Set<String> keys = new HashSet<>();
 
     protected String name;
     protected WidgetType type;
     protected boolean deleteFlag = false;
 
-    public Widget(WidgetType widgetType, String name, boolean deleteFlag) {
+    private String modelInvariantId;
+    private String modelVersionId;
+
+    public Widget(WidgetType widgetType, String name, boolean deleteFlag, String modelInvariantId, String modelVersionId) {
         type = widgetType;
         this.name = name;
         this.deleteFlag = deleteFlag;
         type = widgetType;
         this.name = name;
         this.deleteFlag = deleteFlag;
+        this.modelInvariantId = modelInvariantId;
+        this.modelVersionId = modelVersionId;
     }
 
     /**
     }
 
     /**
@@ -57,7 +57,7 @@ public class Widget extends Model {
      *             if there is no widget mapping defined for any of the VSERVER child types
      */
     public Widget(Widget baseWidget) throws XmlArtifactGenerationException {
      *             if there is no widget mapping defined for any of the VSERVER child types
      */
     public Widget(Widget baseWidget) throws XmlArtifactGenerationException {
-        this(baseWidget.getWidgetType(), baseWidget.getName(), baseWidget.getDeleteFlag());
+        this(baseWidget.getWidgetType(), baseWidget.getName(), baseWidget.getDeleteFlag(), baseWidget.getWidgetId(), baseWidget.getId());
         if (this.hasWidgetType("VSERVER")) {
             widgets.add(createWidget("FLAVOR"));
             widgets.add(createWidget("IMAGE"));
         if (this.hasWidgetType("VSERVER")) {
             widgets.add(createWidget("FLAVOR"));
             widgets.add(createWidget("IMAGE"));
@@ -97,13 +97,7 @@ public class Widget extends Model {
     }
 
     public String getId() {
     }
 
     public String getId() {
-        String id = WidgetConfigurationUtil.getConfig()
-                .getProperty(ArtifactType.AAI.name() + ".model-version-id." + getName());
-        if (id == null) {
-            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
-                    ArtifactType.AAI.name() + ".model-version-id." + getName()));
-        }
-        return id;
+        return modelVersionId;
     }
 
     public ModelType getType() {
     }
 
     public ModelType getType() {
@@ -121,13 +115,7 @@ public class Widget extends Model {
      */
     @Override
     public String getWidgetId() {
      */
     @Override
     public String getWidgetId() {
-        Properties properties = WidgetConfigurationUtil.getConfig();
-        String id = properties.getProperty(ArtifactType.AAI.name() + ".model-invariant-id." + getName());
-        if (id == null) {
-            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
-                    ArtifactType.AAI.name() + ".model-invariant-id." + getName()));
-        }
-        return id;
+        return modelInvariantId;
     }
 
     @Override
     }
 
     @Override
diff --git a/src/test/java/org/onap/aai/babel/csar/fixture/ArtifactInfoBuilder.java b/src/test/java/org/onap/aai/babel/csar/fixture/ArtifactInfoBuilder.java
deleted file mode 100644 (file)
index cb70677..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.aai.babel.csar.fixture;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.onap.sdc.api.notification.IArtifactInfo;
-
-/**
- * This class builds an instance of IArtifactInfo for test purposes.
- */
-public class ArtifactInfoBuilder {
-
-    /**
-     * Builds an implementation of IArtifactInfo for test purposes.
-     * <p/>
-     *
-     * @param type
-     *            type of artifact
-     * @param name
-     *            name of artifact
-     * @param description
-     *            description of artifact
-     * @param version
-     *            version of artifact
-     * @return IArtifactInfo implementation of IArtifactInfo from given parameters for test purposes
-     */
-    public static IArtifactInfo build(final String type, final String name, final String description,
-            final String version) {
-        IArtifactInfo artifact = new TestArtifactInfoImpl();
-
-        ((TestArtifactInfoImpl) artifact).setArtifactType(type);
-        ((TestArtifactInfoImpl) artifact).setArtifactName(name);
-        ((TestArtifactInfoImpl) artifact).setArtifactDescription(description);
-        ((TestArtifactInfoImpl) artifact).setArtifactVersion(version);
-
-        return artifact;
-    }
-
-    /**
-     * This method is responsible for building a collection of artifacts from a given set of info.
-     * <p/>
-     * The info supplied is a two dimensional array with each element of the first dimension representing a single
-     * artifact and each element of the second dimension represents a property of the artifact.
-     * <p/>
-     * The method will call {@link #build(String, String, String, String)} to build each element in the first dimension
-     * where the elements of the second dimension are the arguments to {@link #build(String, String, String, String)}.
-     * <p/>
-     *
-     * @param artifactInfoBits
-     *            a two dimensional array of data used to build the artifacts
-     * @return List&lt;IArtifactInfo&gt; a list of artifacts built from the given array of info
-     */
-    static List<IArtifactInfo> buildArtifacts(final String[][] artifactInfoBits) {
-        List<IArtifactInfo> artifacts = new ArrayList<>();
-
-        for (String[] artifactInfoBit : artifactInfoBits) {
-            artifacts.add(build(artifactInfoBit[0], artifactInfoBit[1], artifactInfoBit[2], artifactInfoBit[3]));
-        }
-
-        return artifacts;
-    }
-}
diff --git a/src/test/java/org/onap/aai/babel/csar/fixture/TestArtifactInfoImpl.java b/src/test/java/org/onap/aai/babel/csar/fixture/TestArtifactInfoImpl.java
deleted file mode 100644 (file)
index 6c0078d..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.aai.babel.csar.fixture;
-
-import java.util.Objects;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.onap.sdc.api.notification.IArtifactInfo;
-
-/**
- * This class is an implementation of IArtifactInfo for test purposes.
- */
-public class TestArtifactInfoImpl implements IArtifactInfo {
-
-    private String artifactName;
-    private String artifactType;
-    private String artifactDescription;
-    private String artifactVersion;
-
-    @Override
-    public String getArtifactName() {
-        return artifactName;
-    }
-
-    void setArtifactName(String artifactName) {
-        this.artifactName = artifactName;
-    }
-
-    @Override
-    public String getArtifactType() {
-        return artifactType;
-    }
-
-    void setArtifactType(String artifactType) {
-        this.artifactType = artifactType;
-    }
-
-    @Override
-    public String getArtifactURL() {
-        return null;
-    }
-
-    @Override
-    public String getArtifactChecksum() {
-        return null;
-    }
-
-    @Override
-    public String getArtifactDescription() {
-        return artifactDescription;
-    }
-
-    void setArtifactDescription(String artifactDescription) {
-        this.artifactDescription = artifactDescription;
-    }
-
-    @Override
-    public Integer getArtifactTimeout() {
-        return null;
-    }
-
-    @Override
-    public String getArtifactVersion() {
-        return artifactVersion;
-    }
-
-    void setArtifactVersion(String artifactVersion) {
-        this.artifactVersion = artifactVersion;
-    }
-
-    @Override
-    public String getArtifactUUID() {
-        return null;
-    }
-
-    @Override
-    public IArtifactInfo getGeneratedArtifact() {
-        return null;
-    }
-
-    @Override
-    public java.util.List<IArtifactInfo> getRelatedArtifacts() {
-        return null;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (!(obj instanceof TestArtifactInfoImpl)) {
-            return false;
-        }
-        TestArtifactInfoImpl rhs = (TestArtifactInfoImpl) obj;
-        return new EqualsBuilder() //
-                .append(artifactType, rhs.artifactType) //
-                .append(artifactDescription, rhs.artifactDescription) //
-                .append(artifactVersion, rhs.artifactVersion) //
-                .isEquals();
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(this.artifactType, this.artifactDescription, this.artifactVersion);
-    }
-}
index 2b64bfb..e5702ac 100644 (file)
@@ -187,16 +187,6 @@ public class TestWidget {
         Widget.createWidget("OAM_NETWORK").addResource(null);
     }
 
         Widget.createWidget("OAM_NETWORK").addResource(null);
     }
 
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetVersionIdForUknownWidget() {
-        new Widget(new WidgetType("test"), null, false).getId();
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetInvariantIdForUknownWidget() {
-        new Widget(new WidgetType("test"), null, false).getWidgetId();
-    }
-
     // Call Widget methods which are not supported, purely for code coverage.
 
     @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class)
     // Call Widget methods which are not supported, purely for code coverage.
 
     @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class)
index 1a905b6..e69de29 100644 (file)
@@ -1,270 +0,0 @@
-#action widget details
-AAI.model-version-id.action=action-version-id
-AAI.model-invariant-id.action=action-invariant-id
-#action-data widget details
-AAI.model-invariant-id.action-data=action-data-invariant-id
-AAI.model-version-id.action-data=action-data-version-id
-#allotted-resource widget details
-AAI.model-invariant-id.allotted-resource=allotted-resource-invariant-id
-AAI.model-version-id.allotted-resource=allotted-resource-version-id
-#availability-zone widget details
-AAI.model-version-id.availability-zone=availability-zone-version-id
-AAI.model-invariant-id.availability-zone=availability-zone-invariant-id
-#az-and-dvs-switches widget details
-AAI.model-version-id.az-and-dvs-switches=az-and-dvs-switches-version-id
-AAI.model-invariant-id.az-and-dvs-switches=az-and-dvs-switches-invariant-id
-#class-of-service widget details
-AAI.model-version-id.class-of-service=class-of-service-version-id
-AAI.model-invariant-id.class-of-service=class-of-service-invariant-id
-#cloud-region widget details
-AAI.model-version-id.cloud-region=cloud-region-version-id
-AAI.model-invariant-id.cloud-region=cloud-region-invariant-id
-#complex widget details
-AAI.model-invariant-id.complex=complex-invariant-id
-AAI.model-version-id.complex=complex-version-id
-#configuration widget details
-AAI.model-invariant-id.configuration=configuration-invariant-id
-AAI.model-version-id.configuration=configuration-version-id
-#connector widget details
-AAI.model-version-id.connector=connector-version-id
-AAI.model-invariant-id.connector=connector-invariant-id
-#constrained-element-set widget details
-AAI.model-invariant-id.constrained-element-set=constrained-element-set-invariant-id
-AAI.model-version-id.constrained-element-set=constrained-element-set-version-id
-#ctag-assignment widget details
-AAI.model-version-id.ctag-assignment=ctag-assignment-version-id
-AAI.model-invariant-id.ctag-assignment=ctag-assignment-invariant-id
-#ctag-pool widget details
-AAI.model-invariant-id.ctag-pool=ctag-pool-invariant-id
-AAI.model-version-id.ctag-pool=ctag-pool-version-id
-#customer widget details
-AAI.model-invariant-id.customer=customer-invariant-id
-AAI.model-version-id.customer=customer-version-id
-#cvlan-tag-entry widget details
-AAI.model-version-id.cvlan-tag-entry=cvlan-tag-entry-version-id
-AAI.model-invariant-id.cvlan-tag-entry=cvlan-tag-entry-invariant-id
-#dvs-switch widget details
-AAI.model-invariant-id.dvs-switch=dvs-switch-invariant-id
-AAI.model-version-id.dvs-switch=dvs-switch-version-id
-#edge-prop-names widget details
-AAI.model-invariant-id.edge-prop-names=edge-prop-names-invariant-id
-AAI.model-version-id.edge-prop-names=edge-prop-names-version-id
-#element-choice-set widget details
-AAI.model-invariant-id.element-choice-set=element-choice-set-invariant-id
-AAI.model-version-id.element-choice-set=element-choice-set-version-id
-#entitlement widget details
-AAI.model-version-id.entitlement=entitlement-version-id
-AAI.model-invariant-id.entitlement=entitlement-invariant-id
-#flavor widget details
-AAI.model-invariant-id.flavor=flavor-invariant-id
-AAI.model-version-id.flavor=flavor-version-id
-#generic-vnf widget details
-AAI.model-version-id.generic-vnf=generic-vnf-version-id
-AAI.model-invariant-id.generic-vnf=generic-vnf-invariant-id
-#group-assignment widget details
-AAI.model-invariant-id.group-assignment=group-assignment-invariant-id
-AAI.model-version-id.group-assignment=group-assignment-version-id
-#image widget details
-AAI.model-version-id.image=image-version-id
-AAI.model-invariant-id.image=image-invariant-id
-#include-node-filter widget details
-AAI.model-invariant-id.include-node-filter=include-node-filter-invariant-id
-AAI.model-version-id.include-node-filter=include-node-filter-version-id
-#instance-group widget details
-AAI.model-version-id.instance-group=instance-group-version-id
-AAI.model-invariant-id.instance-group=instance-group-invariant-id
-#inventory-item widget details
-AAI.model-invariant-id.inventory-item=inventory-item-invariant-id
-AAI.model-version-id.inventory-item=inventory-item-version-id
-#inventory-item-data widget details
-AAI.model-version-id.inventory-item-data=inventory-item-data-version-id
-AAI.model-invariant-id.inventory-item-data=inventory-item-data-invariant-id
-#ipsec-configuration widget details
-AAI.model-invariant-id.ipsec-configuration=ipsec-configuration-invariant-id
-AAI.model-version-id.ipsec-configuration=ipsec-configuration-version-id
-#key-data widget details
-AAI.model-version-id.key-data=key-data-version-id
-AAI.model-invariant-id.key-data=key-data-invariant-id
-#l3-interface-ipv4-address-list widget details
-AAI.model-version-id.l3-interface-ipv4-address-list=l3-interface-ipv4-address-list-version-id
-AAI.model-invariant-id.l3-interface-ipv4-address-list=l3-interface-ipv4-address-list-invariant-id
-#l3-interface-ipv6-address-list widget details
-AAI.model-invariant-id.l3-interface-ipv6-address-list=interface-ipv6-address-list-invariant-id
-AAI.model-version-id.l3-interface-ipv6-address-list=l3-interface-ipv6-address-list-version-id
-#l3-network widget details
-AAI.model-version-id.l3-network=l3-network-version-id
-AAI.model-invariant-id.l3-network=l3-network-invariant-id
-#lag-interface widget details
-AAI.model-version-id.lag-interface=lag-interface-version-id
-AAI.model-invariant-id.lag-interface=lag-interface-invariant-id
-#lag-link widget details
-AAI.model-version-id.lag-link=lag-link-version-id
-AAI.model-invariant-id.lag-link=lag-link-invariant-id
-#license widget details
-AAI.model-invariant-id.license=license-invariant-id
-AAI.model-version-id.license=license-version-id
-#license-key-resource widget details
-AAI.model-invariant-id.license-key-resource=license-key-resource-invariant-id
-AAI.model-version-id.license-key-resource=license-key-resource-version-id
-#l-interface widget details
-AAI.model-version-id.l-interface=l-interface-version-id
-AAI.model-invariant-id.l-interface=l-interface-invariant-id
-#logical-link widget details
-AAI.model-version-id.logical-link=logical-link-version-id
-AAI.model-invariant-id.logical-link=logical-link-invariant-id
-#metadatum widget details
-AAI.model-invariant-id.metadatum=metadatum-invariant-id
-AAI.model-version-id.metadatum=metadatum-version-id
-#model widget details
-AAI.model-invariant-id.model=model-invariant-id
-AAI.model-version-id.model=model-version-id
-#model-constraint widget details
-AAI.model-invariant-id.model-constraint=model-constraint-invariant-id
-AAI.model-version-id.model-constraint=model-constraint-version-id
-#model-element widget details
-AAI.model-invariant-id.model-element=model-element-invariant-id
-AAI.model-version-id.model-element=model-element-version-id
-#multicast-configuration widget details
-AAI.model-invariant-id.multicast-configuration=multicast-configuration-invariant-id
-AAI.model-version-id.multicast-configuration=multicast-configuration-version-id
-#named-query widget details
-AAI.model-version-id.named-query=named-query-version-id
-AAI.model-invariant-id.named-query=named-query-invariant-id
-#named-query-element widget details
-AAI.model-version-id.named-query-element=named-query-element-version-id
-AAI.model-invariant-id.named-query-element=amed-query-element-invariant-id
-#network-policy widget details
-AAI.model-invariant-id.network-policy=network-policy-invariant-id
-AAI.model-version-id.network-policy=network-policy-version-id
-#network-profile widget details
-AAI.model-version-id.network-profile=network-profile-version-id
-AAI.model-invariant-id.network-profile=network-profile-invariant-id
-#newvce widget details
-AAI.model-version-id.newvce=newvce-version-id
-AAI.model-invariant-id.newvce=newvce-invariant-id
-#oam-network widget details
-AAI.model-invariant-id.oam-network=oam-network-invariant-id
-AAI.model-version-id.oam-network=oam-network-version-id
-#physical-link widget details
-AAI.model-invariant-id.physical-link=physical-link-invariant-id
-AAI.model-version-id.physical-link=physical-link-version-id
-#p-interface widget details
-AAI.model-invariant-id.p-interface=p-interface-invariant-id
-AAI.model-version-id.p-interface=p-interface-version-id
-#pnf widget details
-AAI.model-version-id.pnf=pnf-version-id
-AAI.model-invariant-id.pnf=pnf-invariant-id
-#port-group widget details
-AAI.model-version-id.port-group=port-group-version-id
-AAI.model-invariant-id.port-group=port-group-invariant-id
-#property-constraint widget details
-AAI.model-version-id.property-constraint=property-constraint-version-id
-AAI.model-invariant-id.property-constraint=f4a863c3-6886-470a-a6ae-05723837ea45
-#pserver widget details
-AAI.model-invariant-id.pserver=pserver-invariant-id
-AAI.model-version-id.pserver=pserver-version-id
-#related-lookup widget details
-AAI.model-invariant-id.related-lookup=related-lookup-invariant-id
-AAI.model-version-id.related-lookup=related-lookup-version-id
-#reserved-prop-names widget details
-AAI.model-invariant-id.reserved-prop-names=reserved-prop-names-invariant-id
-AAI.model-version-id.reserved-prop-names=reserved-prop-names-version-id
-#result-data widget details
-AAI.model-version-id.result-data=result-data-version-id
-AAI.model-invariant-id.result-data=result-data-invariant-id
-#route-table-reference widget details
-AAI.model-version-id.route-table-reference=route-table-reference-version-id
-AAI.model-invariant-id.route-table-reference=route-table-reference-invariant-id
-#routing-instance widget details
-AAI.model-invariant-id.routing-instance=routing-instance-invariant-id
-AAI.model-version-id.routing-instance=routing-instance-version-id
-#secondary-filter widget details
-AAI.model-version-id.secondary-filter=secondary-filter-version-id
-AAI.model-invariant-id.secondary-filter=secondary-filter-invariant-id
-#segmentation-assignment widget details
-AAI.model-invariant-id.segmentation-assignment=segmentation-assignment-invariant-id
-AAI.model-version-id.segmentation-assignment=segmentation-assignment-version-id
-#service widget details
-AAI.model-version-id.service=service-version-id
-AAI.model-invariant-id.service=service-invariant-id
-#service-capability widget details
-AAI.model-invariant-id.service-capability=service-capability-invariant-id
-AAI.model-version-id.service-capability=service-capability-version-id
-#service-instance widget details
-AAI.model-invariant-id.service-instance=service-instance-invariant-id
-AAI.model-version-id.service-instance=service-instance-version-id
-#service-subscription widget details
-AAI.model-invariant-id.service-subscription=service-subscription-invariant-id
-AAI.model-version-id.service-subscription=service-subscription-version-id
-#site-pair widget details
-AAI.model-version-id.site-pair=site-pair-version-id
-AAI.model-invariant-id.site-pair=site-pair-invariant-id
-#site-pair-set widget details
-AAI.model-invariant-id.site-pair-set=site-pair-set-invariant-id
-AAI.model-version-id.site-pair-set=site-pair-set-version-id
-#snapshot widget details
-AAI.model-version-id.snapshot=snapshot-version-id
-AAI.model-invariant-id.snapshot=snapshot-invariant-id
-#sriov-vf widget details
-AAI.model-version-id.sriov-vf=sriov-vf-version-id
-AAI.model-invariant-id.sriov-vf=sriov-vf-invariant-id
-#start-node-filter widget details
-AAI.model-version-id.start-node-filter=start-node-filter-version-id
-AAI.model-invariant-id.start-node-filter=start-node-filter-invariant-id
-#subnet widget details
-AAI.model-version-id.subnet=subnet-version-id
-AAI.model-invariant-id.subnet=subnet-invariant-id
-#tagged-inventory-item-list widget details
-AAI.model-invariant-id.tagged-inventory-item-list=tagged-inventory-item-list-invariant-id
-AAI.model-version-id.tagged-inventory-item-list=tagged-inventory-item-list-version-id
-#tenant widget details
-AAI.model-invariant-id.tenant=tenant-invariant-id
-AAI.model-version-id.tenant=tenant-version-id
-#tunnel-xconnect widget details
-AAI.model-invariant-id.tunnel-xconnect=tunnel-xconnect-invariant-id
-AAI.model-version-id.tunnel-xconnect=tunnel-xconnect-version-id
-#update-node-key widget details
-AAI.model-version-id.update-node-key=tenant-version-id
-AAI.model-invariant-id.update-node-key=tenant-invariant-id
-#vce widget details
-AAI.model-version-id.vce=vce-version-id
-AAI.model-invariant-id.vce=vce-invariant-id
-#vf-module widget details
-AAI.model-invariant-id.vf-module=vf-module-invariant-id
-AAI.model-version-id.vf-module=vf-module-version-id
-#vig-server widget details
-AAI.model-version-id.vig-server=vig-server-version-id
-AAI.model-invariant-id.vig-server=vig-server-invariant-id
-#virtual-data-center widget details
-AAI.model-invariant-id.virtual-data-center=virtual-data-center-invariant-id
-AAI.model-version-id.virtual-data-center=virtual-data-center-version-id
-#vlan widget details
-AAI.model-version-id.vlan=vlan-version-id
-AAI.model-invariant-id.vlan=vlan-invariant-id
-#vnfc widget details
-AAI.model-invariant-id.vnfc=vnfc-invariant-id
-AAI.model-version-id.vnfc=vnfc-version-id
-#vnf-image widget details
-AAI.model-invariant-id.vnf-image=vnf-image-invariant-id
-AAI.model-version-id.vnf-image=vnf-image-version-id
-#volume widget details
-AAI.model-version-id.volume=volume-version-id
-AAI.model-invariant-id.volume=volume-invariant-id
-#volume-group widget details
-AAI.model-invariant-id.volume-group=volume-group-invariant-id
-AAI.model-version-id.volume-group=volume-group-version-id
-#vpe widget details
-AAI.model-invariant-id.vpe=vpe-version-id
-AAI.model-version-id.vpe=vpe-version-id
-#vpls-pe widget details
-AAI.model-version-id.vpls-pe=vpls-pe-version-id
-AAI.model-invariant-id.vpls-pe=vpls-pe-invariant-id
-#vpn-binding widget details
-AAI.model-invariant-id.vpn-binding=vpn-binding-invariant-id
-AAI.model-version-id.vpn-binding=vpn-binding-version-id
-#vserver widget details
-AAI.model-invariant-id.vserver=vserver-invariant-id
-AAI.model-version-id.vserver=vserver-version-id
-#cr (Collection Resource) widget details
-AAI.model-version-id.cr=collection-resource-version-id
-AAI.model-invariant-id.cr=collection-resource-invariant-id
index c67b3e2..4d630e2 100644 (file)
                {
                        "type": "SERVICE",
                        "name": "service-instance",
                {
                        "type": "SERVICE",
                        "name": "service-instance",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "service-instance-invariant-id",
+            "modelVersionId": "service-instance-version-id"
                },
                {
                        "type": "VF",
                        "name": "generic-vnf",
                },
                {
                        "type": "VF",
                        "name": "generic-vnf",
-                       "deleteFlag": false
+                       "deleteFlag": false,
+            "modelInvariantId": "generic-vnf-invariant-id",
+            "modelVersionId": "generic-vnf-version-id"
                },
                {
                        "type": "VFC",
                        "name": "vnfc",
                },
                {
                        "type": "VFC",
                        "name": "vnfc",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "vnfc-invariant-id",
+            "modelVersionId": "vnfc-version-id"
                },
                {
                        "type": "VSERVER",
                        "name": "vserver",
                },
                {
                        "type": "VSERVER",
                        "name": "vserver",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "vserver-invariant-id",
+            "modelVersionId": "vserver-version-id"
                },
                {
                        "type": "VOLUME",
                        "name": "volume",
                },
                {
                        "type": "VOLUME",
                        "name": "volume",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "volume-invariant-id",
+            "modelVersionId": "volume-version-id"
                },
                {
                        "type": "FLAVOR",
                        "name": "flavor",
                },
                {
                        "type": "FLAVOR",
                        "name": "flavor",
-                       "deleteFlag": false
+                       "deleteFlag": false,
+            "modelInvariantId": "flavor-invariant-id",
+            "modelVersionId": "flavor-version-id"
                },
                {
                        "type": "TENANT",
                        "name": "tenant",
                },
                {
                        "type": "TENANT",
                        "name": "tenant",
-                       "deleteFlag": false
+                       "deleteFlag": false,
+            "modelInvariantId": "tenant-invariant-id",
+            "modelVersionId": "tenant-version-id"
                },
                {
                        "type": "VOLUME_GROUP",
                        "name": "volume-group",
                },
                {
                        "type": "VOLUME_GROUP",
                        "name": "volume-group",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "volume-group-invariant-id",
+            "modelVersionId": "volume-group-version-id"
                },
                {
                        "type": "LINT",
                        "name": "l-interface",
                },
                {
                        "type": "LINT",
                        "name": "l-interface",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "l-interface-invariant-id",
+            "modelVersionId": "l-interface-version-id"
                },
                {
                        "type": "L3_NET",
                        "name": "l3-network",
                },
                {
                        "type": "L3_NET",
                        "name": "l3-network",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "l3-network-invariant-id",
+            "modelVersionId": "l3-network-version-id"
                },
                {
                        "type": "VFMODULE",
                        "name": "vf-module",
                },
                {
                        "type": "VFMODULE",
                        "name": "vf-module",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "vf-module-invariant-id",
+            "modelVersionId": "vf-module-version-id"
                },
                {
                        "type": "IMAGE",
                        "name": "image",
                },
                {
                        "type": "IMAGE",
                        "name": "image",
-                       "deleteFlag": false
+                       "deleteFlag": false,
+            "modelInvariantId": "image-invariant-id",
+            "modelVersionId": "image-version-id"
                },
                {
                        "type": "OAM_NETWORK",
                        "name": "oam-network",
                },
                {
                        "type": "OAM_NETWORK",
                        "name": "oam-network",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "oam-network-invariant-id",
+            "modelVersionId": "oam-network-version-id"
                },
                {
                        "type": "ALLOTTED_RESOURCE",
                        "name": "allotted-resource",
                },
                {
                        "type": "ALLOTTED_RESOURCE",
                        "name": "allotted-resource",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "allotted-resource-invariant-id",
+                       "modelVersionId": "allotted-resource-version-id"
                },
                {
                        "type": "TUNNEL_XCONNECT",
                        "name": "tunnel-xconnect",
                },
                {
                        "type": "TUNNEL_XCONNECT",
                        "name": "tunnel-xconnect",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "tunnel-xconnect-invariant-id",
+            "modelVersionId": "tunnel-xconnect-version-id"
                },
                {
                        "type": "CONFIGURATION",
                        "name": "configuration",
                },
                {
                        "type": "CONFIGURATION",
                        "name": "configuration",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "configuration-invariant-id",
+            "modelVersionId": "configuration-version-id"
                },
                {
                        "type": "CR",
                        "name": "cr",
                },
                {
                        "type": "CR",
                        "name": "cr",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "collection-resource-invariant-id",
+            "modelVersionId": "collection-resource-version-id"
                },
                {
                        "type": "INSTANCE_GROUP",
                        "name": "instance-group",
                },
                {
                        "type": "INSTANCE_GROUP",
                        "name": "instance-group",
-                       "deleteFlag": true
+                       "deleteFlag": true,
+            "modelInvariantId": "instance-group-invariant-id",
+            "modelVersionId": "instance-group-version-id"
                }
        ],
        "widgetMappings": [
                }
        ],
        "widgetMappings": [