Merge "Add document for policy-api smoke test"
[policy/parent.git] / docs / development / devtools / devtools.rst
index 1e2fd49..cef0679 100644 (file)
@@ -58,7 +58,7 @@ ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the
     policy/xacml-pdp \
     policy/distribution \
     policy/gui \
-    policy/engine "
+    policy/clamp "
 
     ##
     ## Help screen and exit condition (i.e. too few arguments)
@@ -152,7 +152,7 @@ Execution of the script above results in the following directory hierarchy in yo
     *  ~/git/onap/policy/docker
     *  ~/git/onap/policy/drools-applications
     *  ~/git/onap/policy/drools-pdp
-    *  ~/git/onap/policy/engine
+    *  ~/git/onap/policy/clamp
     *  ~/git/onap/policy/apex-pdp
     *  ~/git/onap/policy/xacml-pdp
     *  ~/git/onap/policy/distribution
@@ -198,10 +198,7 @@ Building ONAP Policy Framework Components
             <module>drools-applications</module>
             <module>distribution</module>
             <module>gui</module>
-            <!-- The engine repo is being deprecated,
-            and can be ommitted if not working with
-            legacy api and components. -->
-            <module>engine</module>
+            <module>clamp</module>
         </modules>
     </project>
 
@@ -233,7 +230,7 @@ Developing and Debugging each Policy Component
 Running a MariaDb Instance
 ++++++++++++++++++++++++++
 
-The Policy Framework requires a MariaDb instance running. The easiest way to do this is to run a docker image locally. 
+The Policy Framework requires a MariaDb instance running. The easiest way to do this is to run a docker image locally.
 
 One example on how to do this is to use the scripts used by the policy/api S3P tests.
 
@@ -267,6 +264,39 @@ An example of running the api using a docker compose script is located in the Po
 
 `Policy CSIT API Docker Compose <https://gerrit.onap.org/r/gitweb?p=integration/csit.git;a=blob;f=scripts/policy/docker-compose-api.yml;h=e32190f1e6cb6d9b64ddf53a2db2c746723a0c6a;hb=refs/heads/master>`_
 
+Running the Smoke Tests
+***********************
+
+The following links contain instructions on how to run the smoke tests. These may be helpful to developers to become
+familiar with the Policy Framework components and test any local changes.
+
+.. toctree::
+   :maxdepth: 1
+
+   policy-gui-controlloop-smoke.rst
+   db-migrator-smoke.rst
+   cl-participants-smoke.rst
+   clamp-smoke.rst
+   clamp-cl-participant-protocol-smoke.rst
+   policy-participant-smoke.rst
+   api-smoke.rst
+
+..
+   pap-smoke.rst
+
+..
+   apex-smoke.rst
+
+..
+   drools-smoke.rst
+
+..
+   xacml-smoke.rst
+
+..
+   distribution-smoke.rst
+
+
 Running the Stability/Performance Tests
 ***************************************
 
@@ -282,4 +312,132 @@ familiar with the Policy Framework components and test any local changes.
    drools-s3p.rst
    xacml-s3p.rst
    distribution-s3p.rst
+   clamp-s3p.rst
+
+Running the Pairwise Tests
+**************************
+
+The following links contain instructions on how to run the pairwise tests. These may be helpful to developers check that
+the Policy Framework works in a full ONAP deployment.
+
+.. toctree::
+   :maxdepth: 1
+
+   clamp-policy.rst
+
+   clamp-dcae.rst
+
+   policy-cds.rst
+
+..
+   api-pairwise.rst
+
+..
+   pap-pairwise.rst
+
+..
+   apex-pairwise.rst
+
+..
+   drools-pairwise.rst
+
+..
+   xacml-pairwise.rst
+
+..
+   distribution-pairwise.rst
+
+
+Generating Swagger Documentation
+********************************
+The `Policy Parent Integration POM <https://github.com/onap/policy-parent/blob/master/integration/pom.xml>`_ contains a *generateSwaggerDocs* profile. This
+profile can be activated on any module that has a Swagger endopint. When active, this profile creates a tarball in Nexus with the name
+*<project-artifactId>-swagger-docs.tar.gz*. The tarball contains the fillowing files:
+
+.. code-block:: bash
+
+    swagger/swagger.html
+    swagger/swagger.json
+    swagger/swagger.pdf
+
+The profile is activated when:
+
+1. The following property is defined at the top of the *pom.xml* file for a module
+
+    .. code-block:: bash
+
+        <!--  This property triggers generation of the Swagger documents -->
+        <swagger.generation.phase>post-integration-test</swagger.generation.phase>
+
+    See the `CLAMP runtime POM <https://github.com/onap/policy-clamp/blob/master/runtime/pom.xml>`_ for an example of the usage of this property.
+
+2. Unit tests are being executed in the build, in other wirds when the *skipTests* flag is *false*.
+
+You **must** create a unit test in your module that generates the following file:
+
+.. code-block:: bash
+
+    src/test/resources/swagger/swagger.json
+
+Typically, you do this by starting your REST endpoint in a unit test, issuing a REST call to get the Swagger API documentation. The test case below is an example
+of such a test case.
+
+.. code-block:: java
+
+   @Test
+   public void testSwaggerJson() throws Exception {
+       ResponseEntity<String> httpsEntity = getRestTemplate()
+               .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/api-doc", String.class);
+       assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
+       assertThat(httpsEntity.getBody()).contains("swagger");
+       FileUtils.writeStringToFile(new File("target/swagger/swagger.json"), httpsEntity.getBody(),
+               Charset.defaultCharset());
+   }
+
+See `this unit test case <https://github.com/onap/policy-clamp/blob/master/runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java>`_
+for the full example.
+
+Running the DMaaP Simulator during Development
+**********************************************
+It is sometimes convenient to run the DMaaP simulator during development. You can run it from the command line using Maven or from within your IDE.
+
+Running on the Command Line
++++++++++++++++++++++++++++
+1. Check out the policy models repository
+2. Go to the *models-sim/policy-models-simulators* subdirectory in the policy-models repo
+3. Run the following Maven command:
+
+   .. code-block:: bash
+
+      mvn exec:java  -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/simParameters.json"
+
+Running in Eclipse
+++++++++++++++++++
+1. Check out the policy models repository
+2. Go to the *models-sim/policy-models-simulators* module in the policy-models repo
+3. Specify a run configuration using the class *org.onap.policy.models.simulators.Main* as the main class
+4. Specify an argument of *src/test/resources/simParameters.json* to the run configuration
+5. Run the configuration
+
+Specifying a local configuration file
++++++++++++++++++++++++++++++++++++++
 
+You may specify a local configuration file instead of *src/test/resources/simParameters.json* on the command line or as an arument in the run configuration in eclipse:
+
+.. code-block:: json
+
+   {
+     "dmaapProvider": {
+       "name": "DMaaP simulator",
+       "topicSweepSec": 900
+     },
+     "restServers": [
+       {
+         "name": "DMaaP simulator",
+         "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1",
+         "host": "localhost",
+         "port": 3904,
+         "https": false
+       }
+     ]
+   }