Skip to content

Commit f6731d8

Browse files
author
Thomas Soenen
authored
Merge pull request #215 from tsoenen/master
Update README
2 parents 8c4679e + 47d85da commit f6731d8

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

README.md

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,23 @@ SONATA's MANO framework is organized as micro services. The following micro serv
1919
2. [`son-mano-pluginmanager`](https://github.com/sonata-nfv/son-mano-framework/tree/master/son-mano-pluginmanager): every MANO plugin registers to this service, the PM provides a CLI to control and monitor active plugins
2020
3. [`plugins/son-mano-service-lifecycle-management`](https://github.com/sonata-nfv/son-mano-framework/tree/master/plugins/son-mano-service-lifecycle-management): main orchestration component, gets service and function descriptors, instructs the infrastructure adapter to start service components in the infrastructure, stores records on services and functions once instantiated, informs Monitoring Manager
2121
4. [`plugins/son-mano-test-plugin`](https://github.com/sonata-nfv/son-mano-framework/tree/master/plugins/son-mano-test-plugin): the most simple implementation of a MANO plugin, used for integration tests and as an example for plugin developers
22+
5. [`plugins/son-mano-placement-executive`](https://github.com/sonata-nfv/son-mano-framework/tree/master/plugins/son-mano-placement-executive): The plugin that manages the communication between placement SSMs and the core of the MANO framework
23+
6. [`plugins/son-mano-scaling-executive`](https://github.com/sonata-nfv/son-mano-framework/tree/master/plugins/son-mano-placement-executive): The plugin that manages the communication between scaling SSMs/FSMs and the core of the MANO framework
24+
7. [`son-mano-specificmanager`](https://github.com/sonata-nfv/son-mano-framework/tree/master/son-mano-specificmanager): The plugin that manages the lifecycle of the SSMs and FSMs.
2225

2326
Each of these components is entirely implemented in Python.
2427

25-
Other MANO plugins (e.g. a placement and scaling plugin) will appear during the course of the project.)
26-
2728
### Building
2829

29-
Each micro service of the framework is executed in its own Docker container. So 'building' the framework becomes building all the containers. The build steps for this are described in a `Dockerfile` that is placed in the folder of each micro service.
30+
Each micro service of the framework is executed in its own Docker container. So 'building' the framework becomes building all the containers. The build steps for this are described in a `Dockerfile` that is placed in the folder of each micro service. Building the containers goes is done as follows:
3031

3132

32-
1. `docker build -t registry.sonata-nfv.eu:5000/pluginmanager -f son-mano-pluginmanager/Dockerfile .`
33-
2. `docker build -t registry.sonata-nfv.eu:5000/testplugin -f plugins/son-mano-test-plugin/Dockerfile .`
34-
3. `docker build -t registry.sonata-nfv.eu:5000/servicelifecyclemanagement -f plugins/son-mano-service-lifecycle-management/Dockerfile .`
35-
4. `docker build -t registry.sonata-nfv.eu:5000/specificmanagerregistry -f son-mano-specificmanager/son-mano-specific-manager-registry/Dockerfile .`
33+
1. `docker build -t sonatanfv/pluginmanager -f son-mano-pluginmanager/Dockerfile .`
34+
2. `docker build -t sonatanfv/testplugin -f plugins/son-mano-test-plugin/Dockerfile .`
35+
3. `docker build -t sonatanfv/servicelifecyclemanagement -f plugins/son-mano-service-lifecycle-management/Dockerfile .`
36+
4. `docker build -t sonatanfv/specificmanagerregistry -f son-mano-specificmanager/son-mano-specific-manager-registry/Dockerfile .`
37+
5. `docker build -t sonatanfv/placementexecutive -f plugins/son-mano-placement-executive/Dockerfile .`
38+
6. `docker build -t sonatanfv/scalingexecutive -f plugins/son-mano-scaling-executive/Dockerfile .`
3639

3740

3841
### Dependencies
@@ -42,7 +45,7 @@ Son-mano-framework expects the following environment:
4245
* Python 3.4
4346
* [Docker](https://www.docker.com) >= 1.10 (Apache 2.0)
4447
* [RabbitMQ](https://www.rabbitmq.com) >= 3.5 (Mozilla Public License)
45-
* [MongoDB] (https://www.mongodb.com/community) >= 3.2 (AGPLv3)
48+
* [MongoDB](https://www.mongodb.com/community) >= 3.2 (AGPLv3)
4649

4750
Son-mano-framework has the following dependencies:
4851

@@ -60,8 +63,9 @@ Son-mano-framework has the following dependencies:
6063
### Contributing
6164
Contributing to the son-mano-framework is really easy. You must:
6265

63-
1. Clone [this repository](http://github.com/sonata-nfv/son-mano-framework);
66+
1. Fork [this repository](http://github.com/sonata-nfv/son-mano-framework);
6467
2. Work on your proposed changes, preferably through submiting [issues](https://github.com/sonata-nfv/son-mano-framework/issues);
68+
3. Push changes on your fork;
6569
3. Submit a Pull Request;
6670
4. Follow/answer related [issues](https://github.com/sonata-nfv/son-mano-framework/issues) (see Feedback-Chanel, below).
6771

@@ -82,13 +86,25 @@ python setup.py develop
8286

8387
## Usage
8488

85-
To run all components of the MANO framework you have to start their containers. Additionally, a container that runs RabbitMQ and a container that runs MongoDB has to be started.
89+
To run all components of the MANO framework you have to start their containers. Additionally, a container that runs RabbitMQ and a container that runs MongoDB has to be started. A docker network is facilitating the connections between the containers.
90+
91+
1. `docker network create sonata`
92+
2. `docker run -d -p 5672:5672 --name broker --net=sonata rabbitmq:3`
93+
3. `docker run -d -p 27017:27017 --name mongo --net=sonata mongo`
94+
4. `docker run -d --name pm --net=sonata -p 8001:8001 -e broker_host=amqp://guest:guest@broker:5672/%2F sonatanfv/pluginmanager`
95+
5. `docker run -d --name slm --net=sonata -e url_nsr_repository=http://localhost:4002/records/nsr/ -e url_vnfr_repository=http://localhost:4002/records/vnfr/ -e url_monitoring_server=http://localhost:8000/api/v1/ -e broker_host=amqp://guest:guest@broker:5672/%2F sonatanfv/servicelifecyclemanagement`
96+
6. `docker run -d --name smr --net=sonata -e broker_name=broker,broker -e broker_host=amqp://guest:guest@broker:5672/%2F -v '/var/run/docker.sock:/var/run/docker.sock' sonatanfv/specificmanagerregistry`
97+
7. `docker run -d --name placeexec --net=sonata -e broker_host=amqp://guest:guest@broker:5672/%2F sonatanfv/placementexecutive`
98+
8. `docker run -d --name scaleexec --net=sonata -e broker_host=amqp://guest:guest@broker:5672/%2F sonatanfv/scalingexecutive`
99+
100+
The parameter `broker_host` provides the url on which the message broker can be found. It is build as `amqp://<username>:<password>@<broker_name>:5672/%2F`.
101+
102+
With the deployment of the SLM, it is possible to add some parameters to the command, to indicate the urls where the SLM can locate the VNFR, NSR and MONITORING repositories. These parameters are optional, and only useful if the MANO Framework is used inside the full setup of the SONATA service platform.
103+
104+
Runtime information for these docker containers can be accessed through the standard docker commands:
86105

87-
1. `docker run -d -p 5672:5672 --name broker rabbitmq:3`
88-
2. `docker run -d -p 27017:27017 --name mongo mongo`
89-
3. `docker run -it --rm --link broker:broker --link mongo:mongo --name pluginmanager registry.sonata-nfv.eu:5000/pluginmanager`
90-
4. `docker run -it --rm --link broker:broker --name slm registry.sonata-nfv.eu:5000/servicelifecyclemanagement`
91-
5. `sudo docker run -it --rm --link broker:broker -e broker_name:broker,broker -v '/var/run/docker.sock:/var/run/docker.sock' --name specificmanagerregistry registry.sonata-nfv.eu:5000/specificmanagerregistry`
106+
1. `docker logs <docker_name>`
107+
2. `docker attach <docker_name>`
92108

93109
### Unit tests
94110
#### Container-based unit tests
@@ -126,7 +142,7 @@ The following lead developers are responsible for this repository and have admin
126142
* Felipe Vicens (https://github.com/felipevicens)
127143
* Thomas Soenen (https://github.com/tsoenen)
128144
* Adrian Rosello (https://github.com/adrian-rosello)
129-
+ Hadi Razzaghi Kouchaksaraei (https://github.com/hadik3r)
145+
* Hadi Razzaghi Kouchaksaraei (https://github.com/hadik3r)
130146

131147
#### Feedback-Chanel
132148

0 commit comments

Comments
 (0)