Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Analysis

vFirewall Demo Sequence of Events

All the events during a VF creation so we can understand all the orchestration steps at a granular REST level.

Prerequisites 

...

Config

...

Table of Contents


Analysis

vFirewall Demo Sequence of Events

All the events during a VF creation so we can understand all the orchestration steps at a granular REST level.

Prerequisites 

SeqNameSourceTargetActorREST writeREST read





















Config

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"

SeqNameSourceTargetActorREST writeREST read

create customerrobotaai./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 modelrobotaai./demo.sh init

PUT

https://{{aai_ip}}:8443/aai/v8/business/customers/customer/ONAP-User{ "global-customer-id": "ONAP-Userservice-design-and-creation/models


"model-name-version-id": "dcb40136-9cec-45be-b080-2a36b31c2f06",
"model-type": "service", "model-name": "vfservice",
"servicemodel-subscriptionsid": {
"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 modelrobotaai./demo.sh init

...

"43d59b70-8829-4a50-a3f7-d261b220ceef"


Service Deployment

SeqNameSourceTargetActorREST writeREST read

deploy service modelvid
demo user


create service instancevid
demo user

Input:

InstanceName=DemoInstance
Subscriber=Demonstration
ServiceType=vFW

Output:
SIID=c54316d8-464e-4967-bece-8c2b2f458b66

https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/


{ "service-instance": [{
"service-instance-id": "c54316d8-464e-4967-bece-8c2b2f458b66",
"service-instance-name": "DemoInstance",
"persona-model-id": "2a01ef12-9bb1-4205-9941-a506cbae99c9",


Add VNF to Service Instancevid
demo user

Input:
VSP from onboarding
InstanceName=DemoVNF
ProductFamily=vFW
LCPRegion=IAD|DFW
Tenant=<RS ID>

Output:

VNFID=6229cdee-10f6-4ec4-a5e0-0593154e6d83

get VSPs

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-software-products

"name": "vsp",
"description": "vsp",
"category": "resourceNewCategory.application l4+",

VNF Creation

https
SeqNameSourceTargetActorREST writeREST readdeploy service modelviddemo usercreate service instanceviddemo user

Input:

InstanceName=DemoInstance
Subscriber=Demonstration
ServiceType=vFW

Output:
SIID=c54316d8-464e-4967-bece-8c2b2f458b66



robot
./demo.sh init















VfModule Preload

SeqNameSourceTargetActorREST writeREST read

preload vnfrobot
./demo.sh preload <DemoVNF> <DemoModule>

http://{{aaisdnc_ip}}:84438282/aairestconf/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/config/VNF-API:preload-vnfs

{ "servicepreload-instancevnfs": [ {
"servicevnf-instancepreload-idlist": "c54316d8-464e-4967-bece-8c2b2f458b66",
"service-instance-[
{ "vnf-name": "DemoInstanceDemoModule",
"personavnf-model-id": "2a01ef12-9bb1-4205-9941-a506cbae99c9",

Add VNF to Service Instanceviddemo userInput:
VSP from onboarding
InstanceName=DemoVNF
ProductFamily=vFW
LCPRegion=IAD|DFW
Tenant=<RS ID>

...

type": "Vsp..base_vfw..module-0",















VfModule Creation

SeqNameSourceTargetActorREST writeREST readrobot./demo.sh init

VFModule Preload

...


create Vf module <DemoModule>vid
demo user

Output:

VfModuleID=5a08199b-4161-4181-9b2d-da29f6df1410
HeatStackID=DemoModule/55bd16d6-6bac-4638-9e87-9063df6d03c3
















Closed Loop

SeqNameSourceTargetActorREST writeREST readcreate vf module <DemoModule>viddemo user

Closed Loop

...


appcrobot
./demo.sh appc <DemoModule>















see also

http://{{sdc_ip}}:8080/sdc2/rest/v1/catalog/services/latestversion/notabstract/uidonly?internalComponentType=SERVICE

feeds

http://{{sdc_ip}}:8080/sdc2/rest/v1/catalog/services/378bc9b7-2b7d-4a4f-96d9-1c654c2242fa


Design Issues

DI 1: 20170712: AAI Cert required for HTTPS REST calls

...

// 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

...