...
Seq | Name | Source | Target | Actor | REST write | REST read |
---|
| create customer | robot | aai | ./demo.sh init | PUT https://{{aai_ip}}:8443/aai/v8/business/customers/customer/ONAP-User { "global-customer-id": "ONAP-User", "service-subscriptions": { "service-subscription": [{ "relationship-list": { "relationship": [{ "related-to": "tenant", "relationship-data": [{ "relationship-key": "cloud-region.cloud-owner", "relationship-value": "Rackspace" }, { "relationship-key": "cloud-region.cloud-region-id", "relationship-value": "DFW" }, { "relationship-key": "tenant.tenant-id", "relationship-value": "{{tenant_id}}" }] }]}, "service-type": "vFW" }] }, "subscriber-name": "ONAP-User", "subscriber-type": "INFRA"} | https://{{aai_ip}}:8443/aai/v8/business/customers/customer
{ "global-customer-id": "Demonstration","subscriber-name": "Demonstration", |
| create service model | robot | aai | ./demo.sh init |
| https://{{aai_ip}}:8443/aai/v8/service-design-and-creation/models
"model-name-version-id": "dcb40136-9cec-45be-b080-2a36b31c2f06", "model-type": "service", "model-name": "vfservice", "model-id": "43d59b70-8829-4a50-a3f7-d261b220ceef", |
|
|
|
|
|
|
|
...
// require: cert, username, password, headers(X-FromAppId,Accept), Authenticator public String run(boolean isSSL, String url, String port, String path) { String record = null; Client client = null; WebTarget latestTarget = null; WebTarget rootTarget = null; if(isSSL) { SslConfigurator sslConfig = SslConfigurator.newInstance(); SSLContext sslContext = sslConfig.createSSLContext(); HostnameVerifier verifier = new HostnameVerifier() { public boolean verify(String hostname, SSLSession sslSession) { return true; // TODO: security breach }}; client = ClientBuilder.newBuilder().sslContext(sslContext).hostnameVerifier(verifier).build(); client.register(new Authenticator("AAI","AAI")); } else { client = ClientBuilder.newClient(); } rootTarget = client.target(url); latestTarget = rootTarget.path(path); try { try { Thread.sleep(1); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); } record = finalTarget.request() .header("X-FromAppId", "AAI").header("Accept", "application/json") .get(String.class); |
---|
public class Authenticator implements ClientRequestFilter { private final String user; private final String pass;
public Authenticator(String user, String password) { this.user = user; this.pass = password; }
public void filter(ClientRequestContext requestContext) throws IOException { MultivaluedMap<String, Object> headMap = requestContext.getHeaders(); String basicAuth = null; try { String aToken = user + ":" + pass; basicAuth = "BASIC " + DatatypeConverter.printBase64Binary(aToken.getBytes("UTF-8")); } catch (UnsupportedEncodingException uee) { throw new IllegalStateException("Encoding with UTF-8 failed", uee);} headMap.add("Authorization", basicAuth); } } |
---|
DI 2: 20170712: Spring Boot Backend Framework
Instead of using a full Tomcat deployment server - we will use an embedded Jetty container.
pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version></parent> <dependencies> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> <!-- avoid restarts --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </dependencies> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> <!-- may not be required --><configuration><addResources>true</addResources> </configuration></plugin></plugins></build> |
---|
DI 3: 20170712: JAX-RS 2.0 API Framework
...