*/
package org.oransc.ric.portal.dashboard.controller;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import io.swagger.annotations.ApiOperation;
+
import java.lang.invoke.MethodHandles;
-import java.util.Collection;
+
import javax.servlet.http.HttpServletResponse;
+
import org.oransc.ric.portal.dashboard.DashboardConstants;
-import org.oransc.ric.portal.dashboard.model.PolicyInstances;
-import org.oransc.ric.portal.dashboard.model.PolicyTypes;
import org.oransc.ric.portal.dashboard.policyagentapi.PolicyAgentApi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PolicyController {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private static Gson gson = new GsonBuilder() //
- .serializeNulls() //
- .create(); //
// Publish paths in constants so tests are easy to write
public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/policy";
@ApiOperation(value = "Gets the policy types from Near Realtime-RIC")
@GetMapping(POLICY_TYPES_METHOD)
@Secured({DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD})
- public ResponseEntity<PolicyTypes> getAllPolicyTypes(HttpServletResponse response) {
+ public ResponseEntity<String> getAllPolicyTypes(HttpServletResponse response) {
logger.debug("getAllPolicyTypes");
return this.policyAgentApi.getAllPolicyTypes();
}
@Secured({DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD})
public ResponseEntity<String> getPolicyInstances(@PathVariable(POLICY_TYPE_ID_NAME) String policyTypeIdString) {
logger.debug("getPolicyInstances {}", policyTypeIdString);
-
- ResponseEntity<PolicyInstances> response = this.policyAgentApi.getPolicyInstancesForType(policyTypeIdString);
- if (!response.getStatusCode().is2xxSuccessful()) {
- return new ResponseEntity<>(response.getStatusCode());
- }
- String json = gson.toJson(response.getBody());
- return new ResponseEntity<>(json, response.getStatusCode());
+ return this.policyAgentApi.getPolicyInstancesForType(policyTypeIdString);
}
@ApiOperation(value = "Returns a policy instance of a type")
@DeleteMapping(POLICY_TYPES_METHOD + "/{" + POLICY_TYPE_ID_NAME + "}/" + POLICIES_NAME + "/{"
+ POLICY_INSTANCE_ID_NAME + "}")
@Secured({DashboardConstants.ROLE_ADMIN})
- public void deletePolicyInstance(@PathVariable(POLICY_TYPE_ID_NAME) String policyTypeIdString,
+ public ResponseEntity<String> deletePolicyInstance(@PathVariable(POLICY_TYPE_ID_NAME) String policyTypeIdString,
@PathVariable(POLICY_INSTANCE_ID_NAME) String policyInstanceId) {
logger.debug("deletePolicyInstance typeId: {}, instanceId: {}", policyTypeIdString, policyInstanceId);
- this.policyAgentApi.deletePolicy(policyInstanceId);
+ return this.policyAgentApi.deletePolicy(policyInstanceId);
}
@ApiOperation(value = "Returns the rics supporting the given policy type.")
@RequestParam(name = "policyType", required = true) String supportingPolicyType) {
logger.debug("getRicsSupportingType {}", supportingPolicyType);
- ResponseEntity<Collection<String>> result = this.policyAgentApi.getRicsSupportingType(supportingPolicyType);
- if (!result.getStatusCode().is2xxSuccessful()) {
- return new ResponseEntity<>(result.getStatusCode());
- }
- String json = gson.toJson(result.getBody());
- return new ResponseEntity<>(json, result.getStatusCode());
+ return this.policyAgentApi.getRicsSupportingType(supportingPolicyType);
}
-
-};
+}
*/
package org.oransc.ric.portal.dashboard.policyagentapi;
-import java.util.Collection;
-
-import org.oransc.ric.portal.dashboard.model.PolicyInstances;
-import org.oransc.ric.portal.dashboard.model.PolicyTypes;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.client.RestClientException;
public interface PolicyAgentApi {
- public ResponseEntity<PolicyTypes> getAllPolicyTypes() throws RestClientException;
+ public ResponseEntity<String> getAllPolicyTypes();
- public ResponseEntity<PolicyInstances> getPolicyInstancesForType(String type);
+ public ResponseEntity<String> getPolicyInstancesForType(String type);
- public ResponseEntity<String> getPolicyInstance(String id) throws RestClientException;
+ public ResponseEntity<String> getPolicyInstance(String id);
- public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, String json, String ric)
- throws RestClientException;
+ public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, String json,
+ String ric);
- public void deletePolicy(String policyInstanceId) throws RestClientException;
+ public ResponseEntity<String> deletePolicy(String policyInstanceId);
- public ResponseEntity<Collection<String>> getRicsSupportingType(String typeName);
+ public ResponseEntity<String> getRicsSupportingType(String typeName);
}
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
+
import java.lang.invoke.MethodHandles;
import java.lang.reflect.Type;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Vector;
+
import org.immutables.gson.Gson;
import org.immutables.value.Value;
import org.oransc.ric.portal.dashboard.model.ImmutablePolicyInfo;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
@Component("PolicyAgentApi")
}
@Override
- public ResponseEntity<PolicyTypes> getAllPolicyTypes() throws RestClientException {
+ public ResponseEntity<String> getAllPolicyTypes() {
String url = baseUrl() + "/policy_schemas";
ResponseEntity<String> rsp = this.restTemplate.getForEntity(url, String.class);
if (!rsp.getStatusCode().is2xxSuccessful()) {
- return new ResponseEntity<>(rsp.getStatusCode());
+ return rsp;
}
PolicyTypes result = new PolicyTypes();
JsonParser jsonParser = new JsonParser();
- JsonArray schemas = jsonParser.parse(rsp.getBody()).getAsJsonArray();
- for (JsonElement schema : schemas) {
- JsonObject schemaObj = schema.getAsJsonObject();
- String title = schemaObj.get("title").getAsString();
- String schemaAsStr = schemaObj.toString();
- PolicyType pt = new PolicyType(title, schemaAsStr);
- result.add(pt);
+ try {
+ JsonArray schemas = jsonParser.parse(rsp.getBody()).getAsJsonArray();
+ for (JsonElement schema : schemas) {
+ JsonObject schemaObj = schema.getAsJsonObject();
+ String title = schemaObj.get("title").getAsString();
+ String schemaAsStr = schemaObj.toString();
+ PolicyType pt = new PolicyType(title, schemaAsStr);
+ result.add(pt);
+ }
+ return new ResponseEntity<>(gson.toJson(result), rsp.getStatusCode());
+ } catch (Exception e) {
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
- return new ResponseEntity<>(result, rsp.getStatusCode());
}
@Override
- public ResponseEntity<PolicyInstances> getPolicyInstancesForType(String type) {
+ public ResponseEntity<String> getPolicyInstancesForType(String type) {
String url = baseUrl() + "/policies?type={type}";
Map<String, ?> uriVariables = Map.of("type", type);
ResponseEntity<String> rsp = this.restTemplate.getForEntity(url, String.class, uriVariables);
if (!rsp.getStatusCode().is2xxSuccessful()) {
- return new ResponseEntity<>(rsp.getStatusCode());
+ return rsp;
}
- Type listType = new TypeToken<List<ImmutablePolicyInfo>>() {}.getType();
- List<PolicyInfo> rspParsed = gson.fromJson(rsp.getBody(), listType);
-
- PolicyInstances result = new PolicyInstances();
- for (PolicyInfo p : rspParsed) {
- result.add(p);
+ try {
+ Type listType = new TypeToken<List<ImmutablePolicyInfo>>() {}.getType();
+ List<PolicyInfo> rspParsed = gson.fromJson(rsp.getBody(), listType);
+ PolicyInstances result = new PolicyInstances();
+ for (PolicyInfo p : rspParsed) {
+ result.add(p);
+ }
+ return new ResponseEntity<>(gson.toJson(result), rsp.getStatusCode());
+ } catch (Exception e) {
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
- return new ResponseEntity<>(result, rsp.getStatusCode());
}
@Override
- public ResponseEntity<String> getPolicyInstance(String id) throws RestClientException {
+ public ResponseEntity<String> getPolicyInstance(String id) {
String url = baseUrl() + "/policy?instance={id}";
Map<String, ?> uriVariables = Map.of("id", id);
}
@Override
- public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, String json, String ric)
- throws RestClientException {
+ public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, String json,
+ String ric) {
String url = baseUrl() + "/policy?type={type}&instance={instance}&ric={ric}&service={service}";
Map<String, ?> uriVariables = Map.of( //
"type", policyTypeIdString, //
try {
this.restTemplate.put(url, json, uriVariables);
- return new ResponseEntity<>(HttpStatus.OK);
+ return new ResponseEntity<>("Policy was put successfully", HttpStatus.OK);
} catch (Exception e) {
- return new ResponseEntity<>(e.getMessage(), HttpStatus.NOT_FOUND);
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@Override
- public void deletePolicy(String policyInstanceId) throws RestClientException {
+ public ResponseEntity<String> deletePolicy(String policyInstanceId) {
String url = baseUrl() + "/policy?instance={instance}";
Map<String, ?> uriVariables = Map.of("instance", policyInstanceId);
- this.restTemplate.delete(url, uriVariables);
+ try {
+ this.restTemplate.delete(url, uriVariables);
+ return new ResponseEntity<>("Policy was deleted successfully", HttpStatus.NO_CONTENT);
+ } catch (Exception e) {
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.NOT_FOUND);
+ }
+
}
@Value.Immutable
}
@Override
- public ResponseEntity<Collection<String>> getRicsSupportingType(String typeName) {
+ public ResponseEntity<String> getRicsSupportingType(String typeName) {
String url = baseUrl() + "/rics?policyType={typeName}";
Map<String, ?> uriVariables = Map.of("typeName", typeName);
String rsp = this.restTemplate.getForObject(url, String.class, uriVariables);
- Type listType = new TypeToken<List<ImmutableRicInfo>>() {}.getType();
- List<RicInfo> rspParsed = gson.fromJson(rsp, listType);
-
- Collection<String> result = new Vector<>(rspParsed.size());
- for (RicInfo ric : rspParsed) {
- result.add(ric.name());
+ try {
+ Type listType = new TypeToken<List<ImmutableRicInfo>>() {}.getType();
+ List<RicInfo> rspParsed = gson.fromJson(rsp, listType);
+ Collection<String> result = new Vector<>(rspParsed.size());
+ for (RicInfo ric : rspParsed) {
+ result.add(ric.name());
+ }
+ return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
+ } catch (Exception e) {
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
- return new ResponseEntity<>(result, HttpStatus.OK);
}
}
*/
package org.oransc.ric.portal.dashboard.config;
+import com.google.gson.GsonBuilder;
+
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private static com.google.gson.Gson gson = new GsonBuilder() //
+ .serializeNulls() //
+ .create(); //
+
@Bean
public PolicyAgentApi policyAgentApi() {
MockPolicyAgentApi apiClient = new MockPolicyAgentApi();
private final Database database = new Database();
@Override
- public ResponseEntity<String> getPolicyInstance(String id) throws RestClientException {
+ public ResponseEntity<String> getPolicyInstance(String id) {
return new ResponseEntity<>(database.getInstance(id), HttpStatus.OK);
}
@Override
public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, String json,
- String ric) throws RestClientException {
+ String ric) {
database.putInstance(policyTypeIdString, policyInstanceId, json, ric);
- return new ResponseEntity<>(HttpStatus.OK);
+ return new ResponseEntity<>("Policy was put successfully", HttpStatus.OK);
}
@Override
- public void deletePolicy(String policyInstanceId) throws RestClientException {
+ public ResponseEntity<String> deletePolicy(String policyInstanceId) {
database.deleteInstance(policyInstanceId);
+ return new ResponseEntity<>("Policy was deleted successfully", HttpStatus.NO_CONTENT);
}
@Override
- public ResponseEntity<PolicyTypes> getAllPolicyTypes() throws RestClientException {
+ public ResponseEntity<String> getAllPolicyTypes() {
PolicyTypes result = new PolicyTypes();
result.addAll(database.getTypes());
- return new ResponseEntity<>(result, HttpStatus.OK);
+ return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
}
@Override
- public ResponseEntity<PolicyInstances> getPolicyInstancesForType(String type) {
+ public ResponseEntity<String> getPolicyInstancesForType(String type) {
PolicyInstances result = new PolicyInstances();
List<PolicyInfo> inst = database.getInstances(Optional.of(type));
result.addAll(inst);
- return new ResponseEntity<>(result, HttpStatus.OK);
+ return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
}
@Override
- public ResponseEntity<Collection<String>> getRicsSupportingType(String typeName) {
+ public ResponseEntity<String> getRicsSupportingType(String typeName) {
Vector<String> res = new Vector<>();
res.add("ric_1");
res.add("ric_2");
res.add("ric_3");
- return new ResponseEntity<>(res, HttpStatus.OK);
+ return new ResponseEntity<>(gson.toJson(res), HttpStatus.OK);
}
}
Assertions.assertTrue(response.getBody().contains("Static error page"));
}
-/* private HttpEntity<Object> getEntityWithHeaders(Object body) {
- HttpHeaders headers = new HttpHeaders();
- headers.set(PortalApIMockConfiguration.PORTAL_USERNAME_HEADER_KEY,
- PortalApIMockConfiguration.PORTAL_USERNAME_HEADER_KEY);
- headers.set(PortalApIMockConfiguration.PORTAL_PASSWORD_HEADER_KEY,
- PortalApIMockConfiguration.PORTAL_PASSWORD_HEADER_KEY);
- HttpEntity<Object> entity = new HttpEntity<>(body, headers);
- return entity;
- }
-
- private EcompUser createEcompUser(String loginId) {
- EcompUser user = new EcompUser();
- user.setLoginId(loginId);
- EcompRole role = new EcompRole();
- role.setRoleFunctions(Collections.EMPTY_SET);
- role.setId(1L);
- role.setName(DashboardConstants.ROLE_NAME_ADMIN);
- Set<EcompRole> roles = new HashSet<>();
- roles.add(role);
- user.setRoles(roles);
- return user;
- }
-
- @Test
+ /*
+ * private HttpEntity<Object> getEntityWithHeaders(Object body) {
+ * HttpHeaders headers = new HttpHeaders();
+ * headers.set(PortalApIMockConfiguration.PORTAL_USERNAME_HEADER_KEY,
+ * PortalApIMockConfiguration.PORTAL_USERNAME_HEADER_KEY);
+ * headers.set(PortalApIMockConfiguration.PORTAL_PASSWORD_HEADER_KEY,
+ * PortalApIMockConfiguration.PORTAL_PASSWORD_HEADER_KEY);
+ * HttpEntity<Object> entity = new HttpEntity<>(body, headers);
+ * return entity;
+ * }
+ *
+ * private EcompUser createEcompUser(String loginId) {
+ * EcompUser user = new EcompUser();
+ * user.setLoginId(loginId);
+ * EcompRole role = new EcompRole();
+ * role.setRoleFunctions(Collections.EMPTY_SET);
+ * role.setId(1L);
+ * role.setName(DashboardConstants.ROLE_NAME_ADMIN);
+ * Set<EcompRole> roles = new HashSet<>();
+ * roles.add(role);
+ * user.setRoles(roles);
+ * return user;
+ * }
+ *
+ * @Test
+ *
* @Test
* public void createUserTest() {
* final String loginId = "login1";