Working with SDC

Working with SDC

Contributioning to SDC

Prerequisites

Make sure to get familiar with: Developing ONAP. From future SDC dev point of view, most interesting parts are:

JIRA

SDC issues are tracked on ONAP JIRA: https://jira.onap.org/secure/RapidBoard.jspa?rapidView=71&projectKey=SDC

Jenkins

JIRA project CI: https://jenkins.onap.org/view/sdc/

Gerrit

Chenage proposals for SDC projects are available here: https://gerrit.onap.org/r/#/admin/projects/?filter=sdc

Coding Policy

ONAP Development Guides

Official development guides of ONAP: Development Guides

Contribution

license guideline

ONAP FUSS guide lines: Rules for implementing FOSS in a project

Clarification

any file that is being committed must have a a licensing header based on the ONAP guideline.

as SDC seed code came from AT&T

almost all the licensing headers will look in the following meaner:

License header

/*

 * Copyright (c) 2018 AT&T Intellectual Property.

  *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

 

in case you are modifying an existing file you will need to add the flowing to the license header:

Modified license header

/*

 Copyright (c) 2018 AT&T Intellectual Property.

  * Modifications Copyright (c) 2018 <Company copy right> Property.

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

 

Automatic copy right addition:

Eclipse

Intlij

 

Code guide lines TBD

Role of SDC in ONAP - component use cases

TODO describe/link to sdc onbaording demo, describe design time

High level architecture

Architecture is described on another subpage: SDC Architecture

Subprojects

SDC is a huge component. In the road-map there is a plan to split SDC into smaller projects. To make it smooth in the future, we dont introduce new dependencies between groups of sub-projects. You can find a project and its group in the table below. There is also an informal agreement that committers have their responsibilities and focuses. If you make a change (of course, affecting subprojects from one group...), please make sure to add reviewers specialized in affected area - this will prevent the situation of having +2 without a merge. Reviewers and their responsibilities are listed below:

Committers And Roles

Subprojects

Group

Component

Description

Group

Component

Description

1

Catalog

asdctool

Collection of standalone utilities used in different projects: import, export, migration etc.

2

 

catalog-be

Business logic of the app. Compiles to WAR.

3

 

catalog-dao

Manages persistance layer:

  • Titan Graph DB

  • Cassandra

  • Elastic search

// Contains dead Neo4j code. It may replace titan

4

 

catalog-fe

Proxy between ui and backend. Contains business logic as well.

5

 

catalog-model

Connection layer, serves models to other projects

6

 

catalog-ui

 

7

 

common-app-api

Utils and logic shared between frontend and backend.

8

 

common-be

 

9

 

docs

 

10

 

security-utils

 

11

 

sdc-titan-cassandra

 

12

 

sdc-tosca

TOSCA parser based on jtosca. Complies with ONAP SDC TOSCA model(?)

13

 

sdc-workflow-designer

Graphic tool for service lifecycle management

14

 

services

 

15

 

ui-ci

 

16

 

sdc-os-chef

 

17

 

test-apis-ci

 

18

 

utils

 

19

Onboarding

build-tools

 

20

 

common

 

21

 

dox-sequence-diagram-ui

 

22

 

services

 

23

 

onboarding

 

24

 

openecomp-bdd

 

25

 

openecomp-be

 

26

 

openecomp-ui

 

27

Other

jtosca

Generic TOSCA parser based on 1.1 spec

28

 

onap-ui

 

29

 

dcae-d

 

30

 

sdc-distribution-client

 

31

 

sdc-docker-base

Docker creation project

Dependencies

SDC is a standalone application that, as such, does not require any other components to start. Deployed SDC enables to import or create an asset (design time). In order to take advantage of it (deploy a service) other components are required. For a start, please see SDC Dependencies

Interfaces - API and clients

Distribution Client

Docs available in Architecture Integration Document: SDC Distribution client AID

APIs

APIs are available on the page generated from SDC repo: http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/offeredapis.html

Documentation available in another pages: SDC API

Documentation

Documentation generated from code repository: http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/index.html

User interface

Onap home page for design related issues: Design

Tutorials

Deployment

// TODO Local deployment for devs

 

Useful links and resources

Name

URL

Comment

Name

URL

Comment