Replaced all tabs with spaces in java and pom.xml
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / client / orchestration / AAINetworkResources.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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.onap.so.client.orchestration;
22
23 import java.util.Optional;
24 import org.onap.aai.domain.yang.NetworkPolicies;
25 import org.onap.aai.domain.yang.NetworkPolicy;
26 import org.onap.aai.domain.yang.RouteTableReference;
27 import org.onap.aai.domain.yang.VpnBinding;
28 import org.onap.so.bpmn.common.InjectionHelper;
29 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
30 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
31 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
32 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
33 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
34 import org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet;
35 import org.onap.so.client.aai.AAIObjectType;
36 import org.onap.so.client.aai.entities.AAIEdgeLabel;
37 import org.onap.so.client.aai.entities.AAIResultWrapper;
38 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
39 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
40 import org.onap.so.client.graphinventory.entities.uri.Depth;
41 import org.onap.so.client.aai.mapper.AAIObjectMapper;
42 import org.onap.so.db.catalog.beans.OrchestrationStatus;
43 import org.springframework.beans.factory.annotation.Autowired;
44 import org.springframework.stereotype.Component;
45
46 @Component
47 public class AAINetworkResources {
48
49     @Autowired
50     private InjectionHelper injectionHelper;
51
52     @Autowired
53     private AAIObjectMapper aaiObjectMapper;
54
55     public void updateNetwork(L3Network network) {
56         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, network.getNetworkId());
57         org.onap.aai.domain.yang.L3Network aaiL3Network = aaiObjectMapper.mapNetwork(network);
58         injectionHelper.getAaiClient().update(networkURI, aaiL3Network);
59     }
60
61     public void updateSubnet(L3Network network, Subnet subnet) {
62         AAIResourceUri subnetURI =
63                 AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, network.getNetworkId(), subnet.getSubnetId());
64         org.onap.aai.domain.yang.Subnet aaiSubnet = aaiObjectMapper.mapSubnet(subnet);
65         injectionHelper.getAaiClient().update(subnetURI, aaiSubnet);
66     }
67
68     public void createNetworkConnectToServiceInstance(L3Network network, ServiceInstance serviceInstance) {
69         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, network.getNetworkId());
70         network.setOrchestrationStatus(OrchestrationStatus.INVENTORIED);
71         AAIResourceUri serviceInstanceURI =
72                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstance.getServiceInstanceId());
73         org.onap.aai.domain.yang.L3Network aaiL3Network = aaiObjectMapper.mapNetwork(network);
74         injectionHelper.getAaiClient().createIfNotExists(networkURI, Optional.of(aaiL3Network)).connect(networkURI,
75                 serviceInstanceURI);
76     }
77
78     public void deleteNetwork(L3Network network) {
79         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, network.getNetworkId());
80         injectionHelper.getAaiClient().delete(networkURI);
81     }
82
83     public Optional<VpnBinding> getVpnBinding(AAIResourceUri netBindingUri) {
84         return injectionHelper.getAaiClient().get(netBindingUri.depth(Depth.TWO)).asBean(VpnBinding.class);
85     }
86
87     public Optional<NetworkPolicy> getNetworkPolicy(AAIResourceUri netPolicyUri) {
88         return injectionHelper.getAaiClient().get(netPolicyUri).asBean(NetworkPolicy.class);
89     }
90
91     public Optional<NetworkPolicies> getNetworkPolicies(AAIResourceUri netPoliciesUri) {
92         return injectionHelper.getAaiClient().get(netPoliciesUri).asBean(NetworkPolicies.class);
93     }
94
95     public Optional<org.onap.aai.domain.yang.Subnet> getSubnet(AAIResourceUri subnetUri) {
96         return injectionHelper.getAaiClient().get(subnetUri).asBean(org.onap.aai.domain.yang.Subnet.class);
97     }
98
99     public Optional<RouteTableReference> getRouteTable(AAIResourceUri rTableUri) {
100         return injectionHelper.getAaiClient().get(rTableUri).asBean(RouteTableReference.class);
101     }
102
103     public Optional<org.onap.aai.domain.yang.L3Network> queryNetworkById(L3Network l3network) {
104         AAIResourceUri uri =
105                 AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId()).depth(Depth.ALL);
106         AAIResultWrapper aaiWrapper = injectionHelper.getAaiClient().get(uri);
107         return aaiWrapper.asBean(org.onap.aai.domain.yang.L3Network.class);
108     }
109
110     public AAIResultWrapper queryNetworkWrapperById(L3Network l3network) {
111         AAIResourceUri uri =
112                 AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId()).depth(Depth.ALL);
113         return injectionHelper.getAaiClient().get(uri);
114     }
115
116     public void createNetworkInstanceGroup(InstanceGroup instanceGroup) {
117         AAIResourceUri instanceGroupURI =
118                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroup.getId());
119         org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = aaiObjectMapper.mapInstanceGroup(instanceGroup);
120         injectionHelper.getAaiClient().create(instanceGroupURI, aaiInstanceGroup);
121     }
122
123     public void createNetworkCollection(Collection networkCollection) {
124         AAIResourceUri networkCollectionURI =
125                 AAIUriFactory.createResourceUri(AAIObjectType.COLLECTION, networkCollection.getId());
126         networkCollection.setOrchestrationStatus(OrchestrationStatus.INVENTORIED);
127         org.onap.aai.domain.yang.Collection aaiCollection = aaiObjectMapper.mapCollection(networkCollection);
128         injectionHelper.getAaiClient().create(networkCollectionURI, aaiCollection);
129     }
130
131     public void connectNetworkToTenant(L3Network l3network, CloudRegion cloudRegion) {
132         AAIResourceUri tenantURI = AAIUriFactory.createResourceUri(AAIObjectType.TENANT, cloudRegion.getCloudOwner(),
133                 cloudRegion.getLcpCloudRegionId(), cloudRegion.getTenantId());
134         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId());
135         injectionHelper.getAaiClient().connect(tenantURI, networkURI);
136     }
137
138     public void connectNetworkToCloudRegion(L3Network l3network, CloudRegion cloudRegion) {
139         AAIResourceUri cloudRegionURI = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
140                 cloudRegion.getCloudOwner(), cloudRegion.getLcpCloudRegionId());
141         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId());
142         injectionHelper.getAaiClient().connect(networkURI, cloudRegionURI);
143     }
144
145     public void connectNetworkToNetworkCollectionInstanceGroup(L3Network l3network, InstanceGroup instanceGroup) {
146         AAIResourceUri netwrokCollectionInstanceGroupURI =
147                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroup.getId());
148         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId());
149         injectionHelper.getAaiClient().connect(netwrokCollectionInstanceGroupURI, networkURI);
150     }
151
152     public void connectNetworkToNetworkCollectionServiceInstance(L3Network l3network,
153             ServiceInstance networkCollectionServiceInstance) {
154         AAIResourceUri networkCollectionServiceInstanceUri = AAIUriFactory.createResourceUri(
155                 AAIObjectType.SERVICE_INSTANCE, networkCollectionServiceInstance.getServiceInstanceId());
156         AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, l3network.getNetworkId());
157         injectionHelper.getAaiClient().connect(networkCollectionServiceInstanceUri, networkURI);
158     }
159
160     public void connectNetworkCollectionInstanceGroupToNetworkCollection(InstanceGroup instanceGroup,
161             Collection networkCollection) {
162         AAIResourceUri networkCollectionUri =
163                 AAIUriFactory.createResourceUri(AAIObjectType.COLLECTION, networkCollection.getId());
164         AAIResourceUri netwrokCollectionInstanceGroupURI =
165                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroup.getId());
166         injectionHelper.getAaiClient().connect(networkCollectionUri, netwrokCollectionInstanceGroupURI);
167     }
168
169     public void connectInstanceGroupToCloudRegion(InstanceGroup instanceGroup, CloudRegion cloudRegion) {
170         AAIResourceUri cloudRegionURI = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
171                 cloudRegion.getCloudOwner(), cloudRegion.getLcpCloudRegionId());
172         AAIResourceUri instanceGroupURI =
173                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroup.getId());
174         injectionHelper.getAaiClient().connect(instanceGroupURI, cloudRegionURI, AAIEdgeLabel.USES);
175     }
176
177     public void connectNetworkCollectionToServiceInstance(Collection networkCollection,
178             ServiceInstance networkCollectionServiceInstance) {
179         AAIResourceUri networkCollectionUri =
180                 AAIUriFactory.createResourceUri(AAIObjectType.COLLECTION, networkCollection.getId());
181         AAIResourceUri networkCollectionServiceInstanceUri = AAIUriFactory.createResourceUri(
182                 AAIObjectType.SERVICE_INSTANCE, networkCollectionServiceInstance.getServiceInstanceId());
183         injectionHelper.getAaiClient().connect(networkCollectionUri, networkCollectionServiceInstanceUri);
184     }
185
186     public void deleteCollection(Collection collection) {
187         AAIResourceUri collectionURI = AAIUriFactory.createResourceUri(AAIObjectType.COLLECTION, collection.getId());
188         injectionHelper.getAaiClient().delete(collectionURI);
189     }
190
191     public void deleteNetworkInstanceGroup(InstanceGroup instanceGroup) {
192         AAIResourceUri instanceGroupURI =
193                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroup.getId());
194         injectionHelper.getAaiClient().delete(instanceGroupURI);
195     }
196
197     public void createNetworkPolicy(org.onap.so.bpmn.servicedecomposition.bbobjects.NetworkPolicy networkPolicy) {
198         NetworkPolicy aaiNetworkPolicy = aaiObjectMapper.mapNetworkPolicy(networkPolicy);
199         String networkPolicyId = networkPolicy.getNetworkPolicyId();
200         AAIResourceUri netUri = AAIUriFactory.createResourceUri(AAIObjectType.NETWORK_POLICY, networkPolicyId);
201         injectionHelper.getAaiClient().create(netUri, aaiNetworkPolicy);
202     }
203
204     public void deleteNetworkPolicy(String networkPolicyId) {
205         AAIResourceUri networkPolicyURI =
206                 AAIUriFactory.createResourceUri(AAIObjectType.NETWORK_POLICY, networkPolicyId);
207         injectionHelper.getAaiClient().delete(networkPolicyURI);
208     }
209 }