e8a5723e19892ada8b284f0014b7763f83455b6e
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / client / adapter / network / NetworkAdapterClientImpl.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.adapter.network;
22
23 import javax.ws.rs.InternalServerErrorException;
24 import javax.ws.rs.core.MediaType;
25 import javax.ws.rs.core.Response;
26 import javax.ws.rs.core.UriBuilder;
27
28 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
29 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
30 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
31 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
32 import org.onap.so.adapters.nwrest.QueryNetworkResponse;
33 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
34 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
35 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
36 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
37 import org.onap.so.client.adapter.rest.AdapterRestClient;
38 import org.springframework.stereotype.Component;
39
40 @Component
41 public class NetworkAdapterClientImpl implements NetworkAdapterClient {
42
43         private final NetworkAdapterRestProperties props;
44
45         public NetworkAdapterClientImpl() {
46                 this.props = new NetworkAdapterRestProperties();
47         }
48
49         @Override
50         public CreateNetworkResponse createNetwork(CreateNetworkRequest req) throws NetworkAdapterClientException{
51                 try {
52                         return new AdapterRestClient(this.props, this.getUri("").build()).post(req,
53                                         CreateNetworkResponse.class);
54                 } catch (InternalServerErrorException e) {
55                         throw new NetworkAdapterClientException(e.getMessage());
56                 }
57         }
58         
59         @Override
60         public Response createNetworkAsync(CreateNetworkRequest req) throws NetworkAdapterClientException{
61                 try {
62                         return new AdapterRestClient(this.props, this.getUri("").build()).post(req);
63                 } catch (InternalServerErrorException e) {
64                         throw new NetworkAdapterClientException(e.getMessage());
65                 }
66         }
67
68         @Override
69         public DeleteNetworkResponse deleteNetwork(String aaiNetworkId, DeleteNetworkRequest req) throws NetworkAdapterClientException {
70                 try {
71                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req,
72                                         DeleteNetworkResponse.class);
73                 } catch (InternalServerErrorException e) {
74                         throw new NetworkAdapterClientException(e.getMessage());
75                 }
76         }
77         
78         @Override
79         public Response deleteNetworkAsync(String aaiNetworkId, DeleteNetworkRequest req) throws NetworkAdapterClientException {
80                 try {
81                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req);
82                 } catch (InternalServerErrorException e) {
83                         throw new NetworkAdapterClientException(e.getMessage());
84                 }
85         }
86
87         @Override
88         public RollbackNetworkResponse rollbackNetwork(String aaiNetworkId, RollbackNetworkRequest req) throws NetworkAdapterClientException {
89                 try {
90                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req,
91                                         RollbackNetworkResponse.class);
92                 } catch (InternalServerErrorException e) {
93                         throw new NetworkAdapterClientException(e.getMessage());
94                 }
95         }
96         
97         @Override
98         public Response rollbackNetworkAsync(String aaiNetworkId, RollbackNetworkRequest req) throws NetworkAdapterClientException {
99                 try {
100                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req);
101                 } catch (InternalServerErrorException e) {
102                         throw new NetworkAdapterClientException(e.getMessage());
103                 }
104         }
105
106         @Override
107         public QueryNetworkResponse queryNetwork(String aaiNetworkId, String cloudSiteId, String tenantId,
108                         String networkStackId, boolean skipAAI, String requestId, String serviceInstanceId) throws NetworkAdapterClientException {
109                 UriBuilder builder = this.getUri("/" + aaiNetworkId);
110                 if (cloudSiteId != null) {
111                         builder.queryParam("cloudSiteId", cloudSiteId);
112                 }
113                 if (tenantId != null) {
114                         builder.queryParam("tenantId", tenantId);
115                 }
116                 if (networkStackId != null) {
117                         builder.queryParam("networkStackId", networkStackId);
118                 }
119
120                 builder.queryParam("skipAAI", skipAAI);
121
122                 if (requestId != null) {
123                         builder.queryParam("msoRequest.requestId", requestId);
124                 }
125                 if (serviceInstanceId != null) {
126                         builder.queryParam("msoRequest.serviceInstanceId", serviceInstanceId);
127                 }
128                 try {
129                         return new AdapterRestClient(this.props, builder.build(), MediaType.APPLICATION_XML, MediaType.APPLICATION_XML)
130                                 .get(QueryNetworkResponse.class).get();
131                 } catch (InternalServerErrorException e) {
132                         throw new NetworkAdapterClientException(e.getMessage());
133                 }
134         }
135
136         @Override
137         public UpdateNetworkResponse updateNetwork(String aaiNetworkId, UpdateNetworkRequest req) throws NetworkAdapterClientException {
138                 try {
139                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).put(req,
140                                         UpdateNetworkResponse.class);
141                 } catch (InternalServerErrorException e) {
142                         throw new NetworkAdapterClientException(e.getMessage());
143                 }
144         }
145         
146         @Override
147         public Response updateNetworkAsync(String aaiNetworkId, UpdateNetworkRequest req) throws NetworkAdapterClientException{
148                 try {
149                         return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).put(req);
150                 } catch (InternalServerErrorException e) {
151                         throw new NetworkAdapterClientException(e.getMessage());
152                 }
153         }
154
155         protected UriBuilder getUri(String path) {
156                 return UriBuilder.fromPath(path);
157         }
158
159 }