Versions Compared

Key

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

...

Provide required ONAP Commands to operate the ONAP from Linux Operating system console & Docker to perform the different use cases identified for the release Amesterdam.

Minimum Viable Product

Create the OPEN CLI framework and provide

Provide required Linux Console commands for ONAP 1.0 and docker environment

Run time environment with docker 

Standardise open-cli-schema 1.0 

Functionalities

List the functionalities that this release is committing to deliver by providing a link to JIRA Epics and Stories. In the JIRA Priority field, specify the priority (either High, Medium, Low). The priority will be used in case de-scoping is required. Don't assign High priority to all functionalities.

...

Longer term roadmap

As CLI plays a major role is critical in devops environment, in future, CLI will be extended to use in VNF boot scripts, ONAP components integrations, OOM and Integration projects to make the ONAP integration point smoother and easier.

...

  1. AAF/Portal project
    1.  for Authentication and authorization
  2. MSB/A&AI project
    1. for service discovery 
  3. Integration project
    1. for creating the docker scripts, 
    2. Integration scripts
    3. Jenkins and sonar integration
  4. To provide the require CLI for Following projects
    1. SO
    2. Policy
    3. Controllers (APPC/SDNC/VFC/Multi-VIM)

Architecture

High level architecture diagram

...

Open Command – Models the most of the requirements of CLI and it’s the CLI schema engine, understands the OPEN-CLI 1.0 schema and make it as Command
Command Plug-in :  Provides extensibility support to implement any commands which are depends on java api
HTTP Command : An special command plug-in provided by framework to implement the Command on top of REST API without writing any java code. (only YAML template is sufficient)
Command Discoverer – Discovers the available CLI templates (YAML file created by using OPEN-CLI 1.0 schema) placed under OPEN_CLI_HOME directory or its sub-directories and register them into Command Registrar.
Command Registrar – Maintains the map of command name vs actual command executable
Main – Provides the interactive/direct command mode to run the commands from Linux OS console

Sample YAML CLI template

Following sample YAML shows the YAML file used to create the microservice in Open-O using CLI

Code Block
languagetext
titleSample YAML OPEN CLI templateopeno microservice-create
collapsetrue
open_cli_schema_version: 1.0
name: microservice-create
description: Register microservice into Open-O
service:
  name: msb
  version: v1

parameters:
  - name: service-name
    description: Open-O service name
    type: string
    short_option: x
    long_option: service-name
    is_optional: false
  - name: service-version
    description: Open-O service version
    type: string
    short_option: y
    long_option: service-version
    is_optional: false
  - name: service-url
    description: Open-O service base url
    type: url
    short_option: r
    long_option: service-url
    is_optional: false
  - name: node-ip
    description: Open-O service running node IP
    type: string
  - name: node-port
    description: Open-O service running node port
    type: string
  - name: create-or-update
    description: Open-O service create or update
    type: bool
    default_value: true
results:
  direction: portrait
  attributes:
    - name: name
      description: Open-O service name
      scope: short
      type: string
    - name: version
      description: Open-O service version
      scope: short
      type: string
    - name: url
      description: Open-O service base url
      scope: short
      type: url
    - name: status
      description: Open-O service status
      scope: short
      type: long
    - name: nodes
      description: Open-O service running nodes
      scope: long
      type: string
    - name: location
      description: Open-O service location
      scope: long
      type: url
http:
  request:
    uri: /services
    method: POST
    body: '{"serviceName":"${service-name}","version":"${service-version}","url":"${service-url}","protocol":"REST","visualRange":"1","lb_policy":"hash","nodes":[{"ip":"${node-ip}","port":"${node-port}","ttl":0}]}'
    headers:
    queries:
      createOrUpdate: ${create-or-update}
  success_codes:
    - 201
    - 200
  result_map:
    name: $b{$.serviceName}
    version: $b{$.version}
    url: $b{$.url}
    status: $b{$.status}
    nodes: $b{$.nodes[*].ip}:$b{$.nodes[*].port}
    location: $h{Location}

...

API Incoming Dependencies

List Following table shows the API this release is expecting from other releases.list of API depends by CLI framework

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
AAF/Portal user API

For user authentication and authorization, CLI uses

AAF/Portal user API

Date for which the API is reviewed and agreed

TBD : after discussion with respective team

TBD : after discussion with respective team

Link toward the detailed API description

TBD : after discussion with respective team

MSB/A&AI

For service discovery, currently CLI framework supports

MSB and i am not sure whether this feature will be part of A&AI

in release A?

- do - - do - - do -






NOTE: To provide the required commands for each of the ONAP services, this project will depends on the REST API provided by every other services such as  SO, AAI, DCAE, policy and SDC

CLI Outgoing Dependencies

...

API NameCLI DescriptionCLI Definition DateCLI Delivery dateCLI Definition link
To fill out onap <command>TBD by M2High level description of the CLIM2 (as per the release plan)M2 (as per the release plan)Link toward the detailed CPI description

...

NameDescriptionVersion
DockerDocker container for CLIAligned with existing Docker version of ONAP
UbuntuFor running CLI manually14.04 / 16.04 32-bit/64-bit
Open JDKFor Java RTE1.8


Testing and Integration Plans

...

Risk identifiedMitigation PlanContingency Plan
AAF availability

CLI is depending on the AAF for user authorization as AAF is approved project.

In the mean time, it would try to use Portal API for the same.

-

Resources

Fill out the Resources Committed to the Release centralized page.

Release Milestone

...