summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpRestController.java54
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/model/Decision.java27
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/model/StatisticsReport.java (renamed from main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsReport.java)2
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/provider/DecisionProvider.java38
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/provider/HealthCheckProvider.java (renamed from main/src/main/java/org/onap/policy/pdpx/main/rest/HealthCheckProvider.java)2
-rw-r--r--main/src/main/java/org/onap/policy/pdpx/main/rest/provider/StatisticsProvider.java (renamed from main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsProvider.java)3
-rw-r--r--main/src/test/java/org/onap/policy/pdpx/main/rest/TestStatisticsReport.java4
-rw-r--r--main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpRestServer.java2
-rw-r--r--main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpStatistics.java3
9 files changed, 120 insertions, 15 deletions
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpRestController.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpRestController.java
index b061c96d..dc091f03 100644
--- a/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpRestController.java
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpRestController.java
@@ -22,44 +22,80 @@ package org.onap.policy.pdpx.main.rest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.Authorization;
+import io.swagger.annotations.BasicAuthDefinition;
import io.swagger.annotations.Info;
+import io.swagger.annotations.SecurityDefinition;
import io.swagger.annotations.SwaggerDefinition;
import io.swagger.annotations.Tag;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
+import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.onap.policy.common.endpoints.report.HealthCheckReport;
-
-
+import org.onap.policy.pdpx.main.rest.model.Decision;
+import org.onap.policy.pdpx.main.rest.model.StatisticsReport;
+import org.onap.policy.pdpx.main.rest.provider.DecisionProvider;
+import org.onap.policy.pdpx.main.rest.provider.HealthCheckProvider;
+import org.onap.policy.pdpx.main.rest.provider.StatisticsProvider;
/**
* Class to provide xacml pdp REST services.
*
*/
-@Path("/")
+@Path("/policy/pdpx/v1")
@Api
@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
@SwaggerDefinition(info = @Info(description = "Policy Xacml PDP Service", version = "v1.0", title = "Policy Xacml PDP"),
consumes = {MediaType.APPLICATION_JSON}, produces = {MediaType.APPLICATION_JSON},
- schemes = {SwaggerDefinition.Scheme.HTTP},
- tags = {@Tag(name = "policy-pdpx", description = "Policy Xacml PDP Service Operations")})
+ schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},
+ tags = {@Tag(name = "policy-pdpx", description = "Policy Xacml PDP Service Operations")},
+ securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")}))
public class XacmlPdpRestController {
@GET
- @Path("healthcheck")
+ @Path("/healthcheck")
@ApiOperation(value = "Perform a system healthcheck",
- notes = "Provides healthy status of the Policy Xacml PDP component", response = HealthCheckReport.class)
+ notes = "Provides healthy status of the Policy Xacml PDP component", response = HealthCheckReport.class,
+ authorizations = @Authorization(value = "basicAuth"))
+ @ApiResponses(value = {
+ @ApiResponse(code = 401, message = "Authentication Error"),
+ @ApiResponse(code = 403, message = "Authorization Error"),
+ @ApiResponse(code = 500, message = "Internal Server Error")})
public Response healthcheck() {
return Response.status(Response.Status.OK).entity(new HealthCheckProvider().performHealthCheck()).build();
}
@GET
- @Path("statistics")
+ @Path("/statistics")
@ApiOperation(value = "Fetch current statistics",
- notes = "Provides current statistics of the Policy Xacml PDP component", response = StatisticsReport.class)
+ notes = "Provides current statistics of the Policy Xacml PDP component", response = StatisticsReport.class,
+ authorizations = @Authorization(value = "basicAuth"))
+ @ApiResponses(value = {
+ @ApiResponse(code = 401, message = "Authentication Error"),
+ @ApiResponse(code = 403, message = "Authorization Error"),
+ @ApiResponse(code = 500, message = "Internal Server Error")})
public Response statistics() {
return Response.status(Response.Status.OK).entity(new StatisticsProvider().fetchCurrentStatistics()).build();
}
+
+ @POST
+ @Path("/decision")
+ @ApiOperation(value = "Fetch the decision using specified decision parameters",
+ notes = "Returns the policy decision from Policy Xacml PDP", response = Decision.class,
+ authorizations = @Authorization(value = "basicAuth"),
+ tags = {"Decision",})
+ @ApiResponses(value = {@ApiResponse(code = 400, message = "Bad Request"),
+ @ApiResponse(code = 401, message = "Authentication Error"),
+ @ApiResponse(code = 403, message = "Authorization Error"),
+ @ApiResponse(code = 500, message = "Internal Server Error")})
+ public Response decision(Decision body) {
+ return Response.status(Response.Status.OK).entity(new DecisionProvider().fetchDecision()).build();
+ }
}
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/model/Decision.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/model/Decision.java
new file mode 100644
index 00000000..d09dac9c
--- /dev/null
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/model/Decision.java
@@ -0,0 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdpx.main.rest.model;
+
+public class Decision {
+
+ //TODO
+
+}
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsReport.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/model/StatisticsReport.java
index f37b1d36..36177034 100644
--- a/main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsReport.java
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/model/StatisticsReport.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.pdpx.main.rest;
+package org.onap.policy.pdpx.main.rest.model;
/**
* Class to represent statistics report of xacmlPdp service.
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/DecisionProvider.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/DecisionProvider.java
new file mode 100644
index 00000000..62190043
--- /dev/null
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/DecisionProvider.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdpx.main.rest.provider;
+
+import org.onap.policy.pdpx.main.rest.model.Decision;
+
+
+public class DecisionProvider {
+
+ /**
+ * Retrieves the policy decision for the specified parameters.
+ *
+ * @return the Decision object
+ */
+ public Decision fetchDecision() {
+ // placeholder
+ return new Decision();
+ }
+
+}
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/HealthCheckProvider.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/HealthCheckProvider.java
index e57ba180..1c77d552 100644
--- a/main/src/main/java/org/onap/policy/pdpx/main/rest/HealthCheckProvider.java
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/HealthCheckProvider.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.pdpx.main.rest;
+package org.onap.policy.pdpx.main.rest.provider;
import org.onap.policy.common.endpoints.report.HealthCheckReport;
import org.onap.policy.pdpx.main.startstop.XacmlPdpActivator;
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsProvider.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/StatisticsProvider.java
index f3580531..7b883280 100644
--- a/main/src/main/java/org/onap/policy/pdpx/main/rest/StatisticsProvider.java
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/provider/StatisticsProvider.java
@@ -18,9 +18,10 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.pdpx.main.rest;
+package org.onap.policy.pdpx.main.rest.provider;
import org.onap.policy.pdpx.main.rest.XacmlPdpStatisticsManager;
+import org.onap.policy.pdpx.main.rest.model.StatisticsReport;
import org.onap.policy.pdpx.main.startstop.XacmlPdpActivator;
/**
diff --git a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestStatisticsReport.java b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestStatisticsReport.java
index a116a154..eca28d0b 100644
--- a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestStatisticsReport.java
+++ b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestStatisticsReport.java
@@ -23,12 +23,14 @@ package org.onap.policy.pdpx.main.rest;
import com.openpojo.reflection.filters.FilterClassName;
import com.openpojo.validation.Validator;
import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.rule.impl.GetterMustExistRule;
import com.openpojo.validation.rule.impl.SetterMustExistRule;
import com.openpojo.validation.test.impl.GetterTester;
import com.openpojo.validation.test.impl.SetterTester;
import org.junit.Test;
import org.onap.policy.common.utils.validation.ToStringTester;
+import org.onap.policy.pdpx.main.rest.model.StatisticsReport;
/**
* Class to perform unit testing of {@link StatisticsReport}.
@@ -39,7 +41,7 @@ public class TestStatisticsReport {
@Test
public void testStatisticsReport() {
final Validator validator = ValidatorBuilder.create().with(new ToStringTester()).with(new SetterMustExistRule())
- .with(new SetterTester()).with(new GetterTester()).build();
+ .with(new GetterMustExistRule()).with(new SetterTester()).with(new GetterTester()).build();
validator.validate(StatisticsReport.class.getPackage().getName(),
new FilterClassName(StatisticsReport.class.getName()));
}
diff --git a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpRestServer.java b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpRestServer.java
index d9a0e9b0..2170c8a3 100644
--- a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpRestServer.java
+++ b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpRestServer.java
@@ -109,7 +109,7 @@ public class TestXacmlPdpRestServer {
clientConfig.register(feature);
final Client client = ClientBuilder.newClient(clientConfig);
- final WebTarget webTarget = client.target("http://localhost:6969/healthcheck");
+ final WebTarget webTarget = client.target("http://localhost:6969/policy/pdpx/v1/healthcheck");
final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
diff --git a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpStatistics.java b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpStatistics.java
index b38e92d2..ee05ff06 100644
--- a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpStatistics.java
+++ b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestXacmlPdpStatistics.java
@@ -38,6 +38,7 @@ import org.onap.policy.pdpx.main.PolicyXacmlPdpException;
import org.onap.policy.pdpx.main.parameters.CommonTestData;
import org.onap.policy.pdpx.main.parameters.RestServerParameters;
import org.onap.policy.pdpx.main.rest.XacmlPdpStatisticsManager;
+import org.onap.policy.pdpx.main.rest.model.StatisticsReport;
import org.onap.policy.pdpx.main.startstop.Main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -103,7 +104,7 @@ public class TestXacmlPdpStatistics {
clientConfig.register(feature);
final Client client = ClientBuilder.newClient(clientConfig);
- final WebTarget webTarget = client.target("http://localhost:6969/statistics");
+ final WebTarget webTarget = client.target("http://localhost:6969/policy/pdpx/v1/statistics");
final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);