summaryrefslogtreecommitdiffstats
path: root/javatoscachecker/service
diff options
context:
space:
mode:
authorSerban Jora <jora@research.att.com>2017-09-12 15:27:05 -0400
committerSerban Jora <jora@research.att.com>2017-09-12 15:27:05 -0400
commit1a6ec7b3c4343436a7d1135e0a88db07537c396e (patch)
tree6cf5a70cbd2bd50d317d4f56777555f1848449f7 /javatoscachecker/service
parent6ea8d4902f1edd025044dc63c69f35a81fa126ab (diff)
Adds deploy plugin to maven poms
Also adds more doc to service README and removes some printouts Change-Id: I4d5a1285264ce1fbfc40297114bdb11a10a5059f Signed-off-by: Serban Jora <jora@research.att.com> Issues-Id: MODELING-17
Diffstat (limited to 'javatoscachecker/service')
-rw-r--r--javatoscachecker/service/README47
-rw-r--r--javatoscachecker/service/pom.xml271
2 files changed, 191 insertions, 127 deletions
diff --git a/javatoscachecker/service/README b/javatoscachecker/service/README
index 94c5dde..8853dd7 100644
--- a/javatoscachecker/service/README
+++ b/javatoscachecker/service/README
@@ -1,6 +1,45 @@
-checker service usage
+This sub-project exposes the TOSCA yaml checker functionality as a REST based service.
+The service implemetation is based on the spring framework and contains a built-in default configuration that will run the service at port 8080 over plain http.
-A checking request is done with respect to a namespace that a client names. Each such namespace is backed by an
-in-memory catalog.
-A checking request can
+To start the service:
+ java -jar Service-0.0.1-SNAPSHOT.jar
+Sample client usage (windows power shell):
+
+ PS C:\Users\serban> Invoke-WebRequest -Uri http://localhost:8080/check_template/ -Method Post -ContentType application/json -InFile C:\src\asc-tosca\DCAE\v3\Database\Postgres-generic\schema.yaml
+
+
+With stateful 'namespaces':
+
+ PS C:\Users\serban> Invoke-WebRequest -Uri http://localhost:8080/check_template/database/schema.yaml -Method Post -ContentType application/json -InFile C:\src\asc-tosca\DCAE\v3\Database\Postgres-generic\schema.yaml
+ PS C:\Users\serban> Invoke-WebRequest -Uri http://localhost:8080/check_template/database -Method Post -ContentType application/json -InFile C:\src\asc-tosca\DCAE\v3\Database\Postgres-generic\template_postgres.yaml
+
+The first call creates the 'database' namespace and registers the submitted template as 'schema.yaml'. The second call submits a template as part of the same namespace containing an import of schema.yaml (from the first call); this mechanism allows for validation of multiple service templates with the same schema/type system.
+
+
+Details
+
+POST /check_template/
+ - unnamed (isolated/one time) service template checking
+ - return: a json representation of the report produced by the checker (an array with json objects as elements, one per error encoutered)
+
+POST /check_template/{catalog}/{name}
+ - named template submitted as part of the given catalog. A catalog allows a client application to isolate a particular TOSCA schema (type system) against which other templates will be checked. The catalog names are arbitrary (see catalog GET below as a way of checking if a catalog name is in use).
+ - return: a json representation of the report produced by the checker (an array with json objects as elements, one per error encoutered). When using the catalog based api one can use import statements within the templates but .. all import references are towards templates submitted prior hence all the errors in the report are for the submitted template).
+ - note: currently there is no explicit catalog creation API. A new catalog with the given name will be created if not already existing.
+
+GET /check_template/{catalog}/{name}
+ - checks if a template with the given name was submitted/checked as part of the given catalog.
+ - returns HTTP 200OK if a catalog with that name existed and the given name is associated with a previously submitted (named) template, 404 otherwise. No other catalog or template information is returned.
+
+POST /check_template/{catalog}
+ - unnamed template submitted as part of the given catalog. The template is processed but not registered so it cannot be referenced afterwards; it can use import statements refering to named templates within this catalog.
+ - return: a json representation of the report produced by the checker (an array with json objects as elements, one per error encoutered)
+
+GET /check_template/{catalog}
+ - checks if a catalog with the given name exists
+ - returns HTTP 200OK if a catalog with that name existed, 404 otherwise. No other catalog information is returned.
+
+DELETE /check_template/{catalog}
+ - deletes an existing catalog (and all information associated with it)
+ - returns HTTP 200OK if a catalog with that name existed, 404 otherwise
diff --git a/javatoscachecker/service/pom.xml b/javatoscachecker/service/pom.xml
index 7040aec..5b1bbcb 100644
--- a/javatoscachecker/service/pom.xml
+++ b/javatoscachecker/service/pom.xml
@@ -16,133 +16,158 @@
</properties>
<build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- </configuration>
- </plugin>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ </plugin>
+
<!--
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.10</version>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/deps</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>false</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- </configuration>
- </execution>
- </executions>
- </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.10</version>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/deps</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
-->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <phase>validate</phase>
- <goals>
- <goal>create</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <doCheck>false</doCheck>
- <doUpdate>false</doUpdate>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <archive>
- <manifest>
- <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
- </manifest>
- <manifestEntries>
- <Implementation-Build>${buildNumber}</Implementation-Build>
- <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>1.3.3.RELEASE</version>
- <configuration>
- <mainClass>org.onap.tosca.checker.service.CheckerEngine</mainClass>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>1.4</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>create</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doCheck>false</doCheck>
+ <doUpdate>false</doUpdate>
+ </configuration>
+ </plugin>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>[2.7.8,)</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>[4.3.4.RELEASE,)</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>[4.3.4.RELEASE,)</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>[1.3.3.RELEASE,)</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>[4.3.4.RELEASE,)</version>
- </dependency>
- <dependency>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-Build>${buildNumber}</Implementation-Build>
+ <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+
+ <plugin>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-autoconfigure</artifactId>
- <version>[1.3.3.RELEASE,)</version>
- </dependency>
- <dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <version>20160212</version>
- </dependency>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>1.3.3.RELEASE</version>
+ <configuration>
+ <mainClass>org.onap.tosca.checker.service.CheckerEngine</mainClass>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <nexusUrl>${nexusproxy}</nexusUrl>
+ <stagingProfileId>176c31dfe190a</stagingProfileId>
+ <serverId>ecomp-staging</serverId>
+ </configuration>
+ </plugin>
+
+ <!-- replace by the sonatype plugin ?
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip />
+ </configuration>
+ </plugin>
+ -->
+ </plugins>
+
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>[2.7.8,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>[4.3.4.RELEASE,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>[4.3.4.RELEASE,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ <version>[1.3.3.RELEASE,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>[4.3.4.RELEASE,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ <version>[1.3.3.RELEASE,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ <version>20160212</version>
+ </dependency>
- <dependency>
- <groupId>org.onap.tosca</groupId>
- <artifactId>Checker</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.onap.tosca</groupId>
+ <artifactId>Checker</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
</project>