2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
4 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.api.main.rest;
24 import static org.assertj.core.api.Assertions.assertThatCode;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertFalse;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
31 import java.io.IOException;
32 import java.lang.reflect.Constructor;
33 import java.lang.reflect.Modifier;
34 import java.security.SecureRandom;
35 import java.security.cert.X509Certificate;
36 import java.util.Base64;
37 import java.util.Properties;
39 import javax.net.ssl.SSLContext;
40 import javax.net.ssl.TrustManager;
41 import javax.net.ssl.X509TrustManager;
42 import javax.ws.rs.client.Client;
43 import javax.ws.rs.client.ClientBuilder;
44 import javax.ws.rs.client.Entity;
45 import javax.ws.rs.client.Invocation;
46 import javax.ws.rs.client.WebTarget;
47 import javax.ws.rs.core.MediaType;
48 import javax.ws.rs.core.Response;
50 import org.glassfish.jersey.client.ClientConfig;
51 import org.glassfish.jersey.client.ClientProperties;
52 import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
53 import org.junit.After;
54 import org.junit.Test;
55 import org.onap.policy.api.main.exception.PolicyApiException;
56 import org.onap.policy.api.main.parameters.ApiParameterGroup;
57 import org.onap.policy.api.main.parameters.CommonTestData;
58 import org.onap.policy.api.main.rest.provider.PolicyProvider;
59 import org.onap.policy.api.main.rest.provider.PolicyTypeProvider;
60 import org.onap.policy.api.main.startstop.Main;
61 import org.onap.policy.common.endpoints.http.server.RestServer;
62 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
63 import org.onap.policy.common.endpoints.report.HealthCheckReport;
64 import org.onap.policy.common.gson.GsonMessageBodyHandler;
65 import org.onap.policy.common.parameters.ParameterService;
66 import org.onap.policy.common.utils.coder.StandardCoder;
67 import org.onap.policy.common.utils.network.NetworkUtil;
68 import org.onap.policy.common.utils.resources.ResourceUtils;
69 import org.onap.policy.models.base.PfModelException;
70 import org.onap.policy.models.errors.concepts.ErrorResponse;
71 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
72 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
73 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
74 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
75 import org.slf4j.Logger;
76 import org.slf4j.LoggerFactory;
79 * Class to perform unit test of {@link ApiRestServer}.
81 * @author Chenfei Gao (cgao@research.att.com)
83 public class TestApiRestServer {
85 private static final Logger LOGGER = LoggerFactory.getLogger(TestApiRestServer.class);
86 private static final String NOT_ALIVE = "not alive";
87 private static final String ALIVE = "alive";
88 private static final String SELF = "self";
89 private static final String NAME = "Policy API";
91 private static final String HEALTHCHECK_ENDPOINT = "healthcheck";
92 private static final String STATISTICS_ENDPOINT = "statistics";
94 private static final String POLICYTYPES = "policytypes";
95 private static final String POLICYTYPES_TCA = "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app";
96 private static final String POLICYTYPES_COLLECTOR =
97 "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server";
98 private static final String POLICYTYPES_TCA_VERSION =
99 "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0";
100 private static final String POLICYTYPES_TCA_LATEST =
101 "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/latest";
102 private static final String POLICYTYPES_COLLECTOR_VERSION =
103 "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server/versions/1.0.0";
104 private static final String POLICYTYPES_COLLECTOR_LATEST =
105 "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server/versions/latest";
107 private static final String POLICYTYPES_TCA_POLICIES =
108 "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies";
109 private static final String POLICYTYPES_TCA_POLICIES_VCPE =
110 "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca";
111 private static final String POLICYTYPES_TCA_POLICIES_VCPE_VERSION = "policytypes/"
112 + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0";
113 private static final String POLICYTYPES_TCA_POLICIES_VCPE_LATEST = "policytypes/"
114 + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/latest";
115 private static final String POLICYTYPES_TCA_POLICIES_VCPE_DEPLOYED = "policytypes/"
116 + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/deployed";
118 private static final String GUARD_POLICIES =
119 "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies";
120 private static final String GUARD_POLICIES_VDNS_FL_LATEST =
121 "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout"
122 + "/versions/latest";
123 private static final String GUARD_POLICIES_VDNS_FL_DEPLOYED =
124 "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout"
125 + "/versions/deployed";
126 private static final String GUARD_POLICIES_VDNS_MINMAX_LATEST =
127 "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout"
128 + "/versions/latest";
129 private static final String GUARD_POLICIES_VDNS_FL_VERSION = "policytypes/"
130 + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1";
131 private static final String GUARD_POLICIES_VDNS_MINMAX_VERSION = "policytypes/"
132 + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1";
134 private static final String OPS_POLICIES =
135 "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies";
136 private static final String OPS_POLICIES_VCPE_LATEST =
137 "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart"
138 + "/versions/latest";
139 private static final String OPS_POLICIES_VCPE_DEPLOYED =
140 "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart"
141 + "/versions/deployed";
142 private static final String OPS_POLICIES_VDNS_LATEST =
143 "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.scaleout"
144 + "/versions/latest";
145 private static final String OPS_POLICIES_VFIREWALL_LATEST =
146 "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.modifyconfig"
147 + "/versions/latest";
148 private static final String OPS_POLICIES_VCPE_VERSION = "policytypes/"
149 + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart/versions/1";
150 private static final String OPS_POLICIES_VDNS_VERSION = "policytypes/"
151 + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.scaleout/versions/1";
152 private static final String OPS_POLICIES_VFIREWALL_VERSION = "policytypes/"
153 + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.modifyconfig/versions/1";
155 private static final String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore";
156 private static final CommonTestData COMMON_TEST_DATA = new CommonTestData();
158 private RestServer restServer;
159 private StandardCoder standardCoder = new StandardCoder();
163 private String[] toscaPolicyResourceNames = {
164 "policies/vCPE.policy.monitoring.input.tosca.json",
165 "policies/vDNS.policy.monitoring.input.tosca.json",
166 "policies/vFirewall.policy.monitoring.input.tosca.json",
169 private String[] toscaPolicyTypeResourceNames = {
170 "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json",
171 "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.json"
174 private String[] legacyGuardPolicyResourceNames = {
175 "policies/vDNS.policy.guard.frequency.input.json",
176 "policies/vDNS.policy.guard.minmax.input.json",
179 private String[] legacyOperationalPolicyResourceNames = {
180 "policies/vCPE.policy.operational.input.json",
181 "policies/vDNS.policy.operational.input.json",
182 "policies/vFirewall.policy.operational.input.json"
184 private static PolicyModelsProviderParameters providerParams;
185 private static ApiParameterGroup apiParamGroup;
186 private static PolicyProvider policyProvider;
187 private static PolicyTypeProvider policyTypeProvider;
192 * Initializes parameters.
194 * @throws PfModelException the PfModel parsing exception
196 private void setupParameters() throws PfModelException {
198 standardCoder = new StandardCoder();
199 providerParams = new PolicyModelsProviderParameters();
200 providerParams.setDatabaseDriver("org.h2.Driver");
201 providerParams.setDatabaseUrl("jdbc:h2:mem:testdb");
202 providerParams.setDatabaseUser("policy");
203 providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
204 providerParams.setPersistenceUnit("ToscaConceptTest");
205 apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams);
206 ParameterService.register(apiParamGroup, true);
207 policyTypeProvider = new PolicyTypeProvider();
208 policyProvider = new PolicyProvider();
212 * Method for cleanup after each test.
215 public void teardown() throws Exception {
216 if (policyTypeProvider != null) {
217 policyTypeProvider.close();
219 if (policyProvider != null) {
220 policyProvider.close();
223 stopApiService(main);
224 } else if (restServer != null) {
230 public void testHealthCheckSuccess() {
233 main = startApiService(true);
234 final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
235 final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
236 validateHealthCheckReport(NAME, SELF, true, 200, ALIVE, report);
237 } catch (final Exception exp) {
238 LOGGER.error("testHealthCheckSuccess failed", exp);
239 fail("Test should not throw an exception");
244 public void testHealthCheckFailure() throws InterruptedException, IOException {
246 port = NetworkUtil.allocPort();
247 final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port);
248 restServerParams.setName(CommonTestData.API_GROUP_NAME);
249 restServer = new RestServer(restServerParams, null, ApiRestController.class);
252 final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
253 final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
254 validateHealthCheckReport(NAME, SELF, false, 500, NOT_ALIVE, report);
255 assertTrue(restServer.isAlive());
256 assertTrue(restServer.toString().startsWith("RestServer [servers="));
257 } catch (final Exception exp) {
258 LOGGER.error("testHealthCheckFailure failed", exp);
259 fail("Test should not throw an exception");
264 public void testHttpsHealthCheckSuccess() {
267 main = startApiService(false);
268 final Invocation.Builder invocationBuilder = sendHttpsRequest(HEALTHCHECK_ENDPOINT);
269 final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
270 validateHealthCheckReport(NAME, SELF, true, 200, ALIVE, report);
271 } catch (final Exception exp) {
272 LOGGER.error("testHttpsHealthCheckSuccess failed", exp);
273 fail("Test should not throw an exception");
278 public void testApiStatistics_200() {
281 main = startApiService(true);
282 Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
283 StatisticsReport report = invocationBuilder.get(StatisticsReport.class);
284 validateStatisticsReport(report, 200);
285 updateApiStatistics();
286 invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
287 report = invocationBuilder.get(StatisticsReport.class);
288 validateStatisticsReport(report, 200);
289 ApiStatisticsManager.resetAllStatistics();
290 } catch (final Exception exp) {
291 LOGGER.error("testApiStatistics_200 failed", exp);
292 fail("Test should not throw an exception");
297 public void testApiStatistics_500() throws Exception {
299 port = NetworkUtil.allocPort();
300 final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port);
301 restServerParams.setName(CommonTestData.API_GROUP_NAME);
302 restServer = new RestServer(restServerParams, null, ApiRestController.class);
305 final Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
306 final StatisticsReport report = invocationBuilder.get(StatisticsReport.class);
307 validateStatisticsReport(report, 500);
308 ApiStatisticsManager.resetAllStatistics();
309 } catch (final Exception exp) {
310 LOGGER.error("testApiStatistics_500 failed", exp);
311 fail("Test should not throw an exception");
316 public void testHttpsApiStatistics() {
319 main = startApiService(false);
320 final Invocation.Builder invocationBuilder = sendHttpsRequest(STATISTICS_ENDPOINT);
321 final StatisticsReport report = invocationBuilder.get(StatisticsReport.class);
322 validateStatisticsReport(report, 200);
323 } catch (final Exception exp) {
324 LOGGER.error("testHttpsApiStatistics failed", exp);
325 fail("Test should not throw an exception");
330 public void testApiStatisticsConstructorIsPrivate() {
333 final Constructor<ApiStatisticsManager> constructor = ApiStatisticsManager.class.getDeclaredConstructor();
334 assertTrue(Modifier.isPrivate(constructor.getModifiers()));
335 constructor.setAccessible(true);
336 constructor.newInstance();
337 } catch (final Exception exp) {
338 assertTrue(exp.getCause().toString().contains("Instantiation of the class is not allowed"));
343 public void testCreatePolicyTypes() {
345 assertThatCode(() -> {
346 main = startApiService(true);
347 for (String resrcName : toscaPolicyTypeResourceNames) {
348 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
349 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
350 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
351 assertNotNull(response);
352 assertFalse(response.getPolicyTypes().get(0).isEmpty());
354 }).doesNotThrowAnyException();
358 public void testReadPolicyTypes() {
360 assertThatCode(() -> {
361 main = startApiService(true);
362 Response rawResponse = readResource(POLICYTYPES, true);
363 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
364 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
365 assertTrue(response.getPolicyTypes().isEmpty());
367 rawResponse = readResource(POLICYTYPES_TCA, true);
368 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
369 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
370 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:null does not exist",
371 error.getErrorMessage());
373 rawResponse = readResource(POLICYTYPES_TCA_VERSION, true);
374 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
375 error = rawResponse.readEntity(ErrorResponse.class);
376 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
377 error.getErrorMessage());
379 rawResponse = readResource(POLICYTYPES_TCA_LATEST, true);
380 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
381 error = rawResponse.readEntity(ErrorResponse.class);
382 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:null does not exist",
383 error.getErrorMessage());
385 rawResponse = readResource(POLICYTYPES_COLLECTOR, true);
386 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
387 error = rawResponse.readEntity(ErrorResponse.class);
388 assertEquals("policy type with ID "
389 + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:null does not exist",
390 error.getErrorMessage());
392 rawResponse = readResource(POLICYTYPES_COLLECTOR_VERSION, true);
393 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
394 error = rawResponse.readEntity(ErrorResponse.class);
395 assertEquals("policy type with ID "
396 + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 does not exist",
397 error.getErrorMessage());
399 rawResponse = readResource(POLICYTYPES_COLLECTOR_LATEST, true);
400 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
401 error = rawResponse.readEntity(ErrorResponse.class);
402 assertEquals("policy type with ID "
403 + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:null does not exist",
404 error.getErrorMessage());
405 }).doesNotThrowAnyException();
409 public void testReadPolicyTypesPersistent() throws Exception {
412 main = startApiService(true);
413 for (String resrcName : toscaPolicyTypeResourceNames) {
414 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
415 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
416 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
417 assertNotNull(response);
418 assertFalse(response.getPolicyTypes().get(0).isEmpty());
421 for (String resrcName : toscaPolicyResourceNames) {
422 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
423 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
426 Response rawResponse = readResource(POLICYTYPES_TCA, true);
427 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
429 rawResponse = readResource(POLICYTYPES_TCA_VERSION, true);
430 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
433 rawResponse = readResource(POLICYTYPES_TCA_LATEST, true);
434 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
437 rawResponse = readResource(POLICYTYPES_COLLECTOR, true);
438 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
441 rawResponse = readResource(POLICYTYPES_COLLECTOR_VERSION, true);
442 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
445 rawResponse = readResource(POLICYTYPES_COLLECTOR_LATEST, true);
446 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
451 public void testDeletePolicyType() {
453 assertThatCode(() -> {
454 main = startApiService(true);
455 Response rawResponse = deleteResource(POLICYTYPES_TCA_VERSION, true);
456 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
457 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
458 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
459 error.getErrorMessage());
461 rawResponse = deleteResource(POLICYTYPES_COLLECTOR_VERSION, true);
462 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
463 error = rawResponse.readEntity(ErrorResponse.class);
464 assertEquals("policy type with ID "
465 + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 does not exist",
466 error.getErrorMessage());
467 }).doesNotThrowAnyException();
471 public void testDeletePolicyTypePersistent() throws Exception {
473 setupParameters(); //setup DB
475 main = startApiService(true);// create policy types
476 for (String resrcName : toscaPolicyTypeResourceNames) {
477 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
478 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
479 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
480 assertNotNull(response);
481 assertFalse(response.getPolicyTypes().get(0).isEmpty());
483 Response rawResponse = deleteResource(POLICYTYPES_TCA_VERSION, true);
484 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
489 public void testCreatePolicies() {
491 assertThatCode(() -> {
492 main = startApiService(true);
493 for (String resrcName : toscaPolicyResourceNames) {
494 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
495 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
496 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
497 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
498 error.getErrorMessage());
500 }).doesNotThrowAnyException();
504 public void testReadPolicies() {
506 assertThatCode(() -> {
507 main = startApiService(true);
508 Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES, true);
509 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
510 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
511 assertEquals("policy with ID null:null and "
512 + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
513 error.getErrorMessage());
515 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE, true);
516 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
517 error = rawResponse.readEntity(ErrorResponse.class);
518 assertEquals("policy with ID onap.restart.tca:null and "
519 + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
520 error.getErrorMessage());
522 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
523 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
524 error = rawResponse.readEntity(ErrorResponse.class);
525 assertEquals("policy with ID onap.restart.tca:1.0.0 and "
526 + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
527 error.getErrorMessage());
529 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_LATEST, true);
530 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
531 error = rawResponse.readEntity(ErrorResponse.class);
532 assertEquals("policy with ID onap.restart.tca:null and "
533 + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
534 error.getErrorMessage());
535 }).doesNotThrowAnyException();
539 public void testReadPoliciesPersistent() throws Exception {
542 main = startApiService(true);
543 for (String resrcName : toscaPolicyTypeResourceNames) {
544 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
545 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
546 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
547 assertNotNull(response);
548 assertFalse(response.getPolicyTypes().get(0).isEmpty());
551 for (String resrcName : toscaPolicyResourceNames) {
552 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
553 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
556 Response rawResponse;
557 rawResponse = readResource(POLICYTYPES_TCA, true);
558 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
560 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE, true);
561 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
563 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
564 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
566 rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_LATEST, true);
567 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
572 public void testDeletePolicies() {
574 assertThatCode(() -> {
575 main = startApiService(true);
576 Response rawResponse = deleteResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
577 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
578 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
579 assertEquals("policy with ID onap.restart.tca:1.0.0 and "
580 + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
581 error.getErrorMessage());
582 }).doesNotThrowAnyException();
586 public void testDeletePolicyVersion() throws Exception {
588 setupParameters(); //setup DB
590 main = startApiService(true);// create policy types
591 for (String resrcName : toscaPolicyTypeResourceNames) {
592 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
593 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
594 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
595 assertNotNull(response);
596 assertFalse(response.getPolicyTypes().get(0).isEmpty());
598 for (String resrcName : toscaPolicyResourceNames) {
599 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
600 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
602 Response rawResponse = deleteResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
603 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
607 public void testGetAllVersionOfPolicy() throws Exception {
609 setupParameters(); //setup DB
611 main = startApiService(true);// create policy types
612 for (String resrcName : toscaPolicyTypeResourceNames) {
613 Response rawResponse = createResource(POLICYTYPES, resrcName, true);
614 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
615 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
616 assertNotNull(response);
617 assertFalse(response.getPolicyTypes().get(0).isEmpty());
619 for (String resrcName : toscaPolicyResourceNames) {
620 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
621 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
623 Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES, true);
624 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
629 public void testCreateGuardPolicies() {
631 assertThatCode(() -> {
632 main = startApiService(true);
633 for (String resrcName : legacyGuardPolicyResourceNames) {
634 Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true);
635 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
637 }).doesNotThrowAnyException();
641 public void testCreateGuardPolicies1() throws Exception {
643 setupParameters(); //setup DB
645 main = startApiService(true);
646 for (String resrcName : legacyGuardPolicyResourceNames) {
647 Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true);
648 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
654 public void testCreateOperationalPolicies() {
656 assertThatCode(() -> {
657 main = startApiService(true);
658 for (String resrcName : legacyOperationalPolicyResourceNames) {
659 Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true);
660 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
662 }).doesNotThrowAnyException();
666 public void testCreateOperationalPolicies1() throws Exception {
668 setupParameters(); //setup DB
670 main = startApiService(true);
671 for (String resrcName : legacyOperationalPolicyResourceNames) {
672 Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true);
673 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
679 public void testReadGuardPolicies() {
681 assertThatCode(() -> {
682 main = startApiService(true);
683 Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_LATEST, true);
684 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
685 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
686 assertEquals("no policy found for policy: guard.frequency.scaleout:null",
687 error.getErrorMessage());
689 rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
690 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
691 error = rawResponse.readEntity(ErrorResponse.class);
692 assertEquals("no policy found for policy: guard.frequency.scaleout:1",
693 error.getErrorMessage());
695 rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_LATEST, true);
696 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
697 error = rawResponse.readEntity(ErrorResponse.class);
698 assertEquals("no policy found for policy: guard.minmax.scaleout:null",
699 error.getErrorMessage());
701 rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true);
702 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
703 error = rawResponse.readEntity(ErrorResponse.class);
704 assertEquals("no policy found for policy: guard.minmax.scaleout:1",
705 error.getErrorMessage());
706 }).doesNotThrowAnyException();
710 public void testReadGuardPolicies1() throws Exception {
712 setupParameters(); //setup DB
714 main = startApiService(true);
715 for (String resrcName : legacyGuardPolicyResourceNames) {
716 Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true);
717 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
720 Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_LATEST, true);
721 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
724 rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
725 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
727 rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_LATEST, true);
728 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
731 rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true);
732 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
737 public void testReadOperationalPolicies() {
739 assertThatCode(() -> {
740 main = startApiService(true);
741 Response rawResponse = readResource(OPS_POLICIES_VCPE_LATEST, true);
742 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
743 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
744 assertEquals("no policy found for policy: operational.restart:null",
745 error.getErrorMessage());
747 rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true);
748 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
749 error = rawResponse.readEntity(ErrorResponse.class);
750 assertEquals("no policy found for policy: operational.restart:1",
751 error.getErrorMessage());
753 rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true);
754 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
755 error = rawResponse.readEntity(ErrorResponse.class);
756 assertEquals("no policy found for policy: operational.scaleout:null",
757 error.getErrorMessage());
759 rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true);
760 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
761 error = rawResponse.readEntity(ErrorResponse.class);
762 assertEquals("no policy found for policy: operational.scaleout:1",
763 error.getErrorMessage());
765 rawResponse = readResource(OPS_POLICIES_VFIREWALL_LATEST, true);
766 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
767 error = rawResponse.readEntity(ErrorResponse.class);
768 assertEquals("no policy found for policy: operational.modifyconfig:null",
769 error.getErrorMessage());
771 rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true);
772 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
773 error = rawResponse.readEntity(ErrorResponse.class);
774 assertEquals("no policy found for policy: operational.modifyconfig:1",
775 error.getErrorMessage());
776 }).doesNotThrowAnyException();
780 public void testReadOperationalPolicies1() throws Exception {
782 setupParameters(); //setup DB
784 main = startApiService(true);
785 for (String resrcName : legacyOperationalPolicyResourceNames) {
786 Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true);
787 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
790 Response rawResponse = readResource(OPS_POLICIES_VCPE_LATEST, true);
791 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
794 rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true);
795 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
798 rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true);
799 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
802 rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true);
803 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
806 rawResponse = readResource(OPS_POLICIES_VFIREWALL_LATEST, true);
807 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
810 rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true);
811 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
817 public void testDeleteGuardPolicy() {
819 assertThatCode(() -> {
820 main = startApiService(true);
821 Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
822 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
823 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
824 assertEquals("no policy found for policy: guard.frequency.scaleout:1",
825 error.getErrorMessage());
826 }).doesNotThrowAnyException();
830 public void testDeleteGuardPolicy1() throws Exception {
832 setupParameters(); //setup DB
833 main = startApiService(true);
835 for (String resrcName : legacyGuardPolicyResourceNames) {
836 Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true);
837 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
840 Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
841 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
846 public void testGetDeployedVersionsOfGuardPolicy() {
847 assertThatCode(() -> {
848 main = startApiService(true);
849 Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_DEPLOYED, true);
850 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
851 }).doesNotThrowAnyException();
855 public void testDeleteOperationalPolicy() {
857 assertThatCode(() -> {
858 main = startApiService(true);
859 Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true);
860 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
861 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
862 assertEquals("no policy found for policy: operational.restart:1",
863 error.getErrorMessage());
864 }).doesNotThrowAnyException();
868 public void testDeleteOperationalPolicy1() throws Exception {
870 setupParameters(); //setup DB
872 main = startApiService(true);
873 for (String resrcName : legacyOperationalPolicyResourceNames) {
874 Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true);
875 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
877 Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true);
878 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
883 public void testHttpsCreatePolicyTypes() {
885 assertThatCode(() -> {
886 main = startApiService(false);
887 for (String resrcName : toscaPolicyTypeResourceNames) {
888 Response rawResponse = createResource(POLICYTYPES, resrcName, false);
889 assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
890 ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
891 assertNotNull(response);
892 assertFalse(response.getPolicyTypes().get(0).isEmpty());
894 }).doesNotThrowAnyException();
898 public void testHttpsCreatePolicies() {
900 assertThatCode(() -> {
901 main = startApiService(false);
902 for (String resrcName : toscaPolicyResourceNames) {
903 Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, false);
904 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
905 ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
906 assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
907 error.getErrorMessage());
909 }).doesNotThrowAnyException();
913 public void testHttpsCreateGuardPolicies() {
915 assertThatCode(() -> {
916 main = startApiService(false);
917 for (String resrcName : legacyGuardPolicyResourceNames) {
918 Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, false);
919 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
921 }).doesNotThrowAnyException();
925 public void testHttpsCreateOperationalPolicies() {
927 assertThatCode(() -> {
928 main = startApiService(false);
929 for (String resrcName : legacyOperationalPolicyResourceNames) {
930 Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, false);
931 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
933 }).doesNotThrowAnyException();
937 public void testGetDeployedVersionsOfPolicy() {
938 assertThatCode(() -> {
939 main = startApiService(true);
940 Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_DEPLOYED, true);
941 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
942 }).doesNotThrowAnyException();
946 public void testGetLatestVersionOfOperationalPolicy() {
947 assertThatCode(() -> {
948 main = startApiService(true);
949 Response rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true);
950 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
951 }).doesNotThrowAnyException();
955 public void testGetSpecificVersionOfOperationalPolicy() {
956 assertThatCode(() -> {
957 main = startApiService(true);
958 Response rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true);
959 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
960 }).doesNotThrowAnyException();
964 public void testGetDeployedVersionsOfOperationalPolicy() {
965 assertThatCode(() -> {
966 main = startApiService(true);
967 Response rawResponse = readResource(OPS_POLICIES_VCPE_DEPLOYED, true);
968 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
969 }).doesNotThrowAnyException();
973 public void testDeleteSpecificVersionOfOperationalPolicy() {
974 assertThatCode(() -> {
975 main = startApiService(true);
976 Response rawResponse = deleteResource(OPS_POLICIES_VDNS_VERSION, true);
977 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
978 }).doesNotThrowAnyException();
981 private Response createResource(String endpoint, String resourceName, boolean http) throws Exception {
983 ToscaServiceTemplate rawServiceTemplate = standardCoder.decode(
984 ResourceUtils.getResourceAsString(resourceName), ToscaServiceTemplate.class);
985 final Invocation.Builder invocationBuilder;
988 invocationBuilder = sendHttpRequest(endpoint);
990 invocationBuilder = sendHttpsRequest(endpoint);
993 Entity<ToscaServiceTemplate> entity = Entity.entity(rawServiceTemplate, MediaType.APPLICATION_JSON);
994 return invocationBuilder.post(entity);
997 private Response createGuardPolicy(String endpoint, String resourceName, boolean http) throws Exception {
999 LegacyGuardPolicyInput rawGuardPolicy = standardCoder.decode(
1000 ResourceUtils.getResourceAsString(resourceName), LegacyGuardPolicyInput.class);
1001 final Invocation.Builder invocationBuilder;
1004 invocationBuilder = sendHttpRequest(endpoint);
1006 invocationBuilder = sendHttpsRequest(endpoint);
1009 Entity<LegacyGuardPolicyInput> entity = Entity.entity(rawGuardPolicy, MediaType.APPLICATION_JSON);
1010 return invocationBuilder.post(entity);
1013 private Response createOperationalPolicy(String endpoint, String resourceName, boolean http) throws Exception {
1015 LegacyOperationalPolicy rawOpsPolicy = standardCoder.decode(
1016 ResourceUtils.getResourceAsString(resourceName), LegacyOperationalPolicy.class);
1017 final Invocation.Builder invocationBuilder;
1020 invocationBuilder = sendHttpRequest(endpoint);
1022 invocationBuilder = sendHttpsRequest(endpoint);
1025 Entity<LegacyOperationalPolicy> entity = Entity.entity(rawOpsPolicy, MediaType.APPLICATION_JSON);
1026 return invocationBuilder.post(entity);
1029 private Response readResource(String endpoint, boolean http) throws Exception {
1031 final Invocation.Builder invocationBuilder;
1034 invocationBuilder = sendHttpRequest(endpoint);
1036 invocationBuilder = sendHttpsRequest(endpoint);
1039 return invocationBuilder.get();
1043 private Response deleteResource(String endpoint, boolean http) throws Exception {
1045 final Invocation.Builder invocationBuilder;
1048 invocationBuilder = sendHttpRequest(endpoint);
1050 invocationBuilder = sendHttpsRequest(endpoint);
1053 return invocationBuilder.delete();
1056 private Main startApiService(final boolean http) throws Exception {
1057 port = NetworkUtil.allocPort();
1059 final String[] apiConfigParameters = new String[2];
1061 COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters.json",
1062 "src/test/resources/parameters/ApiConfigParametersXXX.json", port);
1063 apiConfigParameters[0] = "-c";
1064 apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParametersXXX.json";
1066 final Properties systemProps = System.getProperties();
1067 systemProps.put("javax.net.ssl.keyStore", KEYSTORE);
1068 systemProps.put("javax.net.ssl.keyStorePassword", "Pol1cy_0nap");
1069 System.setProperties(systemProps);
1070 COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json",
1071 "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json", port);
1072 apiConfigParameters[0] = "-c";
1073 apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json";
1075 return new Main(apiConfigParameters);
1078 private void stopApiService(final Main main) throws PolicyApiException {
1083 private Invocation.Builder sendHttpRequest(final String endpoint) throws Exception {
1085 final ClientConfig clientConfig = new ClientConfig();
1087 final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34");
1088 clientConfig.register(feature);
1090 final Client client = ClientBuilder.newClient(clientConfig);
1092 client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
1093 client.register(GsonMessageBodyHandler.class);
1095 final WebTarget webTarget = client.target("http://localhost:" + port + "/policy/api/v1/" + endpoint);
1097 final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
1099 if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) {
1100 throw new IllegalStateException("cannot connect to port " + port);
1102 return invocationBuilder;
1105 private Invocation.Builder sendHttpsRequest(final String endpoint) throws Exception {
1107 final TrustManager[] noopTrustManager = new TrustManager[] { new X509TrustManager() {
1110 public X509Certificate[] getAcceptedIssuers() {
1111 return new X509Certificate[0];
1115 public void checkClientTrusted(final java.security.cert.X509Certificate[] certs, final String authType) {}
1118 public void checkServerTrusted(final java.security.cert.X509Certificate[] certs, final String authType) {}
1121 final SSLContext sc = SSLContext.getInstance("TLSv1.2");
1122 sc.init(null, noopTrustManager, new SecureRandom());
1123 final ClientBuilder clientBuilder = ClientBuilder.newBuilder().sslContext(sc).hostnameVerifier((host,
1125 final Client client = clientBuilder.build();
1126 final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34");
1127 client.register(feature);
1129 client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
1130 client.register(GsonMessageBodyHandler.class);
1132 final WebTarget webTarget = client.target("https://localhost:" + port + "/policy/api/v1/" + endpoint);
1134 final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
1136 if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) {
1137 throw new IllegalStateException("cannot connect to port " + port);
1139 return invocationBuilder;
1142 private void updateApiStatistics() {
1144 ApiStatisticsManager.updateTotalApiCallCount();
1145 ApiStatisticsManager.updateApiCallSuccessCount();
1146 ApiStatisticsManager.updateApiCallFailureCount();
1147 ApiStatisticsManager.updateTotalPolicyGetCount();
1148 ApiStatisticsManager.updateTotalPolicyPostCount();
1149 ApiStatisticsManager.updateTotalPolicyTypeGetCount();
1150 ApiStatisticsManager.updateTotalPolicyTypePostCount();
1151 ApiStatisticsManager.updatePolicyGetSuccessCount();
1152 ApiStatisticsManager.updatePolicyGetFailureCount();
1153 ApiStatisticsManager.updatePolicyPostSuccessCount();
1154 ApiStatisticsManager.updatePolicyPostFailureCount();
1155 ApiStatisticsManager.updatePolicyTypeGetSuccessCount();
1156 ApiStatisticsManager.updatePolicyTypeGetFailureCount();
1157 ApiStatisticsManager.updatePolicyTypePostSuccessCount();
1158 ApiStatisticsManager.updatePolicyTypePostFailureCount();
1161 private void validateStatisticsReport(final StatisticsReport report, final int code) {
1163 assertEquals(code, report.getCode());
1166 private void validateHealthCheckReport(final String name, final String url, final boolean healthy, final int code,
1167 final String message, final HealthCheckReport report) {
1169 assertEquals(name, report.getName());
1170 assertEquals(url, report.getUrl());
1171 assertEquals(healthy, report.isHealthy());
1172 assertEquals(code, report.getCode());
1173 assertEquals(message, report.getMessage());