summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/main/java/org')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionResponse.java26
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionsRequest.java36
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/category/CategoryParameterOptionRep.java38
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/client/SyncRestClient.java5
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/client/SyncRestClientInterface.java2
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java142
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/model/CategoryParameter.java53
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java2
8 files changed, 235 insertions, 69 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionResponse.java b/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionResponse.java
index 89d3963ac..b19ea57e1 100644
--- a/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionResponse.java
+++ b/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionResponse.java
@@ -1,5 +1,27 @@
package org.onap.vid.category;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
import org.onap.vid.model.ListOfErrorsResponse;
import java.util.List;
@@ -9,6 +31,10 @@ public class AddCategoryOptionResponse extends ListOfErrorsResponse {
public AddCategoryOptionResponse() {
}
+ public AddCategoryOptionResponse(String error) {
+ errors.add(error);
+ }
+
public AddCategoryOptionResponse(List<String> errors) {
super(errors);
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionsRequest.java b/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionsRequest.java
index 5db474627..8e9b14422 100644
--- a/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionsRequest.java
+++ b/vid-app-common/src/main/java/org/onap/vid/category/AddCategoryOptionsRequest.java
@@ -1,7 +1,30 @@
package org.onap.vid.category;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
public class AddCategoryOptionsRequest {
@@ -10,4 +33,17 @@ public class AddCategoryOptionsRequest {
public AddCategoryOptionsRequest() {
options = new ArrayList<>();
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || this.getClass() != o.getClass()) return false;
+ AddCategoryOptionsRequest that = (AddCategoryOptionsRequest) o;
+ return Objects.equals(this.options, that.options);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.options);
+ }
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/category/CategoryParameterOptionRep.java b/vid-app-common/src/main/java/org/onap/vid/category/CategoryParameterOptionRep.java
index 355e54838..dc0ecba17 100644
--- a/vid-app-common/src/main/java/org/onap/vid/category/CategoryParameterOptionRep.java
+++ b/vid-app-common/src/main/java/org/onap/vid/category/CategoryParameterOptionRep.java
@@ -1,5 +1,29 @@
package org.onap.vid.category;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+import java.util.Objects;
+
public class CategoryParameterOptionRep {
private String id;
@@ -28,4 +52,18 @@ public class CategoryParameterOptionRep {
public void setName(String name) {
this.name = name;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || this.getClass() != o.getClass()) return false;
+ CategoryParameterOptionRep that = (CategoryParameterOptionRep) o;
+ return Objects.equals(this.id, that.id) &&
+ Objects.equals(this.name, that.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.id, this.name);
+ }
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClient.java b/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClient.java
index b7f226400..a3ff5f923 100644
--- a/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClient.java
+++ b/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClient.java
@@ -135,6 +135,11 @@ public class SyncRestClient implements SyncRestClientInterface {
}
@Override
+ public <T> HttpResponse<T> delete(String url, Map<String, String> headers, Object body, Class<T> responseClass) {
+ return callWithRetryOverHttp(url, url2 -> restClient.delete(url2).headers(headers).body(body).asObject(responseClass));
+ }
+
+ @Override
public <T> HttpResponse<T> delete(String url, Map<String, String> headers, Class<T> responseClass) {
return callWithRetryOverHttp(url, url2 -> restClient.delete(url2).headers(headers).asObject(responseClass));
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClientInterface.java b/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClientInterface.java
index 142adde15..ae2f83862 100644
--- a/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClientInterface.java
+++ b/vid-app-common/src/main/java/org/onap/vid/client/SyncRestClientInterface.java
@@ -27,6 +27,8 @@ public interface SyncRestClientInterface {
<T> HttpResponse<T> put(String url, Map<String, String> headers, Object body, Class<T> aClass);
+ <T> HttpResponse<T> delete(String url, Map<String, String> headers, Object body, Class<T> aClass);
+
<T> HttpResponse<T> delete(String url, Map<String, String> headers, Class<T> aClass);
HttpResponse<JsonNode> delete(String url, Map<String, String> headers);
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
index 0976f4039..1a3eb42fa 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
@@ -1,6 +1,30 @@
package org.onap.vid.controllers;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+import static org.onap.vid.utils.Logging.getMethodCallerName;
+import javax.ws.rs.ForbiddenException;
import org.onap.portalsdk.core.controller.UnRestrictedBaseController;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.vid.category.AddCategoryOptionResponse;
@@ -14,124 +38,114 @@ import org.onap.vid.services.CategoryParameterServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.ForbiddenException;
-import java.util.Arrays;
-import java.util.Collections;
-
-import static org.onap.vid.utils.Logging.getMethodCallerName;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
/**
* Controler for APIs that are used only by vid operators
*/
@RestController
-@RequestMapping(MaintenanceController.MAINTENANCE)
+@RequestMapping("maintenance")
public class MaintenanceController extends UnRestrictedBaseController {
- public static final String MAINTENANCE = "maintenance";
+ private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(MaintenanceController.class);
+ private CategoryParameterService categoryParameterService;
@Autowired
- protected CategoryParameterService categoryParameterService;
- private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(MaintenanceController.class);
+ public MaintenanceController(CategoryParameterService categoryParameterService) {
+ this.categoryParameterService = categoryParameterService;
+ }
/**
* Add list of options to one category parameter
- * @param request the request
- * @return the new option
- * @throws Exception the exception
*/
@RequestMapping(value = "/category_parameter/{categoryName}", method = RequestMethod.POST)
- public ResponseEntity addCategoryOptions (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody AddCategoryOptionsRequest option) {
+ public ResponseEntity addCategoryOptions(@PathVariable String categoryName,
+ @RequestBody AddCategoryOptionsRequest option) {
debugStartLog();
try {
- AddCategoryOptionResponse response = categoryParameterService.createCategoryParameterOptions(categoryName, option);
- HttpStatus httpStatus = response.getErrors().size()>0 ? HttpStatus.MULTI_STATUS : HttpStatus.OK;
+ AddCategoryOptionResponse response = categoryParameterService
+ .createCategoryParameterOptions(categoryName, option);
+ HttpStatus httpStatus = response.getErrors().isEmpty() ? HttpStatus.OK : HttpStatus.MULTI_STATUS;
debugEndLog(response);
- return new ResponseEntity<>(response, httpStatus);
- }
- catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
- return new ResponseEntity<>(new AddCategoryOptionResponse(Collections.singletonList(exception.getMessage())), HttpStatus.NOT_FOUND);
- }
- catch (Exception exception) {
+ return createResponseWithBody(httpStatus, response);
+ } catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
+ return createResponseWithBody(HttpStatus.NOT_FOUND, new AddCategoryOptionResponse(exception.getMessage()));
+ } catch (RuntimeException exception) {
LOGGER.error("failed to add option to parameter category " + categoryName, exception);
- return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(value = "/category_parameter/{categoryName}", method = RequestMethod.PUT)
- public ResponseEntity updateNameForOption (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOptionRep option) {
+ public ResponseEntity updateNameForOption(@PathVariable String categoryName,
+ @RequestBody CategoryParameterOptionRep option) {
debugStartLog();
try {
- AddCategoryOptionResponse response = categoryParameterService.updateCategoryParameterOption(categoryName, option);
- HttpStatus httpStatus = response.getErrors().size()>0 ? HttpStatus.MULTI_STATUS : HttpStatus.OK;
+ AddCategoryOptionResponse response = categoryParameterService
+ .updateCategoryParameterOption(categoryName, option);
+ HttpStatus httpStatus = response.getErrors().isEmpty() ? HttpStatus.OK : HttpStatus.MULTI_STATUS;
debugEndLog(response);
- return new ResponseEntity<>(response, httpStatus);
- }
- catch (ForbiddenException exception) {
- return new ResponseEntity<>(new AddCategoryOptionResponse(Collections.singletonList(exception.getMessage())), HttpStatus.FORBIDDEN);
- }
- catch (CategoryParameterServiceImpl.UnfoundedCategoryException|CategoryParameterServiceImpl.UnfoundedCategoryOptionException exception) {
- return new ResponseEntity<>(new AddCategoryOptionResponse(Collections.singletonList(exception.getMessage())), HttpStatus.NOT_FOUND);
- }
- catch (CategoryParameterServiceImpl.AlreadyExistOptionNameException exception) {
- return new ResponseEntity<>(new AddCategoryOptionResponse(Collections.singletonList(exception.getMessage())), HttpStatus.CONFLICT);
- }
- catch (Exception exception) {
+ return createResponseWithBody(httpStatus, response);
+ } catch (ForbiddenException exception) {
+ return createResponseWithBody(HttpStatus.FORBIDDEN, new AddCategoryOptionResponse(exception.getMessage()));
+ } catch (CategoryParameterServiceImpl.UnfoundedCategoryException | CategoryParameterServiceImpl.UnfoundedCategoryOptionException exception) {
+ return createResponseWithBody(HttpStatus.NOT_FOUND, new AddCategoryOptionResponse(exception.getMessage()));
+
+ } catch (CategoryParameterServiceImpl.AlreadyExistOptionNameException exception) {
+ return createResponseWithBody(HttpStatus.CONFLICT, new AddCategoryOptionResponse(exception.getMessage()));
+
+ } catch (RuntimeException exception) {
LOGGER.error("failed to update option to parameter category " + categoryName, exception);
- return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
/**
* Gets the owning entity properties.
- * @param request the request
- * @return the property
- * @throws Exception the exception
*/
@RequestMapping(value = "/category_parameter", method = RequestMethod.GET)
- public ResponseEntity getCategoryParameter(HttpServletRequest request, @RequestParam(value="familyName", required = true) Family familyName) {
+ public ResponseEntity getCategoryParameter(@RequestParam(value = "familyName", required = true) Family familyName) {
debugStartLog();
try {
CategoryParametersResponse response = categoryParameterService.getCategoryParameters(familyName);
debugEndLog(response);
- return new ResponseEntity<>(response, HttpStatus.OK);
- }
- catch (Exception exception) {
+ return ResponseEntity.ok().body(response);
+ } catch (RuntimeException exception) {
LOGGER.error("failed to retrieve category parameter list from DB.", exception);
- return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
-
/**
* Delete option of the category.
- * @param request the request
- * @throws Exception the exception
*/
- @RequestMapping(value = "/delete_category_parameter/{categoryName}", method = RequestMethod.POST)
- public ResponseEntity deleteCategoryOption (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOption option) {
+ @RequestMapping(value = "/delete_category_parameter/{categoryName}", method = RequestMethod.DELETE)
+ public ResponseEntity deleteCategoryOption(@PathVariable String categoryName,
+ @RequestBody CategoryParameterOption option) {
debugStartLog();
try {
categoryParameterService.deleteCategoryOption(categoryName, option);
debugEndLog(HttpStatus.OK);
- return new ResponseEntity<>(HttpStatus.OK);
- }
- catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
- return new ResponseEntity<>(new AddCategoryOptionResponse(Arrays.asList(exception.getMessage())), HttpStatus.NOT_FOUND);
- }
- catch (Exception exception) {
+ return ResponseEntity.status(HttpStatus.OK).build();
+ } catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
+ return createResponseWithBody(HttpStatus.NOT_FOUND, new AddCategoryOptionResponse(exception.getMessage()));
+ } catch (RuntimeException exception) {
LOGGER.error("failed to add/update owning entity option", exception);
- return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
+ private ResponseEntity createResponseWithBody(HttpStatus status, AddCategoryOptionResponse response) {
+ return ResponseEntity.status(status).body(response);
+ }
+
private void debugStartLog() {
LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodCallerName());
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/model/CategoryParameter.java b/vid-app-common/src/main/java/org/onap/vid/model/CategoryParameter.java
index 99824e72b..91617ff42 100644
--- a/vid-app-common/src/main/java/org/onap/vid/model/CategoryParameter.java
+++ b/vid-app-common/src/main/java/org/onap/vid/model/CategoryParameter.java
@@ -1,12 +1,41 @@
package org.onap.vid.model;
-//import org.hibernate.annotations.Table;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
-import javax.persistence.*;
import java.util.HashSet;
+import java.util.Objects;
import java.util.Set;
-
-//import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "vid_category_parameter", uniqueConstraints = @UniqueConstraint(columnNames = "name"))
@@ -72,4 +101,20 @@ public class CategoryParameter extends VidBaseEntity {
public void setIdSupported(boolean idSupported) {
this.idSupported = idSupported;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || this.getClass() != o.getClass()) return false;
+ CategoryParameter that = (CategoryParameter) o;
+ return this.idSupported == that.idSupported &&
+ Objects.equals(this.name, that.name) &&
+ Objects.equals(this.family, that.family) &&
+ Objects.equals(this.options, that.options);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.name, this.idSupported, this.family, this.options);
+ }
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java
index 59bd66771..37600f7b9 100644
--- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java
+++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java
@@ -486,7 +486,7 @@ public class MsoRestClientNew implements MsoInterface {
try {
logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Delete, path =[" + path + "]");
- HttpResponse<String> response = client.delete(path, commonHeaders, String.class);
+ HttpResponse<String> response = client.delete(path, commonHeaders, request, String.class);
MsoResponseWrapper w = MsoUtil.wrapResponse(response);
logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());