[sdc] docker file fix for cassandra
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / globaltypes / ContrailVirtualNetworkGlobalType.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.translator.services.heattotosca.globaltypes;
22
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;
34
35 import java.util.HashMap;
36 import java.util.Map;
37
38 public class ContrailVirtualNetworkGlobalType {
39
40   /**
41    * Create service template service template.
42    *
43    * @return the service template
44    */
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;
55   }
56
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;
62   }
63
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;
71   }
72
73   private static Map<String, CapabilityDefinition> createContrailVirtualNetworkCapabilities() {
74     Map<String, CapabilityDefinition> capabilities = new HashMap<>();
75     capabilities.put("attachment", GlobalTypesUtil.createAttachmentCapability());
76     return capabilities;
77   }
78
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),
94             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),
105             null));
106     return contrailVirtualNetworkPropertyDefMap;
107   }
108
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),
115             null));
116     contrailVirtualNetworkAttributesDefMap.put("subnets", DataModelUtil
117         .createAttributeDefinition(PropertyType.MAP.getDisplayName(), "Network related subnets",
118             null, DataModelUtil
119                 .createEntrySchema(ToscaDataType.NEUTRON_SUBNET.getDisplayName(), null, null),
120             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),
125             null));
126     contrailVirtualNetworkAttributesDefMap.put("fq_name", DataModelUtil
127         .createAttributeDefinition(PropertyType.STRING.getDisplayName(), "fq_name", null, null,
128             null));
129     contrailVirtualNetworkAttributesDefMap.put("show", DataModelUtil
130         .createAttributeDefinition(PropertyType.STRING.getDisplayName(), "All attributes.", null,
131             null, null));
132     return contrailVirtualNetworkAttributesDefMap;
133   }
134 }