2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
7 * ================================================================================
8 * Modifications Copyright (c) 2019 Samsung
9 * ================================================================================
10 * Modifications Copyright (c) 2023 Nordix Foundation.
11 * ================================================================================
12 * Licensed under the Apache License, Version 2.0 (the "License");
13 * you may not use this file except in compliance with the License.
14 * You may obtain a copy of the License at
16 * http://www.apache.org/licenses/LICENSE-2.0
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the License is distributed on an "AS IS" BASIS,
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 * See the License for the specific language governing permissions and
22 * limitations under the License.
23 * ============LICENSE_END=========================================================
26 package org.onap.so.apihandlerinfra;
28 import java.io.IOException;
29 import java.util.HashMap;
30 import java.util.Optional;
31 import java.util.stream.Collectors;
32 import javax.transaction.Transactional;
33 import javax.ws.rs.Consumes;
34 import javax.ws.rs.DELETE;
35 import javax.ws.rs.POST;
36 import javax.ws.rs.PUT;
37 import javax.ws.rs.Path;
38 import javax.ws.rs.PathParam;
39 import javax.ws.rs.Produces;
40 import javax.ws.rs.container.ContainerRequestContext;
41 import javax.ws.rs.core.Context;
42 import javax.ws.rs.core.MediaType;
43 import javax.ws.rs.core.Response;
44 import org.apache.commons.lang.StringUtils;
45 import org.apache.http.HttpStatus;
46 import org.onap.logging.filter.base.ErrorCode;
47 import org.onap.so.apihandler.common.CommonConstants;
48 import org.onap.so.apihandler.common.ErrorNumbers;
49 import org.onap.so.apihandler.common.RequestClientParameter;
50 import org.onap.so.apihandlerinfra.exceptions.ApiException;
51 import org.onap.so.apihandlerinfra.exceptions.RequestDbFailureException;
52 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
53 import org.onap.so.apihandlerinfra.infra.rest.BpmnRequestBuilder;
54 import org.onap.so.apihandlerinfra.infra.rest.exception.CloudConfigurationNotFoundException;
55 import org.onap.so.apihandlerinfra.infra.rest.handler.AbstractRestHandler;
56 import org.onap.so.apihandlerinfra.infra.rest.validators.RequestValidatorListenerRunner;
57 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
58 import org.onap.so.constants.Status;
59 import org.onap.so.db.catalog.client.CatalogDbClient;
60 import org.onap.so.db.request.beans.InfraActiveRequests;
61 import org.onap.so.db.request.client.RequestsDbClient;
62 import org.onap.so.exceptions.ValidationException;
63 import org.onap.so.logger.MessageEnum;
64 import org.onap.so.serviceinstancebeans.CloudConfiguration;
65 import org.onap.so.serviceinstancebeans.ModelInfo;
66 import org.onap.so.serviceinstancebeans.ModelType;
67 import org.onap.so.serviceinstancebeans.RequestDetails;
68 import org.onap.so.serviceinstancebeans.RequestReferences;
69 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
70 import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
71 import org.slf4j.Logger;
72 import org.slf4j.LoggerFactory;
73 import org.springframework.beans.factory.annotation.Autowired;
74 import org.springframework.core.env.Environment;
75 import org.springframework.stereotype.Component;
76 import org.springframework.web.client.RestTemplate;
77 import io.swagger.v3.oas.annotations.OpenAPIDefinition;
78 import io.swagger.v3.oas.annotations.Operation;
79 import io.swagger.v3.oas.annotations.info.Info;
80 import io.swagger.v3.oas.annotations.media.ArraySchema;
81 import io.swagger.v3.oas.annotations.media.Content;
82 import io.swagger.v3.oas.annotations.media.Schema;
83 import io.swagger.v3.oas.annotations.responses.ApiResponse;
86 @Path("/onap/so/infra/serviceInstantiation")
87 @OpenAPIDefinition(info = @Info(title = "/onap/so/infra/serviceInstantiation",
88 description = "Infrastructure API Requests for Service Instances"))
89 public class ServiceInstances extends AbstractRestHandler {
91 private static Logger logger = LoggerFactory.getLogger(MsoRequest.class);
92 private static String uriPrefix = "/serviceInstantiation/";
93 private static final String SAVE_TO_DB = "save instance to db";
96 private Environment env;
99 private RestTemplate restTemplate;
102 private CatalogDbClient catalogDbClient;
105 private RequestsDbClient infraActiveRequestsClient;
108 private MsoRequest msoRequest;
111 private RequestHandlerUtils requestHandlerUtils;
114 private RequestValidatorListenerRunner requestValidatorListenerRunner;
117 private BpmnRequestBuilder bpmnRequestBuilder;
120 @Path("/{version:[vV][5-7]}/serviceInstances")
121 @Consumes(MediaType.APPLICATION_JSON)
122 @Produces(MediaType.APPLICATION_JSON)
123 @Operation(description = "Create a Service Instance on a version provided", responses = @ApiResponse(
124 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
126 public Response createServiceInstance(String request, @PathParam("version") String version,
127 @Context ContainerRequestContext requestContext) throws ApiException {
128 String requestId = requestHandlerUtils.getRequestId(requestContext);
129 return serviceInstances(request, Action.createInstance, null, version, requestId,
130 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
134 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/activate")
135 @Consumes(MediaType.APPLICATION_JSON)
136 @Produces(MediaType.APPLICATION_JSON)
137 @Operation(description = "Activate provided Service Instance", responses = @ApiResponse(
138 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
140 public Response activateServiceInstance(String request, @PathParam("version") String version,
141 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
142 throws ApiException {
143 String requestId = requestHandlerUtils.getRequestId(requestContext);
144 HashMap<String, String> instanceIdMap = new HashMap<>();
145 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
146 return serviceInstances(request, Action.activateInstance, instanceIdMap, version, requestId,
147 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
151 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/deactivate")
152 @Consumes(MediaType.APPLICATION_JSON)
153 @Produces(MediaType.APPLICATION_JSON)
154 @Operation(description = "Deactivate provided Service Instance", responses = @ApiResponse(
155 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
157 public Response deactivateServiceInstance(String request, @PathParam("version") String version,
158 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
159 throws ApiException {
160 String requestId = requestHandlerUtils.getRequestId(requestContext);
161 HashMap<String, String> instanceIdMap = new HashMap<>();
162 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
163 return serviceInstances(request, Action.deactivateInstance, instanceIdMap, version, requestId,
164 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
168 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}")
169 @Consumes(MediaType.APPLICATION_JSON)
170 @Produces(MediaType.APPLICATION_JSON)
171 @Operation(description = "Delete provided Service Instance", responses = @ApiResponse(
172 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
174 public Response deleteServiceInstance(String request, @PathParam("version") String version,
175 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
176 throws ApiException {
177 String requestId = requestHandlerUtils.getRequestId(requestContext);
178 HashMap<String, String> instanceIdMap = new HashMap<>();
179 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
180 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
181 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
185 @Path("/{version:[vV][7]}/serviceInstances/assign")
186 @Consumes(MediaType.APPLICATION_JSON)
187 @Produces(MediaType.APPLICATION_JSON)
188 @Operation(description = "Assign Service Instance", responses = @ApiResponse(
189 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
191 public Response assignServiceInstance(String request, @PathParam("version") String version,
192 @Context ContainerRequestContext requestContext) throws ApiException {
193 String requestId = requestHandlerUtils.getRequestId(requestContext);
194 return serviceInstances(request, Action.assignInstance, null, version, requestId,
195 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
199 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/unassign")
200 @Consumes(MediaType.APPLICATION_JSON)
201 @Produces(MediaType.APPLICATION_JSON)
202 @Operation(description = "Unassign Service Instance", responses = @ApiResponse(
203 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
205 public Response unassignServiceInstance(String request, @PathParam("version") String version,
206 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
207 throws ApiException {
208 String requestId = requestHandlerUtils.getRequestId(requestContext);
209 HashMap<String, String> instanceIdMap = new HashMap<>();
210 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
211 return serviceInstances(request, Action.unassignInstance, instanceIdMap, version, requestId,
212 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
216 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations")
217 @Consumes(MediaType.APPLICATION_JSON)
218 @Produces(MediaType.APPLICATION_JSON)
219 @Operation(description = "Create Port Mirroring Configuration", responses = @ApiResponse(
220 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
222 public Response createPortConfiguration(String request, @PathParam("version") String version,
223 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
224 throws ApiException {
225 String requestId = requestHandlerUtils.getRequestId(requestContext);
226 HashMap<String, String> instanceIdMap = new HashMap<>();
227 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
228 return configurationRecipeLookup(request, Action.createInstance, instanceIdMap, version, requestId,
229 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
233 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}")
234 @Consumes(MediaType.APPLICATION_JSON)
235 @Produces(MediaType.APPLICATION_JSON)
236 @Operation(description = "Delete provided Port", responses = @ApiResponse(
237 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
239 public Response deletePortConfiguration(String request, @PathParam("version") String version,
240 @PathParam("serviceInstanceId") String serviceInstanceId,
241 @PathParam("configurationInstanceId") String configurationInstanceId,
242 @Context ContainerRequestContext requestContext) throws ApiException {
243 String requestId = requestHandlerUtils.getRequestId(requestContext);
244 HashMap<String, String> instanceIdMap = new HashMap<>();
245 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
246 instanceIdMap.put("configurationInstanceId", configurationInstanceId);
247 return configurationRecipeLookup(request, Action.deleteInstance, instanceIdMap, version, requestId,
248 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
252 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/enablePort")
253 @Consumes(MediaType.APPLICATION_JSON)
254 @Produces(MediaType.APPLICATION_JSON)
255 @Operation(description = "Enable Port Mirroring", responses = @ApiResponse(
256 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
258 public Response enablePort(String request, @PathParam("version") String version,
259 @PathParam("serviceInstanceId") String serviceInstanceId,
260 @PathParam("configurationInstanceId") String configurationInstanceId,
261 @Context ContainerRequestContext requestContext) throws ApiException {
262 String requestId = requestHandlerUtils.getRequestId(requestContext);
263 HashMap<String, String> instanceIdMap = new HashMap<>();
264 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
265 instanceIdMap.put("configurationInstanceId", configurationInstanceId);
266 return configurationRecipeLookup(request, Action.enablePort, instanceIdMap, version, requestId,
267 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
271 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/disablePort")
272 @Consumes(MediaType.APPLICATION_JSON)
273 @Produces(MediaType.APPLICATION_JSON)
274 @Operation(description = "Disable Port Mirroring", responses = @ApiResponse(
275 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
277 public Response disablePort(String request, @PathParam("version") String version,
278 @PathParam("serviceInstanceId") String serviceInstanceId,
279 @PathParam("configurationInstanceId") String configurationInstanceId,
280 @Context ContainerRequestContext requestContext) throws ApiException {
281 String requestId = requestHandlerUtils.getRequestId(requestContext);
282 HashMap<String, String> instanceIdMap = new HashMap<>();
283 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
284 instanceIdMap.put("configurationInstanceId", configurationInstanceId);
285 return configurationRecipeLookup(request, Action.disablePort, instanceIdMap, version, requestId,
286 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
290 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/activate")
291 @Consumes(MediaType.APPLICATION_JSON)
292 @Produces(MediaType.APPLICATION_JSON)
293 @Operation(description = "Activate Port Mirroring", responses = @ApiResponse(
294 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
296 public Response activatePort(String request, @PathParam("version") String version,
297 @PathParam("serviceInstanceId") String serviceInstanceId,
298 @PathParam("configurationInstanceId") String configurationInstanceId,
299 @Context ContainerRequestContext requestContext) throws ApiException {
300 String requestId = requestHandlerUtils.getRequestId(requestContext);
301 HashMap<String, String> instanceIdMap = new HashMap<>();
302 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
303 instanceIdMap.put("configurationInstanceId", configurationInstanceId);
304 return configurationRecipeLookup(request, Action.activateInstance, instanceIdMap, version, requestId,
305 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
309 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/deactivate")
310 @Consumes(MediaType.APPLICATION_JSON)
311 @Produces(MediaType.APPLICATION_JSON)
312 @Operation(description = "Deactivate Port Mirroring", responses = @ApiResponse(
313 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
315 public Response deactivatePort(String request, @PathParam("version") String version,
316 @PathParam("serviceInstanceId") String serviceInstanceId,
317 @PathParam("configurationInstanceId") String configurationInstanceId,
318 @Context ContainerRequestContext requestContext) throws ApiException {
319 String requestId = requestHandlerUtils.getRequestId(requestContext);
320 HashMap<String, String> instanceIdMap = new HashMap<>();
321 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
322 instanceIdMap.put("configurationInstanceId", configurationInstanceId);
323 return configurationRecipeLookup(request, Action.deactivateInstance, instanceIdMap, version, requestId,
324 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
328 @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/addRelationships")
329 @Consumes(MediaType.APPLICATION_JSON)
330 @Produces(MediaType.APPLICATION_JSON)
331 @Operation(description = "Add Relationships to a Service Instance", responses = @ApiResponse(
332 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
334 public Response addRelationships(String request, @PathParam("version") String version,
335 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
336 throws ApiException {
337 String requestId = requestHandlerUtils.getRequestId(requestContext);
338 HashMap<String, String> instanceIdMap = new HashMap<>();
339 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
340 return configurationRecipeLookup(request, Action.addRelationships, instanceIdMap, version, requestId,
341 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
345 @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/removeRelationships")
346 @Consumes(MediaType.APPLICATION_JSON)
347 @Produces(MediaType.APPLICATION_JSON)
348 @Operation(description = "Remove Relationships from Service Instance", responses = @ApiResponse(
349 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
351 public Response removeRelationships(String request, @PathParam("version") String version,
352 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
353 throws ApiException {
354 String requestId = requestHandlerUtils.getRequestId(requestContext);
355 HashMap<String, String> instanceIdMap = new HashMap<>();
356 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
357 return configurationRecipeLookup(request, Action.removeRelationships, instanceIdMap, version, requestId,
358 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
362 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs")
363 @Consumes(MediaType.APPLICATION_JSON)
364 @Produces(MediaType.APPLICATION_JSON)
365 @Operation(description = "Create VNF on a specified version and serviceInstance", responses = @ApiResponse(
366 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
368 public Response createVnfInstance(String request, @PathParam("version") String version,
369 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
370 throws ApiException {
371 String requestId = requestHandlerUtils.getRequestId(requestContext);
372 HashMap<String, String> instanceIdMap = new HashMap<>();
373 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
375 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
376 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
377 } catch (Exception e) {
378 logger.error("Error in vnf", e);
384 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/cnfs")
385 @Consumes(MediaType.APPLICATION_JSON)
386 @Produces(MediaType.APPLICATION_JSON)
387 @Operation(description = "Create CNF on a specified version and serviceInstance", responses = @ApiResponse(
388 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
390 public Response createCnfInstance(String request, @PathParam("version") String version,
391 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
392 throws ApiException {
393 String requestId = requestHandlerUtils.getRequestId(requestContext);
394 HashMap<String, String> instanceIdMap = new HashMap<>();
395 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
397 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
398 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
399 } catch (Exception e) {
400 logger.error("Error in cnf", e);
406 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/cnfs/{cnfInstanceId}")
407 @Consumes(MediaType.APPLICATION_JSON)
408 @Produces(MediaType.APPLICATION_JSON)
409 @Operation(description = "Delete provided for CNF instance", responses = @ApiResponse(
410 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
412 public Response deleteCnfInstance(String request, @PathParam("version") String version,
413 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("cnfInstanceId") String cnfInstanceId,
414 @Context ContainerRequestContext requestContext) throws ApiException {
415 logger.debug("Inside API Handler to perform delete CNF Instance");
416 String requestId = requestHandlerUtils.getRequestId(requestContext);
417 HashMap<String, String> instanceIdMap = new HashMap<>();
418 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
419 instanceIdMap.put("vnfInstanceId", cnfInstanceId);
420 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
421 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
425 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/upgrade")
426 @Consumes(MediaType.APPLICATION_JSON)
427 @Produces(MediaType.APPLICATION_JSON)
428 @Operation(description = "Upgrade a Service Instance to newer model", responses = @ApiResponse(
429 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
431 public Response upgradeServiceInstance(String request, @PathParam("version") String version,
432 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
433 throws ApiException {
434 String requestId = requestHandlerUtils.getRequestId(requestContext);
435 HashMap<String, String> instanceIdMap = new HashMap<>();
436 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
438 return serviceInstances(request, Action.upgradeInstance, instanceIdMap, version, requestId,
439 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
443 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/replace")
444 @Consumes(MediaType.APPLICATION_JSON)
445 @Produces(MediaType.APPLICATION_JSON)
446 @Operation(description = "Replace provided VNF instance", responses = @ApiResponse(
447 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
449 public Response replaceVnfInstance(String request, @PathParam("version") String version,
450 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
451 @Context ContainerRequestContext requestContext) throws ApiException {
452 String requestId = requestHandlerUtils.getRequestId(requestContext);
453 HashMap<String, String> instanceIdMap = new HashMap<>();
454 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
455 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
456 return serviceInstances(request, Action.replaceInstance, instanceIdMap, version, requestId,
457 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
461 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/healthcheck")
462 @Consumes(MediaType.APPLICATION_JSON)
463 @Produces(MediaType.APPLICATION_JSON)
464 @Operation(description = "HealthCheck for provided VNF instance", responses = @ApiResponse(
465 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
467 public Response cnfHealthCheck(String request, @PathParam("version") String version,
468 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
469 @Context ContainerRequestContext requestContext) throws ApiException {
470 String requestId = requestHandlerUtils.getRequestId(requestContext);
471 HashMap<String, String> instanceIdMap = new HashMap<>();
472 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
473 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
474 return serviceInstances(request, Action.healthCheck, instanceIdMap, version, requestId,
475 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
479 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/upgradeCnf")
480 @Consumes(MediaType.APPLICATION_JSON)
481 @Produces(MediaType.APPLICATION_JSON)
482 @Operation(description = "Upgrade CNF instance", responses = @ApiResponse(
483 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
485 public Response cnfUpgrade(String request, @PathParam("version") String version,
486 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
487 @Context ContainerRequestContext requestContext) throws ApiException {
488 String requestId = requestHandlerUtils.getRequestId(requestContext);
489 HashMap<String, String> instanceIdMap = new HashMap<>();
490 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
491 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
492 return serviceInstances(request, Action.upgradeCnf, instanceIdMap, version, requestId,
493 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
497 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}")
498 @Consumes(MediaType.APPLICATION_JSON)
499 @Produces(MediaType.APPLICATION_JSON)
500 @Operation(description = "Update VNF on a specified version, serviceInstance and vnfInstance",
501 responses = @ApiResponse(
502 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
504 public Response updateVnfInstance(String request, @PathParam("version") String version,
505 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
506 @Context ContainerRequestContext requestContext) throws ApiException {
507 String requestId = requestHandlerUtils.getRequestId(requestContext);
508 HashMap<String, String> instanceIdMap = new HashMap<>();
509 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
510 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
511 return serviceInstances(request, Action.updateInstance, instanceIdMap, version, requestId,
512 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
516 @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/applyUpdatedConfig")
517 @Consumes(MediaType.APPLICATION_JSON)
518 @Produces(MediaType.APPLICATION_JSON)
519 @Operation(description = "Apply updated configuration", responses = @ApiResponse(
520 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
521 public Response applyUpdatedConfig(String request, @PathParam("version") String version,
522 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
523 @Context ContainerRequestContext requestContext) throws ApiException {
524 String requestId = requestHandlerUtils.getRequestId(requestContext);
525 HashMap<String, String> instanceIdMap = new HashMap<>();
526 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
527 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
528 return serviceInstances(request, Action.applyUpdatedConfig, instanceIdMap, version, requestId,
529 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
533 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/recreate")
534 @Consumes(MediaType.APPLICATION_JSON)
535 @Produces(MediaType.APPLICATION_JSON)
536 @Operation(description = "Recreate VNF Instance", responses = @ApiResponse(
537 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
538 public Response recreateVnfInstance(String request, @PathParam("version") String version,
539 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
540 @Context ContainerRequestContext requestContext) throws ApiException {
541 String requestId = requestHandlerUtils.getRequestId(requestContext);
542 HashMap<String, String> instanceIdMap = new HashMap<>();
543 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
544 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
545 return serviceInstances(request, Action.recreateInstance, instanceIdMap, version, requestId,
546 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
550 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}")
551 @Consumes(MediaType.APPLICATION_JSON)
552 @Produces(MediaType.APPLICATION_JSON)
553 @Operation(description = "Delete provided VNF instance", responses = @ApiResponse(
554 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
556 public Response deleteVnfInstance(String request, @PathParam("version") String version,
557 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
558 @Context ContainerRequestContext requestContext) throws ApiException {
559 String requestId = requestHandlerUtils.getRequestId(requestContext);
560 HashMap<String, String> instanceIdMap = new HashMap<>();
561 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
562 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
563 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
564 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
568 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules")
569 @Consumes(MediaType.APPLICATION_JSON)
570 @Produces(MediaType.APPLICATION_JSON)
571 @Operation(description = "Create VfModule on a specified version, serviceInstance and vnfInstance",
572 responses = @ApiResponse(
573 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
575 public Response createVfModuleInstance(String request, @PathParam("version") String version,
576 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
577 @Context ContainerRequestContext requestContext) throws ApiException {
578 String requestId = requestHandlerUtils.getRequestId(requestContext);
579 HashMap<String, String> instanceIdMap = new HashMap<>();
580 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
581 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
582 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
583 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
587 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/replace")
588 @Consumes(MediaType.APPLICATION_JSON)
589 @Produces(MediaType.APPLICATION_JSON)
590 @Operation(description = "Create VfModule on a specified version, serviceInstance and vnfInstance",
591 responses = @ApiResponse(
592 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
594 public Response replaceVfModuleInstance(String request, @PathParam("version") String version,
595 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
596 @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext)
597 throws ApiException {
598 String requestId = requestHandlerUtils.getRequestId(requestContext);
599 HashMap<String, String> instanceIdMap = new HashMap<>();
600 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
601 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
602 instanceIdMap.put("vfModuleInstanceId", vfmoduleInstanceId);
603 return serviceInstances(request, Action.replaceInstance, instanceIdMap, version, requestId,
604 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
608 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
609 @Consumes(MediaType.APPLICATION_JSON)
610 @Produces(MediaType.APPLICATION_JSON)
611 @Operation(description = "Update VfModule on a specified version, serviceInstance, vnfInstance and vfModule",
612 responses = @ApiResponse(
613 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
615 public Response updateVfModuleInstance(String request, @PathParam("version") String version,
616 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
617 @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext)
618 throws ApiException {
619 String requestId = requestHandlerUtils.getRequestId(requestContext);
620 HashMap<String, String> instanceIdMap = new HashMap<>();
621 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
622 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
623 instanceIdMap.put("vfModuleInstanceId", vfmoduleInstanceId);
624 return serviceInstances(request, Action.updateInstance, instanceIdMap, version, requestId,
625 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
629 @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/inPlaceSoftwareUpdate")
630 @Consumes(MediaType.APPLICATION_JSON)
631 @Produces(MediaType.APPLICATION_JSON)
632 @Operation(description = "Perform VNF software update", responses = @ApiResponse(
633 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
635 public Response inPlaceSoftwareUpdate(String request, @PathParam("version") String version,
636 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
637 @Context ContainerRequestContext requestContext) throws ApiException {
638 String requestId = requestHandlerUtils.getRequestId(requestContext);
639 HashMap<String, String> instanceIdMap = new HashMap<>();
640 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
641 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
642 return serviceInstances(request, Action.inPlaceSoftwareUpdate, instanceIdMap, version, requestId,
643 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
647 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
648 @Consumes(MediaType.APPLICATION_JSON)
649 @Produces(MediaType.APPLICATION_JSON)
650 @Operation(description = "Delete provided VfModule instance", responses = @ApiResponse(
651 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
653 public Response deleteVfModuleInstance(String request, @PathParam("version") String version,
654 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
655 @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext)
656 throws ApiException {
657 String requestId = requestHandlerUtils.getRequestId(requestContext);
658 HashMap<String, String> instanceIdMap = new HashMap<>();
659 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
660 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
661 instanceIdMap.put("vfModuleInstanceId", vfmoduleInstanceId);
662 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
663 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
667 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/deactivateAndCloudDelete")
668 @Consumes(MediaType.APPLICATION_JSON)
669 @Produces(MediaType.APPLICATION_JSON)
670 @Operation(description = "Deactivate and Cloud Delete VfModule instance", responses = @ApiResponse(
671 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
673 public Response deactivateAndCloudDeleteVfModuleInstance(String request, @PathParam("version") String version,
674 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
675 @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext)
676 throws ApiException {
677 String requestId = requestHandlerUtils.getRequestId(requestContext);
678 HashMap<String, String> instanceIdMap = new HashMap<>();
679 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
680 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
681 instanceIdMap.put("vfModuleInstanceId", vfmoduleInstanceId);
682 Response response = serviceInstances(request, Action.deactivateAndCloudDelete, instanceIdMap, version,
683 requestId, requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
688 @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/scaleOut")
689 @Consumes(MediaType.APPLICATION_JSON)
690 @Produces(MediaType.APPLICATION_JSON)
691 @Operation(description = "VF Auto Scale Out", responses = @ApiResponse(
692 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
694 public Response scaleOutVfModule(String request, @PathParam("version") String version,
695 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
696 @Context ContainerRequestContext requestContext) throws ApiException {
697 String requestId = requestHandlerUtils.getRequestId(requestContext);
698 HashMap<String, String> instanceIdMap = new HashMap<>();
699 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
700 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
701 return serviceInstances(request, Action.scaleOut, instanceIdMap, version, requestId,
702 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
706 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups")
707 @Consumes(MediaType.APPLICATION_JSON)
708 @Produces(MediaType.APPLICATION_JSON)
709 @Operation(description = "Create VolumeGroup on a specified version, serviceInstance, vnfInstance",
710 responses = @ApiResponse(
711 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
713 public Response createVolumeGroupInstance(String request, @PathParam("version") String version,
714 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
715 @Context ContainerRequestContext requestContext) throws ApiException {
716 String requestId = requestHandlerUtils.getRequestId(requestContext);
717 HashMap<String, String> instanceIdMap = new HashMap<>();
718 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
719 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
720 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
721 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
725 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
726 @Consumes(MediaType.APPLICATION_JSON)
727 @Produces(MediaType.APPLICATION_JSON)
728 @Operation(description = "Update VolumeGroup on a specified version, serviceInstance, vnfInstance and volumeGroup",
729 responses = @ApiResponse(
730 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
732 public Response updateVolumeGroupInstance(String request, @PathParam("version") String version,
733 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
734 @PathParam("volumeGroupInstanceId") String volumeGroupInstanceId,
735 @Context ContainerRequestContext requestContext) throws ApiException {
736 String requestId = requestHandlerUtils.getRequestId(requestContext);
737 HashMap<String, String> instanceIdMap = new HashMap<>();
738 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
739 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
740 instanceIdMap.put("volumeGroupInstanceId", volumeGroupInstanceId);
741 return serviceInstances(request, Action.updateInstance, instanceIdMap, version, requestId,
742 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
746 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
747 @Consumes(MediaType.APPLICATION_JSON)
748 @Produces(MediaType.APPLICATION_JSON)
749 @Operation(description = "Delete provided VolumeGroup instance", responses = @ApiResponse(
750 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
752 public Response deleteVolumeGroupInstance(String request, @PathParam("version") String version,
753 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
754 @PathParam("volumeGroupInstanceId") String volumeGroupInstanceId,
755 @Context ContainerRequestContext requestContext) throws ApiException {
756 String requestId = requestHandlerUtils.getRequestId(requestContext);
757 HashMap<String, String> instanceIdMap = new HashMap<>();
758 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
759 instanceIdMap.put("vnfInstanceId", vnfInstanceId);
760 instanceIdMap.put("volumeGroupInstanceId", volumeGroupInstanceId);
761 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
762 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
767 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/pnfs")
768 @Consumes(MediaType.APPLICATION_JSON)
769 @Produces(MediaType.APPLICATION_JSON)
770 @Operation(description = "Create VNF on a specified version and serviceInstance", responses = @ApiResponse(
771 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
773 public Response createPnfInstance(String request, @PathParam("version") String version,
774 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
775 throws ApiException {
776 String requestId = requestHandlerUtils.getRequestId(requestContext);
777 HashMap<String, String> instanceIdMap = new HashMap<>();
778 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
780 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
781 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
782 } catch (Exception e) {
783 logger.error("Error in pnf", e);
790 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/pnfs/{pnfInstanceId}")
791 @Consumes(MediaType.APPLICATION_JSON)
792 @Produces(MediaType.APPLICATION_JSON)
793 @Operation(description = "Create PNF on a specified version and serviceInstance", responses = @ApiResponse(
794 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
796 public Response deletePnfInstance(String request, @PathParam("version") String version,
797 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("pnfInstanceId") String pnfInstanceId,
798 @Context ContainerRequestContext requestContext) throws ApiException {
799 String requestId = requestHandlerUtils.getRequestId(requestContext);
800 HashMap<String, String> instanceIdMap = new HashMap<>();
801 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
802 instanceIdMap.put("pnfInstanceId", pnfInstanceId);
804 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
805 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
806 } catch (Exception e) {
807 logger.error("Error in pnf", e);
813 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/pnfs/{pnfInstanceId}")
814 @Consumes(MediaType.APPLICATION_JSON)
815 @Produces(MediaType.APPLICATION_JSON)
816 @Operation(description = "Create PNF on a specified version and serviceInstance", responses = @ApiResponse(
817 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
819 public Response updatePnfInstance(String request, @PathParam("version") String version,
820 @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("pnfInstanceId") String pnfInstanceId,
821 @Context ContainerRequestContext requestContext) throws ApiException {
822 String requestId = requestHandlerUtils.getRequestId(requestContext);
823 HashMap<String, String> instanceIdMap = new HashMap<>();
824 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
825 instanceIdMap.put("pnfInstanceId", pnfInstanceId);
827 return serviceInstances(request, Action.updateInstance, instanceIdMap, version, requestId,
828 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
829 } catch (Exception e) {
830 logger.error("Error in pnf", e);
836 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks")
837 @Consumes(MediaType.APPLICATION_JSON)
838 @Produces(MediaType.APPLICATION_JSON)
839 @Operation(description = "Create NetworkInstance on a specified version and serviceInstance ",
840 responses = @ApiResponse(
841 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
843 public Response createNetworkInstance(String request, @PathParam("version") String version,
844 @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
845 throws ApiException {
846 String requestId = requestHandlerUtils.getRequestId(requestContext);
847 HashMap<String, String> instanceIdMap = new HashMap<>();
848 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
849 return serviceInstances(request, Action.createInstance, instanceIdMap, version, requestId,
850 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
854 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
855 @Consumes(MediaType.APPLICATION_JSON)
856 @Produces(MediaType.APPLICATION_JSON)
857 @Operation(description = "Update VolumeGroup on a specified version, serviceInstance, networkInstance",
858 responses = @ApiResponse(
859 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
861 public Response updateNetworkInstance(String request, @PathParam("version") String version,
862 @PathParam("serviceInstanceId") String serviceInstanceId,
863 @PathParam("networkInstanceId") String networkInstanceId, @Context ContainerRequestContext requestContext)
864 throws ApiException {
865 String requestId = requestHandlerUtils.getRequestId(requestContext);
866 HashMap<String, String> instanceIdMap = new HashMap<>();
867 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
868 instanceIdMap.put("networkInstanceId", networkInstanceId);
869 return serviceInstances(request, Action.updateInstance, instanceIdMap, version, requestId,
870 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
874 @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
875 @Consumes(MediaType.APPLICATION_JSON)
876 @Produces(MediaType.APPLICATION_JSON)
877 @Operation(description = "Delete provided Network instance", responses = @ApiResponse(
878 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
880 public Response deleteNetworkInstance(String request, @PathParam("version") String version,
881 @PathParam("serviceInstanceId") String serviceInstanceId,
882 @PathParam("networkInstanceId") String networkInstanceId, @Context ContainerRequestContext requestContext)
883 throws ApiException {
884 String requestId = requestHandlerUtils.getRequestId(requestContext);
885 HashMap<String, String> instanceIdMap = new HashMap<>();
886 instanceIdMap.put("serviceInstanceId", serviceInstanceId);
887 instanceIdMap.put("networkInstanceId", networkInstanceId);
888 return serviceInstances(request, Action.deleteInstance, instanceIdMap, version, requestId,
889 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
893 @Path("/{version:[vV][7]}/instanceGroups")
894 @Consumes(MediaType.APPLICATION_JSON)
895 @Produces(MediaType.APPLICATION_JSON)
896 @Operation(description = "Create instanceGroups", responses = @ApiResponse(
897 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
899 public Response createInstanceGroups(String request, @PathParam("version") String version,
900 @Context ContainerRequestContext requestContext) throws ApiException {
901 String requestId = requestHandlerUtils.getRequestId(requestContext);
902 return serviceInstances(request, Action.createInstance, null, version, requestId,
903 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
907 @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}")
908 @Consumes(MediaType.APPLICATION_JSON)
909 @Produces(MediaType.APPLICATION_JSON)
910 @Operation(description = "Delete instanceGroup", responses = @ApiResponse(
911 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
913 public Response deleteInstanceGroups(@PathParam("version") String version,
914 @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
915 throws ApiException {
916 String requestId = requestHandlerUtils.getRequestId(requestContext);
917 HashMap<String, String> instanceIdMap = new HashMap<>();
918 instanceIdMap.put(CommonConstants.INSTANCE_GROUP_INSTANCE_ID, instanceGroupId);
919 return deleteInstanceGroups(Action.deleteInstance, instanceIdMap, version, requestId,
920 requestHandlerUtils.getRequestUri(requestContext, uriPrefix), requestContext);
924 @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}/addMembers")
925 @Consumes(MediaType.APPLICATION_JSON)
926 @Produces(MediaType.APPLICATION_JSON)
927 @Operation(description = "Add instanceGroup members", responses = @ApiResponse(
928 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
930 public Response addInstanceGroupMembers(String request, @PathParam("version") String version,
931 @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
932 throws ApiException {
933 String requestId = requestHandlerUtils.getRequestId(requestContext);
934 HashMap<String, String> instanceIdMap = new HashMap<>();
935 instanceIdMap.put(CommonConstants.INSTANCE_GROUP_INSTANCE_ID, instanceGroupId);
936 return serviceInstances(request, Action.addMembers, instanceIdMap, version, requestId,
937 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
941 @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}/removeMembers")
942 @Consumes(MediaType.APPLICATION_JSON)
943 @Produces(MediaType.APPLICATION_JSON)
944 @Operation(description = "Remove instanceGroup members", responses = @ApiResponse(
945 content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
947 public Response removeInstanceGroupMembers(String request, @PathParam("version") String version,
948 @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
949 throws ApiException {
950 String requestId = requestHandlerUtils.getRequestId(requestContext);
951 HashMap<String, String> instanceIdMap = new HashMap<>();
952 instanceIdMap.put(CommonConstants.INSTANCE_GROUP_INSTANCE_ID, instanceGroupId);
953 return serviceInstances(request, Action.removeMembers, instanceIdMap, version, requestId,
954 requestHandlerUtils.getRequestUri(requestContext, uriPrefix));
958 * This method is used for POST a request to the BPEL client (BPMN).
960 * Convert the requestJson to ServiceInstanceRequest(sir), create the msoRequest object, check whether this request
961 * is already being processed in requestdb for duplicate check.
963 * Based on the alacarte flag, sir and msoRequest will do the recipe lookup from the service and servicerecipe table
964 * of catalogdb, and get the OrchestrationURI.
966 * If the present request is not the duplicate request then this request will be saved in the requestdb. and will
967 * POST a request to the BPMN engine at the OrchestrationURI fetched.
969 * @param requestJSON Json fetched as body in the API call
970 * @param action Type of action to be performed
971 * @param instanceIdMap Map of instance ids of service/vnf/vf/configuration etc..
972 * @param version Supported version of API
973 * @param requestId Unique id for the request
975 * @return response object
976 * @throws ApiException
978 public Response serviceInstances(String requestJSON, Actions action, HashMap<String, String> instanceIdMap,
979 String version, String requestId, String requestUri) throws ApiException {
980 return serviceInstances(requestJSON, action, instanceIdMap, version, requestId, requestUri, null);
984 public Response serviceInstances(String requestJSON, Actions action, HashMap<String, String> instanceIdMap,
985 String version, String requestId, String requestUri, HashMap<String, String> queryParams)
986 throws ApiException {
987 String serviceInstanceId;
988 Boolean aLaCarte = null;
989 ServiceInstancesRequest sir;
990 String apiVersion = version.substring(1);
992 sir = requestHandlerUtils.convertJsonToServiceInstanceRequest(requestJSON, action, requestId, requestUri);
993 action = handleReplaceInstance(action, sir);
995 String requestScope = requestHandlerUtils.deriveRequestScope(action, sir, requestUri);
997 requestValidatorListenerRunner.runValidations(requestUri, instanceIdMap, sir, queryParams, action);
998 } catch (ApiException e) {
999 msoRequest.createErrorRequestRecord(Status.FAILED, requestId, e.getMessage(), action, requestScope,
1000 requestJSON, requestHandlerUtils
1001 .getServiceInstanceIdForValidationError(sir, instanceIdMap, requestScope).orElse(null),
1006 InfraActiveRequests currentActiveReq =
1007 msoRequest.createRequestObject(sir, action, requestId, Status.IN_PROGRESS, requestJSON, requestScope);
1008 if (sir.getRequestDetails().getRequestParameters() != null) {
1009 aLaCarte = sir.getRequestDetails().getRequestParameters().getALaCarte();
1012 requestHandlerUtils.parseRequest(sir, instanceIdMap, action, version, requestJSON, aLaCarte, requestId,
1014 if ((action == Action.replaceInstance || action == Action.replaceInstanceRetainAssignments)
1015 && (requestScope.equals(ModelType.vnf.toString()) || requestScope.equals(ModelType.vfModule.toString())
1016 || requestScope.equals(ModelType.cnf.toString()))
1017 && sir.getRequestDetails().getCloudConfiguration() == null) {
1018 CloudConfiguration cloudConfiguration =
1019 getCloudConfigurationOnReplace(requestScope, instanceIdMap, currentActiveReq);
1020 sir.getRequestDetails().setCloudConfiguration(cloudConfiguration);
1021 setCloudConfigurationCurrentActiveRequest(cloudConfiguration, currentActiveReq);
1023 requestHandlerUtils.setInstanceId(currentActiveReq, requestScope, null, instanceIdMap);
1025 String instanceName = null;
1026 if (sir.getRequestDetails().getRequestInfo() != null) {
1027 instanceName = sir.getRequestDetails().getRequestInfo().getInstanceName();
1029 boolean alaCarteFlag = msoRequest.getAlacarteFlag(sir);
1030 String vnfType = msoRequest.getVnfType(sir, requestScope);
1031 String networkType = msoRequest.getNetworkType(sir, requestScope);
1032 String sdcServiceModelVersion = msoRequest.getSDCServiceModelVersion(sir);
1033 String vfModuleType = msoRequest.getVfModuleType(sir, requestScope);
1035 if (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && vnfType != null) {
1036 currentActiveReq.setVnfType(vnfType);
1037 } else if (requestScope.equalsIgnoreCase(ModelType.network.name()) && networkType != null) {
1038 currentActiveReq.setNetworkType(networkType);
1041 requestHandlerUtils.checkForDuplicateRequests(action, instanceIdMap, requestScope, currentActiveReq,
1044 ServiceInstancesResponse serviceResponse = new ServiceInstancesResponse();
1046 RequestReferences referencesResponse = new RequestReferences();
1048 referencesResponse.setRequestId(requestId);
1050 serviceResponse.setRequestReferences(referencesResponse);
1051 RecipeLookupResult recipeLookupResult =
1052 requestHandlerUtils.getServiceInstanceOrchestrationURI(sir, action, alaCarteFlag, currentActiveReq);
1053 String serviceInstanceType = requestHandlerUtils.getServiceType(requestScope, sir, alaCarteFlag);
1055 ModelInfo modelInfo = sir.getRequestDetails().getModelInfo();
1056 ModelType modelType = requestHandlerUtils.getModelType(action, modelInfo);
1058 Boolean isBaseVfModule = false;
1060 if (modelType.equals(ModelType.vfModule)) {
1061 isBaseVfModule = requestHandlerUtils.getIsBaseVfModule(modelInfo, action, vnfType, sdcServiceModelVersion,
1065 serviceInstanceId = requestHandlerUtils.setServiceInstanceId(requestScope, sir);
1067 String vfModuleId = "";
1068 String volumeGroupId = "";
1069 String networkId = "";
1070 String pnfCorrelationId = "";
1071 String instanceGroupId = null;
1073 if (sir.getVnfInstanceId() != null) {
1074 vnfId = sir.getVnfInstanceId();
1077 if (sir.getVfModuleInstanceId() != null) {
1078 vfModuleId = sir.getVfModuleInstanceId();
1081 if (sir.getVolumeGroupInstanceId() != null) {
1082 volumeGroupId = sir.getVolumeGroupInstanceId();
1085 if (sir.getNetworkInstanceId() != null) {
1086 networkId = sir.getNetworkInstanceId();
1088 if (sir.getInstanceGroupId() != null) {
1089 instanceGroupId = sir.getInstanceGroupId();
1092 pnfCorrelationId = getPnfCorrelationId(sir);
1095 infraActiveRequestsClient.save(currentActiveReq);
1096 } catch (Exception e) {
1097 logger.error("Exception occurred", e);
1098 ErrorLoggerInfo errorLoggerInfo =
1099 new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ACCESS_EXC, ErrorCode.DataError)
1100 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1101 throw new RequestDbFailureException.Builder(SAVE_TO_DB, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR,
1102 ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e).errorInfo(errorLoggerInfo).build();
1105 if (!requestScope.equalsIgnoreCase(ModelType.service.name()) && action != Action.recreateInstance
1106 && !requestScope.equalsIgnoreCase(ModelType.vnf.name())
1107 && !requestScope.equalsIgnoreCase(ModelType.pnf.name())) {
1109 } else if (aLaCarte == null) {
1114 RequestClientParameter requestClientParameter;
1116 requestClientParameter = new RequestClientParameter.Builder().setRequestId(requestId)
1117 .setBaseVfModule(isBaseVfModule).setRecipeTimeout(recipeLookupResult.getRecipeTimeout())
1118 .setRequestAction(action.toString()).setServiceInstanceId(serviceInstanceId)
1119 .setPnfCorrelationId(pnfCorrelationId).setVnfId(vnfId).setVfModuleId(vfModuleId)
1120 .setVolumeGroupId(volumeGroupId).setNetworkId(networkId).setServiceType(serviceInstanceType)
1121 .setVnfType(vnfType).setVfModuleType(vfModuleType).setNetworkType(networkType)
1122 .setRequestDetails(requestHandlerUtils.mapJSONtoMSOStyle(requestJSON, sir, aLaCarte, action))
1123 .setApiVersion(apiVersion).setALaCarte(aLaCarte).setRequestUri(requestUri)
1124 .setInstanceGroupId(instanceGroupId).build();
1125 } catch (IOException e) {
1126 logger.error("Exception occurred", e);
1127 ErrorLoggerInfo errorLoggerInfo =
1128 new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError)
1129 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1130 throw new ValidateException.Builder("Unable to generate RequestClientParamter object" + e.getMessage(),
1131 HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER).errorInfo(errorLoggerInfo)
1134 return requestHandlerUtils.postBPELRequest(currentActiveReq, requestClientParameter,
1135 recipeLookupResult.getOrchestrationURI(), requestScope);
1143 protected Actions handleReplaceInstance(Actions action, ServiceInstancesRequest sir) {
1144 if (action != null && action.equals(Action.replaceInstance)
1145 && sir.getRequestDetails().getRequestParameters().getRetainAssignments() != null
1146 && sir.getRequestDetails().getRequestParameters().getRetainAssignments()) {
1147 action = Action.replaceInstanceRetainAssignments;
1153 * This method deletes the Instance Groups.
1155 * This method will check whether the request is not duplicate in requestdb. if its not then will save as a new
1156 * request. And will send a POST request to BEPL client to delete the Insatnce Groups.
1159 * @param instanceIdMap
1163 * @param requestContext
1165 * @throws ApiException
1167 public Response deleteInstanceGroups(Actions action, HashMap<String, String> instanceIdMap, String version,
1168 String requestId, String requestUri, ContainerRequestContext requestContext) throws ApiException {
1169 String instanceGroupId = instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID);
1170 Boolean aLaCarte = true;
1171 String apiVersion = version.substring(1);
1172 ServiceInstancesRequest sir = new ServiceInstancesRequest();
1173 sir.setInstanceGroupId(instanceGroupId);
1175 String requestScope = ModelType.instanceGroup.toString();
1176 InfraActiveRequests currentActiveReq =
1177 msoRequest.createRequestObject(sir, action, requestId, Status.IN_PROGRESS, null, requestScope);
1178 requestHandlerUtils.setInstanceId(currentActiveReq, requestScope, null, instanceIdMap);
1180 requestHandlerUtils.validateHeaders(requestContext);
1181 } catch (ValidationException e) {
1182 logger.error("Exception occurred", e);
1183 ErrorLoggerInfo errorLoggerInfo =
1184 new ErrorLoggerInfo.Builder(MessageEnum.APIH_VALIDATION_ERROR, ErrorCode.SchemaError)
1185 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1186 ValidateException validateException =
1187 new ValidateException.Builder(e.getMessage(), HttpStatus.SC_BAD_REQUEST,
1188 ErrorNumbers.SVC_BAD_PARAMETER).cause(e).errorInfo(errorLoggerInfo).build();
1189 requestHandlerUtils.updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
1190 throw validateException;
1193 requestHandlerUtils.checkForDuplicateRequests(action, instanceIdMap, requestScope, currentActiveReq, null);
1195 ServiceInstancesResponse serviceResponse = new ServiceInstancesResponse();
1197 RequestReferences referencesResponse = new RequestReferences();
1199 referencesResponse.setRequestId(requestId);
1201 serviceResponse.setRequestReferences(referencesResponse);
1202 Boolean isBaseVfModule = false;
1204 RecipeLookupResult recipeLookupResult = new RecipeLookupResult("/mso/async/services/WorkflowActionBB", 180);
1207 infraActiveRequestsClient.save(currentActiveReq);
1208 } catch (Exception e) {
1209 logger.error("Exception occurred", e);
1210 ErrorLoggerInfo errorLoggerInfo =
1211 new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ACCESS_EXC, ErrorCode.DataError)
1212 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1213 throw new RequestDbFailureException.Builder(SAVE_TO_DB, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR,
1214 ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e).errorInfo(errorLoggerInfo).build();
1217 RequestClientParameter requestClientParameter = new RequestClientParameter.Builder().setRequestId(requestId)
1218 .setBaseVfModule(isBaseVfModule).setRecipeTimeout(recipeLookupResult.getRecipeTimeout())
1219 .setRequestAction(action.toString()).setApiVersion(apiVersion).setALaCarte(aLaCarte)
1220 .setRequestUri(requestUri).setInstanceGroupId(instanceGroupId).build();
1223 return requestHandlerUtils.postBPELRequest(currentActiveReq, requestClientParameter,
1224 recipeLookupResult.getOrchestrationURI(), requestScope);
1227 protected String getPnfCorrelationId(ServiceInstancesRequest sir) {
1228 return Optional.of(sir).map(ServiceInstancesRequest::getRequestDetails)
1229 .map(RequestDetails::getRequestParameters).map(parameters -> parameters.getUserParamValue("pnfId"))
1233 private Response configurationRecipeLookup(String requestJSON, Action action, HashMap<String, String> instanceIdMap,
1234 String version, String requestId, String requestUri) throws ApiException {
1235 String serviceInstanceId;
1236 Boolean aLaCarte = null;
1237 String apiVersion = version.substring(1);
1238 ServiceInstancesRequest sir;
1240 sir = requestHandlerUtils.convertJsonToServiceInstanceRequest(requestJSON, action, requestId, requestUri);
1241 String requestScope = requestHandlerUtils.deriveRequestScope(action, sir, requestUri);
1242 InfraActiveRequests currentActiveReq =
1243 msoRequest.createRequestObject(sir, action, requestId, Status.IN_PROGRESS, requestJSON, requestScope);
1244 if (sir.getRequestDetails().getRequestParameters() != null) {
1245 aLaCarte = sir.getRequestDetails().getRequestParameters().getALaCarte();
1248 requestHandlerUtils.parseRequest(sir, instanceIdMap, action, version, requestJSON, aLaCarte, requestId,
1250 requestHandlerUtils.setInstanceId(currentActiveReq, requestScope, null, instanceIdMap);
1251 String instanceName = sir.getRequestDetails().getRequestInfo().getInstanceName();
1253 requestHandlerUtils.checkForDuplicateRequests(action, instanceIdMap, requestScope, currentActiveReq,
1256 ServiceInstancesResponse serviceResponse = new ServiceInstancesResponse();
1257 RequestReferences referencesResponse = new RequestReferences();
1258 referencesResponse.setRequestId(requestId);
1259 serviceResponse.setRequestReferences(referencesResponse);
1261 String orchestrationUri = env.getProperty(CommonConstants.ALACARTE_ORCHESTRATION);
1262 String timeOut = env.getProperty(CommonConstants.ALACARTE_RECIPE_TIMEOUT);
1264 if (StringUtils.isBlank(orchestrationUri) || StringUtils.isBlank(timeOut)) {
1265 String error = StringUtils.isBlank(orchestrationUri) ? "ALaCarte Orchestration URI not found in properties"
1266 : "ALaCarte Recipe Timeout not found in properties";
1268 ErrorLoggerInfo errorLoggerInfo =
1269 new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ATTRIBUTE_NOT_FOUND, ErrorCode.DataError)
1270 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1272 ValidateException validateException = new ValidateException.Builder(error, HttpStatus.SC_NOT_FOUND,
1273 ErrorNumbers.SVC_GENERAL_SERVICE_ERROR).errorInfo(errorLoggerInfo).build();
1275 requestHandlerUtils.updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
1277 throw validateException;
1281 serviceInstanceId = "";
1282 String configurationId = "";
1283 String pnfCorrelationId = "";
1285 if (sir.getServiceInstanceId() != null) {
1286 serviceInstanceId = sir.getServiceInstanceId();
1289 if (sir.getConfigurationId() != null) {
1290 configurationId = sir.getConfigurationId();
1293 pnfCorrelationId = getPnfCorrelationId(sir);
1296 infraActiveRequestsClient.save(currentActiveReq);
1297 } catch (Exception e) {
1298 ErrorLoggerInfo errorLoggerInfo =
1299 new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ACCESS_EXC, ErrorCode.DataError)
1300 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1301 throw new RequestDbFailureException.Builder(SAVE_TO_DB, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR,
1302 ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e).errorInfo(errorLoggerInfo).build();
1305 if (!requestScope.equalsIgnoreCase(ModelType.service.name())) {
1307 } else if (aLaCarte == null) {
1310 RequestClientParameter requestClientParameter = null;
1312 requestClientParameter = new RequestClientParameter.Builder().setRequestId(requestId).setBaseVfModule(false)
1313 .setRecipeTimeout(Integer.parseInt(timeOut)).setRequestAction(action.toString())
1314 .setServiceInstanceId(serviceInstanceId).setPnfCorrelationId(pnfCorrelationId)
1315 .setConfigurationId(configurationId)
1316 .setRequestDetails(requestHandlerUtils.mapJSONtoMSOStyle(requestJSON, sir, aLaCarte, action))
1317 .setApiVersion(apiVersion).setALaCarte(aLaCarte).setRequestUri(requestUri).build();
1318 } catch (IOException e) {
1319 ErrorLoggerInfo errorLoggerInfo =
1320 new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError)
1321 .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
1322 throw new ValidateException.Builder("Unable to generate RequestClientParamter object" + e.getMessage(),
1323 HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER).errorInfo(errorLoggerInfo)
1327 return requestHandlerUtils.postBPELRequest(currentActiveReq, requestClientParameter, orchestrationUri,
1331 protected CloudConfiguration getCloudConfigurationOnReplace(String requestScope,
1332 HashMap<String, String> instanceIdMap, InfraActiveRequests currentActiveReq) throws ApiException {
1333 logger.debug("Replace request is missing cloudConfiguration, autofilling from create.");
1334 CloudConfiguration cloudConfiguration = null;
1335 if (requestScope.equals(ModelType.vfModule.toString())) {
1336 cloudConfiguration = bpmnRequestBuilder.getCloudConfigurationVfModuleReplace(
1337 instanceIdMap.get("vnfInstanceId"), instanceIdMap.get("vfModuleInstanceId"));
1339 cloudConfiguration = bpmnRequestBuilder.mapCloudConfigurationVnf(instanceIdMap.get("vnfInstanceId"));
1342 if (cloudConfiguration == null) {
1343 String errorMessage = "CloudConfiguration not found during autofill for replace request.";
1344 logger.error(errorMessage);
1345 updateStatus(currentActiveReq, Status.FAILED, errorMessage);
1346 throw new CloudConfigurationNotFoundException(
1347 "CloudConfiguration not found during autofill for replace request.");
1349 return cloudConfiguration;
1352 protected void setCloudConfigurationCurrentActiveRequest(CloudConfiguration cloudConfiguration,
1353 InfraActiveRequests currentActiveRequest) {
1354 if (cloudConfiguration.getLcpCloudRegionId() != null) {
1355 currentActiveRequest.setCloudRegion(cloudConfiguration.getLcpCloudRegionId());
1358 if (cloudConfiguration.getTenantId() != null) {
1359 currentActiveRequest.setTenantId(cloudConfiguration.getTenantId());