diff options
author | 2019-03-29 07:29:51 +0800 | |
---|---|---|
committer | 2019-03-29 08:47:20 +0800 | |
commit | 2cf6469e7af254a65f4fde20b2ef61efad32cd57 (patch) | |
tree | 8e7c146a313e8e15c7d8bb43bb1445ea79c5a1c9 /artifactbroker/model/src | |
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/model/src')
3 files changed, 165 insertions, 0 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; + } +} |