From 2cf6469e7af254a65f4fde20b2ef61efad32cd57 Mon Sep 17 00:00:00 2001 From: liboNet Date: Fri, 29 Mar 2019 07:29:51 +0800 Subject: [PATCH] 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 --- .../policy/distribution/model/CloudArtifact.java | 57 ++++++++++++++++++++ .../onap/policy/distribution/model/GsonUtil.java | 46 ++++++++++++++++ .../policy/distribution/model/VfModuelModel.java | 62 ++++++++++++++++++++++ artifactbroker/pom.xml | 22 ++------ 4 files changed, 168 insertions(+), 19 deletions(-) create mode 100644 artifactbroker/model/src/main/java/org/onap/policy/distribution/model/CloudArtifact.java create mode 100644 artifactbroker/model/src/main/java/org/onap/policy/distribution/model/GsonUtil.java create mode 100644 artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuelModel.java 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 vfModulePayload; + Map artifactTypeMap; + + public CloudArtifact(List vfModulePayload, Map artifactTypeMap) { + this.vfModulePayload = vfModulePayload; + this.artifactTypeMap = artifactTypeMap; + } + + /** + * Get the path to the TOSCA file. + * + * @return the path of the TOSCA file + */ + List getVfModulePayload() { + return vfModulePayload; + } + + /** + * Get the path to the TOSCA file. + * + * @return the path of the TOSCA file + */ + Map 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 parseJsonWithGson(String jsonData, Class type) { + Gson gson = new Gson(); + T result = gson.fromJson(jsonData, type); + return result; + } + + // 将Json数组解析成相应的映射对象列表 + public static List parseJsonArrayWithGson(String jsonData, + Class type) { + Gson gson = new Gson(); + List result = gson.fromJson(jsonData, new TypeToken>() {}.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 artifacts; + private Map properties; + + public String getVfModuleModelName() { + return vfModuleModelName; + } + + public String getVfModuleModelCustomizationUUID() { + return vfModuleModelCustomizationUUID; + } + + public String getVfModuleModelDescription() { + return vfModuleModelDescription; + } + + public List getArtifacts() { + return artifacts; + } + + public Map 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. --> - + + org.onap.multicloud.framework multicloud-framework @@ -35,7 +34,6 @@ 1.2.3 1.3.4 - model main @@ -86,13 +84,11 @@ capabilities ${policy.common.version} - com.fasterxml.jackson.core jackson-databind 2.9.8 - org.json json @@ -129,7 +125,6 @@ 2.8.4 - @@ -168,11 +163,7 @@ process-sources - onap-checkstyle/onap-java-style.xml - ${project.build.sourceDirectory} true true @@ -181,7 +172,7 @@ true true - warning + error @@ -202,8 +193,6 @@ jacoco-maven-plugin ${jacoco.version} - **/gen/** **/generated-sources/** @@ -212,8 +201,6 @@ - pre-unit-test @@ -223,8 +210,6 @@ ${sonar.jacoco.reportPath} - post-unit-test test @@ -241,4 +226,3 @@ - -- 2.16.6