2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.translator.services.heattotosca.globaltypes;
23 import org.openecomp.sdc.tosca.datatypes.ToscaDataType;
24 import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
25 import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
26 import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
27 import org.openecomp.sdc.tosca.datatypes.model.NodeType;
28 import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
29 import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
30 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
31 import org.openecomp.sdc.tosca.services.DataModelUtil;
32 import org.openecomp.sdc.tosca.services.ToscaConstants;
33 import org.openecomp.sdc.translator.services.heattotosca.Constants;
35 import java.util.HashMap;
38 public class ContrailVirtualNetworkGlobalType {
41 * Create service template service template.
43 * @return the service template
45 public static ServiceTemplate createServiceTemplate() {
46 ServiceTemplate contrailVirtualNetworkServiceTemplate = new ServiceTemplate();
47 contrailVirtualNetworkServiceTemplate
48 .setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION);
49 contrailVirtualNetworkServiceTemplate.setMetadata(DataModelUtil
50 .createMetadata(Constants.CONTRAIL_VIRTUAL_NETWORK_TEMPLATE_NAME, "1.0.0", null));
51 contrailVirtualNetworkServiceTemplate.setDescription("Contrail Virtual Network Global Types");
52 contrailVirtualNetworkServiceTemplate.setImports(GlobalTypesUtil.createCommonImportList());
53 contrailVirtualNetworkServiceTemplate.setNode_types(createGlobalNodeTypes());
54 return contrailVirtualNetworkServiceTemplate;
57 private static Map<String, NodeType> createGlobalNodeTypes() {
58 Map<String, NodeType> globalNodeTypes = new HashMap<>();
59 globalNodeTypes.put(ToscaNodeType.CONTRAIL_VIRTUAL_NETWORK.getDisplayName(),
60 createContrailVirtualNetworkNodeType());
61 return globalNodeTypes;
64 private static NodeType createContrailVirtualNetworkNodeType() {
65 NodeType contrailVirtualNetworkNodeType = new NodeType();
66 contrailVirtualNetworkNodeType.setDerived_from(ToscaNodeType.NETWORK.getDisplayName());
67 contrailVirtualNetworkNodeType.setProperties(createContrailVirtualNetworkProperties());
68 contrailVirtualNetworkNodeType.setAttributes(createContrailVirtualNetworkAttributes());
69 contrailVirtualNetworkNodeType.setCapabilities(createContrailVirtualNetworkCapabilities());
70 return contrailVirtualNetworkNodeType;
73 private static Map<String, CapabilityDefinition> createContrailVirtualNetworkCapabilities() {
74 Map<String, CapabilityDefinition> capabilities = new HashMap<>();
75 capabilities.put("attachment", GlobalTypesUtil.createAttachmentCapability());
79 private static Map<String, PropertyDefinition> createContrailVirtualNetworkProperties() {
80 Map<String, PropertyDefinition> contrailVirtualNetworkPropertyDefMap = new HashMap<>();
81 contrailVirtualNetworkPropertyDefMap.put("shared", DataModelUtil
82 .createPropertyDefinition(PropertyType.STRING.getDisplayName(), "Is virtual network shared",
83 false, null, null, null, null));
84 contrailVirtualNetworkPropertyDefMap.put("external", DataModelUtil
85 .createPropertyDefinition(PropertyType.STRING.getDisplayName(),
86 "Is virtual network external", false, null, null, null, null));
87 contrailVirtualNetworkPropertyDefMap.put("allow_transit", DataModelUtil
88 .createPropertyDefinition(PropertyType.STRING.getDisplayName(),
89 "Whether this network should be transitive.", false, null, null, null, null));
90 contrailVirtualNetworkPropertyDefMap.put("route_targets", DataModelUtil
91 .createPropertyDefinition(PropertyType.LIST.getDisplayName(),
92 "route targets associated with the virtual network", false, null, null,
93 DataModelUtil.createEntrySchema(PropertyType.STRING.getDisplayName(), null, null),
95 contrailVirtualNetworkPropertyDefMap.put("forwarding_mode", DataModelUtil
96 .createPropertyDefinition(PropertyType.STRING.getDisplayName(),
97 "forwarding mode of the virtual network", false, null, null, null, null));
98 contrailVirtualNetworkPropertyDefMap.put("flood_unknown_unicast", DataModelUtil
99 .createPropertyDefinition(PropertyType.STRING.getDisplayName(),
100 "flood L2 packets on network", false, null, null, null, null));
101 contrailVirtualNetworkPropertyDefMap.put("subnets", DataModelUtil
102 .createPropertyDefinition(PropertyType.MAP.getDisplayName(), "Network related subnets",
103 false, null, null, DataModelUtil
104 .createEntrySchema(ToscaDataType.NEUTRON_SUBNET.getDisplayName(), null, null),
106 return contrailVirtualNetworkPropertyDefMap;
109 private static Map<String, AttributeDefinition> createContrailVirtualNetworkAttributes() {
110 Map<String, AttributeDefinition> contrailVirtualNetworkAttributesDefMap = new HashMap<>();
111 contrailVirtualNetworkAttributesDefMap.put("subnets_name", DataModelUtil
112 .createAttributeDefinition(PropertyType.LIST.getDisplayName(),
113 "Subnets name of this network", null,
114 DataModelUtil.createEntrySchema(PropertyType.STRING.getDisplayName(), null, null),
116 contrailVirtualNetworkAttributesDefMap.put("subnets", DataModelUtil
117 .createAttributeDefinition(PropertyType.MAP.getDisplayName(), "Network related subnets",
119 .createEntrySchema(ToscaDataType.NEUTRON_SUBNET.getDisplayName(), null, null),
121 contrailVirtualNetworkAttributesDefMap.put("subnets_show", DataModelUtil
122 .createAttributeDefinition(PropertyType.MAP.getDisplayName(),
123 "Detailed information about each subnet", null,
124 DataModelUtil.createEntrySchema(PropertyType.STRING.getDisplayName(), null, null),
126 contrailVirtualNetworkAttributesDefMap.put("fq_name", DataModelUtil
127 .createAttributeDefinition(PropertyType.STRING.getDisplayName(), "fq_name", null, null,
129 contrailVirtualNetworkAttributesDefMap.put("show", DataModelUtil
130 .createAttributeDefinition(PropertyType.STRING.getDisplayName(), "All attributes.", null,
132 return contrailVirtualNetworkAttributesDefMap;