Commit 39659422 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

removed obsolete documentation files #30

parent dd8159e2
Loading
Loading
Loading
Loading
Loading

doc/alarms_actions.md

deleted100644 → 0
+0 −113
Original line number Diff line number Diff line
# Alarms

In Openslice parts of TMF642 Alarm Management API are currently implemented. Alarms can be managed through the TMF API endpoint as well as the UI.



## Alarms and Actions

Note: Actions is an experimental feature. We expect to have a more mature solution in future. The component in the architecture is the Openslcie Assurance Services

Alarms can be automatically resolved by specific actions. Today only the following actions are offered.

* execDay2
* scaleServiceEqually


## execDay2

Usually used to perform a Day2 configuration (towards OSM). To use it, Create a New Action Specification Name=execDay2 as following

[![Openslice  usage](./images/alarms_actions/day2actionspec.png)](./images/alarms_actions/day2actionspec.png)


Now make a Service Order for your service. In this example ςε used a cirros NSD

Create a  New Action Rule for the running services as the following example:


[![Openslice  usage](./images/alarms_actions/action_rule_exampleday2.png)](./images/alarms_actions/action_rule_exampleday2.png)

The scope is the running cirros service. 

Params should be paramname=value;paramname2=value2;paramname3=value3 (must exist in the VNF otherwise OSM will raise an error).

In this case should be filename=test.txt

Primitive=touch

ServiceId = select the service which will accept the Day2. In this case is the same

To test it:

Go to the Service Inventory and select the active Service.

Note the UUID of the service (e.g. c4e7990a-e174-4cd2-9133-b10e56721e08 copy from address bar),  DeploymentRequestID and NSDID from characteristics
 
You can either use the UUID of the service or the DeploymentRequestID  and POST to the Alarms endpoint ( /tmf-api/alarmManagement/v4/alarm)
 
 
If the DeploymentRequestID  is used then POST:

```

{
  "alarmRaisedTime": "2021-06-29T12:30:24.675Z",
  "alarmReportingTime": "2021-06-29T12:30:54.675Z",
  "state": "raised",
  "alarmType": "qualityOfServiceAlarm",
  "probableCause": "thresholdCrossed",
  "ackState": "unacknowledged",
  "perceivedSeverity": "major",
  "sourceSystemId": "mano-client-service",
  "alarmDetails": "NSID=3;DeploymentRequestID=1",
  "specificProblem": "myalram raised"
}

```


If the UUID is used then POST:

```

{
  "alarmRaisedTime": "2021-06-29T12:30:24.675Z",
  "alarmReportingTime": "2021-06-29T12:30:54.675Z",
  "state": "raised",
  "alarmType": "qualityOfServiceAlarm",
  "probableCause": "thresholdCrossed",
  "ackState": "unacknowledged",
  "perceivedSeverity": "major",
  "sourceSystemId": "mano-client-service",
  "alarmDetails": "analarm",
  "specificProblem": "myalram raised",
  "affectedService": [
    {
      "id": "c4e7990a-e174-4cd2-9133-b10e56721e08"
    }
  ]
  
}

```

The Alarm to be created must have the affected Service ID equal to the running service from the scope (the cirros_ns)

Go to service inventory you will see the notes and also the service characteristics for any  EXEC_ACTION updates

You can also adjust the alarm conditions. They must match true so the alarm to be acknowledged
So if another external service raises an Alarm (with POST) for the running service, a Day2 will be performed on another Service


## scaleServiceEqually


This action is used from getting a scaling event from OSM. Please see the next demo for details on how it works


### Prototype demo

You can watch how we used the prototype on the following ETSI ZMS PoC #2

* ETSI ZMS PoC #2: <https://www.etsi.org/events/1905-webinar-zsm-poc-2-showcase-automated-network-slice-scaling-in-multi-site-environments/>

doc/architecture/architecture.md

deleted100644 → 0
+0 −49
Original line number Diff line number Diff line
# Architecture


Openslice offers the following main functionalities:

* Service Catalog Management: A CSP will have the ability to manage the Service Catalog Items, their attributes , organize in categories and decide what to make available to Customers
* Services Specifications: A CSP will be able to manage Service Specifications
* Service Catalog Exposure: A CSP will be able to expose catalog to customers and related parties
* Service Catalog to Service Catalog: Openslice able to consume and provide Service Catalog items to other catalogs
* Service Order: The Customer will be able to place a Service Order
* Service Inventory: The Customer and Provider will be able to view deployed Services status


The following figure displays the overall architecture of Openslice.

[![Openslice  architecture](../images/architecture.png)](../images/architecture.png)


Openslice allows Vertical Customers browsing the available offered service specifications. It consists of:

* Web frontend UIs that consist of mainly two portals: i) a NFV portal allowing users self-service management and onboarding VNFDs/NSDs to facility’s NFVO ii) a Services Portal, which allows users to browse the Service Catalog, Service Blueprints specifications and the Service Inventory
* An API gateway that proxies the internal APIs and used by the web front end as well as any other 3rd party service
* A Message Bus where all microservices use it to exchange messages either via message queues or via publish/subscribe topics
* An authentication server implementing Oauth2 authentication scheme
* A microservice offering TMF compliant API services (eg Service Catalog API, Service Ordering APIetc)
* A microservice offering NFV API services (eg VNF/NSD onboarding etc) and allows to store VNFDs and NSDs in a catalog
* A microservice that is capable to interface to an issue management system. For example it raises an issue to all related stakeholders (CSP, NOP, CSC) that a new Service Order is requested
* Central logging microservice that is capable to log all distributed actions in to an Elasticsearch cluster
* A Service Orchestrator solution that will propagate Service Ordering requests to the equivalent SOs and NFVOs 


The following figure depicts how Openslice microservices are deployed

[![Openslice microservices network deployment](../images/microservices_network_deployment.png)](../images/microservices_network_deployment.png)



## Deploying Openslice in multi domain scenarios

A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.

TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.

The following figure shows how openslice could be used in such scenarios:

[![Openslice  multi-domain-architecture](../images/multi-domain-architecture.png)](../images/multi-domain-architecture.png)


See more [Consuming Services From External Partner Organizations](./consumingServicesFromExternalPartners.md)

doc/architecture/centrallog.md

deleted100644 → 0
+0 −5
Original line number Diff line number Diff line
# Central Logging

Openslice follows the centralized log management concept, i.e. a type of logging solution system that consolidates the log data from different services and pushes it to a central, accessible and easy-to-use interface. 

For that reason, Elasticsearch is elected as an open-source centralized logging solution for collecting, parsing and storing logs towards a real-time data analytics tool that provides insights from any type of structured and unstructured data source.
 No newline at end of file
+0 −185
Original line number Diff line number Diff line
# Consuming Services From External Partner Organizations

A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.

TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.

The following figure shows how openslice could be used in such scenarios:

[![Openslice  multi-domain-architecture](../images/multi-domain-architecture.png)](../images/multi-domain-architecture.png)


In Openslice we can consume services from 3rd parties via Open APIs.

We use the TMF 632 Party Management model to specify Organizations that we can exchange items and other information such as:

- Import Service Specifications
- Create a Service Order
- Use the Service Inventory to query the status of the service ordered to the external partner organization

## Define an Organization as 3rd party to consume services East-West 

An organization must have the following characteristics in openslice catalog, like for example:

"EXTERNAL_TMFAPI_BASEURL", "http://portal.openslice.io"

"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID", "authOpensliceProvider"

"EXTERNAL_TMFAPI_OAUTH2CLIENTID", "osapiWebClientId"

"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET", "secret"

"EXTERNAL_TMFAPI_OAUTH2SCOPES", scopes

"EXTERNAL_TMFAPI_OAUTH2TOKENURI", "http://portal.openslice.io/osapi-oauth-server/oauth/token"

"EXTERNAL_TMFAPI_USERNAME", "admin"

"EXTERNAL_TMFAPI_PASSWORD", "openslice"

"EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification?type=CustomerFacingServiceSpecification" (this is optional, fetch a list of service specs it will be relative with the BASEURL. If the url is empty then no specs will be fetched, the EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS might be used)

"EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceCategory/{categoryid}" (this example will fetch all specs in a category. You may define comma separated URLs of categories API URL . This will  fetch  specifications of every defined category. If you want only one specific category put for example the uuid only of one category: "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d". multiple urls should be "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d,/tmf-api/serviceCatalogManagement/v4/serviceCategory/9b6d8bf3-abd2-43c4-8154-c8c6fe5545b2")

"EXTERNAL_TMFAPI_SERVICE_SPEC" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification"

"EXTERNAL_TMFAPI_SERVICE_ORDER_URLS"= "/test/v1/serviceorder" (this is optional)
		
		
An example Organization defined example in json:
```

{
  "uuid": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae",
  "@baseType": "BaseEntity",
  "@schemaLocation": null,
  "@type": null,
  "href": null,
  "name": "Openslice.io",
  "id": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae",
  "isHeadOffice": null,
  "isLegalEntity": null,
  "nameType": null,
  "organizationType": null,
  "tradingName": null,
  "contactMedium": [],
  "creditRating": [],
  "existsDuring": null,
  "externalReference": [],
  "organizationChildRelationship": [],
  "organizationIdentification": [],
  "organizationParentRelationship": null,
  "otherName": [],
  "partyCharacteristic": [
    {
      "uuid": "3a2f7221-e0a2-4a6b-88d1-534c8e1963f6",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_CLIENTREGISTRATIONID",
      "valueType": null,
      "value": {
        "value": "authOpensliceProvider",
        "alias": null
      }
    },
    {
      "uuid": "c24bb527-f178-4d38-9b93-2027c1732876",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_USERNAME",
      "valueType": null,
      "value": {
        "value": "admin",
        "alias": null
      }
    },
    {
      "uuid": "27e45df8-414b-44c6-a5d5-3f064e2cfd3b",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_PASSWORD",
      "valueType": null,
      "value": {
        "value": "openslice",
        "alias": null
      }
    },
    {
      "uuid": "e0e470b8-6024-4014-8a18-2333e5465ce1",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET",
      "valueType": null,
      "value": {
        "value": "secret",
        "alias": null
      }
    },
    {
      "uuid": "3e0de762-ac80-4c1e-a0a1-f265ff0899b4",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_OAUTH2SCOPES",
      "valueType": null,
      "value": {
        "value": "admin;read",
        "alias": null
      }
    },
    {
      "uuid": "0bbb8314-f7f2-420d-9fed-ba054b15f886",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_OAUTH2TOKENURI",
      "valueType": null,
      "value": {
        "value": "http://portal.openslice.io/osapi-oauth-server/oauth/token",
        "alias": null
      }
    },
    {
      "uuid": "3a567de4-79eb-4006-a500-3e5229b44175",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_OAUTH2CLIENTID",
      "valueType": null,
      "value": {
        "value": "osapiWebClientId",
        "alias": null
      }
    },
    {
      "uuid": "6dca729f-dbe1-46b7-89f1-5c4f9fe89d4e",
      "@baseType": "BaseEntity",
      "@schemaLocation": null,
      "@type": null,
      "href": null,
      "name": "EXTERNAL_TMFAPI_BASEURL",
      "valueType": null,
      "value": {
        "value": "http://portal.openslice.io",
        "alias": null
      }
    }
  ],
  "relatedParty": [],
  "status": null,
  "taxExemptionCertificate": []
}

```
		
 No newline at end of file

doc/architecture/issuemgt.md

deleted100644 → 0
+0 −7
Original line number Diff line number Diff line
# Issue Management

For issue management support, Openslice relies on Bugzilla. Bugzilla is a ticketing tool that allows issue reporting and tracking via tickets to all relevant stakeholders. 

The figure below displays the overall issue management service architecture integrating Bugzilla as its core and how this tool interacts with other Openslice services presenting some distinctive scenarios. It should be noted that Bugzilla tickets will not only be used for bugs/errors, but also for general requests, e.g. Service Order procedure.

[![Issue management system](../images/issue_management.png)](../images/issue_management.png)
 No newline at end of file
Loading