diff options
author | liboNet <libo.zhu@intel.com> | 2019-03-29 07:29:51 +0800 |
---|---|---|
committer | liboNet <libo.zhu@intel.com> | 2019-03-29 08:47:20 +0800 |
commit | 2cf6469e7af254a65f4fde20b2ef61efad32cd57 (patch) | |
tree | 8e7c146a313e8e15c7d8bb43bb1445ea79c5a1c9 /artifactbroker | |
parent | ece7c6197ca79fb149c17dfbf86c972286cb262f (diff) |
Add model to represent VfModuleModel and Artifact management
. add VfModuleModel to represent content of VfModule
. add Gsonutil to support List which is the content of Vf
Module meta json
. add CloudArtifact to deal with Artifact for subplug action
. Fix pom.xml typo
Change-Id: Ic459118323bf50939493b0f0feff7ba96dd9a64d
Issue-ID: MULTICLOUD-511
Signed-off-by: liboNet <libo.zhu@intel.com>
Diffstat (limited to 'artifactbroker')
4 files changed, 168 insertions, 19 deletions
diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/CloudArtifact.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/CloudArtifact.java new file mode 100644 index 0000000..2447c68 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/CloudArtifact.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +import java.util.List; +import java.util.Map; + +/** + * Represents a CloudArtifact that a {@link Policy} can be decoded from. + */ +public class CloudArtifact implements PolicyInput { + + List<VfModuelModel> vfModulePayload; + Map<String, String> artifactTypeMap; + + public CloudArtifact(List<VfModuelModel> vfModulePayload, Map<String, String> artifactTypeMap) { + this.vfModulePayload = vfModulePayload; + this.artifactTypeMap = artifactTypeMap; + } + + /** + * Get the path to the TOSCA file. + * + * @return the path of the TOSCA file + */ + List<VfModuelModel> getVfModulePayload() { + return vfModulePayload; + } + + /** + * Get the path to the TOSCA file. + * + * @return the path of the TOSCA file + */ + Map<String, String> getArtifactTypeMap() { + return artifactTypeMap; + } + +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/GsonUtil.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/GsonUtil.java new file mode 100644 index 0000000..077c753 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/GsonUtil.java @@ -0,0 +1,46 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import java.util.List; +/** + * A GsonUtil created by a {@link GsonUtil}. + */ + +public class GsonUtil { + // 将Json数据解析成相应的映射对象 + public static <T> T parseJsonWithGson(String jsonData, Class<T> type) { + Gson gson = new Gson(); + T result = gson.fromJson(jsonData, type); + return result; + } + + // 将Json数组解析成相应的映射对象列表 + public static <T> List<T> parseJsonArrayWithGson(String jsonData, + Class<T> type) { + Gson gson = new Gson(); + List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {}.getType()); + return result; + } +} + diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuelModel.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuelModel.java new file mode 100644 index 0000000..e774b89 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuelModel.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +import java.util.List; +import java.util.Map; + + +/** + * Represents a VfModuleModel that a {@link VfModuleModel} can be parsed. + */ + +public class VfModuelModel { + + private String vfModuleModelName; + private String vfModuleModelInvariantUUID; + private String vfModuleModelVersion; + private String vfModuleModelUUID; + private String vfModuleModelCustomizationUUID; + private String vfModuleModelDescription; + private Boolean isBase; + private List<String> artifacts; + private Map<String, Object> properties; + + public String getVfModuleModelName() { + return vfModuleModelName; + } + + public String getVfModuleModelCustomizationUUID() { + return vfModuleModelCustomizationUUID; + } + + public String getVfModuleModelDescription() { + return vfModuleModelDescription; + } + + public List<String> getArtifacts() { + return artifacts; + } + + public Map<String, Object> getProperties() { + return properties; + } +} diff --git a/artifactbroker/pom.xml b/artifactbroker/pom.xml index 6373a31..da6b1d3 100644 --- a/artifactbroker/pom.xml +++ b/artifactbroker/pom.xml @@ -12,9 +12,8 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --> -<project - xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.onap.multicloud.framework</groupId> <artifactId>multicloud-framework</artifactId> @@ -35,7 +34,6 @@ <version.logback>1.2.3</version.logback> <policy.common.version>1.3.4</policy.common.version> </properties> - <modules> <module>model</module> <module>main</module> @@ -86,13 +84,11 @@ <artifactId>capabilities</artifactId> <version>${policy.common.version}</version> </dependency> - <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> - <!-- https://mvnrepository.com/artifact/org.json/json --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> @@ -129,7 +125,6 @@ <version>2.8.4</version> </dependency> </dependencies> - <build> <plugins> <plugin> @@ -168,11 +163,7 @@ </goals> <phase>process-sources</phase> <configuration> - <!-- Use Google Java Style Guide: - https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml - with minor changes --> <configLocation>onap-checkstyle/onap-java-style.xml</configLocation> - <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory --> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> <includeResources>true</includeResources> <includeTestSourceDirectory>true</includeTestSourceDirectory> @@ -181,7 +172,7 @@ </excludes> <consoleOutput>true</consoleOutput> <failOnViolation>true</failOnViolation> - <violationSeverity>warning</violationSeverity> + <violationSeverity>error</violationSeverity> </configuration> </execution> </executions> @@ -202,8 +193,6 @@ <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <configuration> - <!-- Note: This exclusion list should match <sonar.exclusions> property - above --> <excludes> <exclude>**/gen/**</exclude> <exclude>**/generated-sources/**</exclude> @@ -212,8 +201,6 @@ </excludes> </configuration> <executions> - <!-- Prepares the property pointing to the JaCoCo runtime agent which - is passed as VM argument when Maven the Surefire plugin is executed. --> <execution> <id>pre-unit-test</id> <goals> @@ -223,8 +210,6 @@ <destFile>${sonar.jacoco.reportPath}</destFile> </configuration> </execution> - <!-- Ensures that the code coverage report for unit tests is created - after unit tests have been run. --> <execution> <id>post-unit-test</id> <phase>test</phase> @@ -241,4 +226,3 @@ </pluginManagement> </build> </project> -</project> |