Giter Club home page Giter Club logo

son-mano-framework's People

Contributors

adrian-rosello avatar dariovalocchi avatar hadik3r avatar jbonnet avatar mbredel avatar mpeuster avatar tsoenen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

son-mano-framework's Issues

message.py YAML support

There are some points in message.py that do not allow content-type: application/yaml instead of json.

e.g. asnyc call return messages.

This should be improved to support both: JSON (default), YAML (as option).

SSM management: stop/remove SSM

When a service is terminated we might want to remove some of its SSMs as well (if they are not needed anymore).

To do so, the executive plugin base class should provide a method to remove SSMs from the system (e.g. delete its Docker image).

TODO: This might have more implications. What if a SSM wants to store persistent data? Might be a starting point for SSM repository discussion. But not urgent for now.

See: http://wiki.sonata-nfv.eu/index.php/Son-mano-base

IA_termination_response called after vnf_unchain

Hi,

I've just noticed that the response callback of the vnf_unchain method in the slm is IA_termination_response (see here). Shouldn't this be IA_unchain_response ? I believe, in the current implementation IA_unchain_response is never called.

Best regards,
Tobias

Hardcoded uri Repositories

Hello!
https://github.com/sonata-nfv/son-mano-framework/blob/master/plugins/son-mano-service-lifecycle-management/son_mano_slm/slm.py

Are these urls hardcoded?

The NSR Repository can be accessed through a RESTful API

NSR_REPOSITORY_URL = "http://api.int.sonata-nfv.eu:4002/records/nsr/"
VNFR_REPOSITORY_URL = "http://api.int.sonata-nfv.eu:4002/records/vnfr/";

Monitoring repository, can be accessed throught a RESTful API

MONITORING_REPOSITORY_URL = "http://sp.int2.sonata-nfv.eu:8000/api/v1/";

Test: GK <-> son-mano-framework <-> infrastructure adaptor

Let's open the discussion on this subject.

The integration test between GK and mano-framework should be:

  • Deploy a new service (GK - mano-framework )

Based on:
http://wiki.sonata-nfv.eu/index.php/NS_LifeCycle_Mgr_MSC_Simplified

  • What infrastructure we need to perform this test? Containers?, Resources?
  • What initials conditions will we need for this test? For the GK, for the mano-framework, infrastucture.

Here will be the High Level architecture of this test:
http://wiki.sonata-nfv.eu/index.php/Integration_Test_Deploy_a_new_Service

Notification of the Mon. Framework

Hi, @tsoenen and @pkarkazis

I'm not sure how the MANO notifies Monitoring when there's a new service instance available... is it a message published on an internal MQ topic? If so, which is the message?

Now that we have the SLA and the Policy Managers, we might reuse the same topic for their further actions...

Creating Instance ID (for NS and constituent VNF)

We need an instance ID, for each requested service instance, which can be used by the Infr.Adptr to inlcude in the deployment request towards the VIM (the stack_name).

The appropriate place to generate an instance ID would be in the SLM, as soon as it receives the request from the Gatekeeper. The SLM can include it in the service.deploy request and the Infra.Adptr will also include it in the response. This instance ID shall also be used for the respective NSR.

SSM management: start/deploy SSM

The SSM was previously pulled/imported by the on-boarding procedure

Start a SSM given as a Docker container and ensure that it can connect to a given message broker to communicate with the executive plugin.

For now we start the Docker container in the same Docker environment as all the other MANO plugins. BUT: This should be configurable so that we can run SSMs in an isolated Docker environment later.

See: http://wiki.sonata-nfv.eu/index.php/Son-mano-base

Test: Plugin manager <-> son-mano-plugins

Let's open the discussion on this subject.

The integration test son-mano-framework | Plugin Management should be:
Add/Remove a plugin
Collect status of the plugin

Based on:
http://wiki.sonata-nfv.eu/index.php/SP_Plugin_Managment

  • What infrastructure we need to perform this test? Containers?, Resources?
  • What initials conditions will we need for this test? For the mano-framework, infrastucture.

Here will be the High Level architecture of this test:
http://wiki.sonata-nfv.eu/index.php/Integration_Test_Plugin_Management

MB: Add synchronous API methods to son-mano-base message.py

Until now, only async. calls are supported. We should also add a blocking API.

We can implement this ontop of the async. API by implementing a mechanism to wait until the callback method was called before retuning from the blocking call.

The int-5-mano-plugin-management job is failling after PR#192

@tsoenen Last PR produced this error in the integration tests. Could you have a look?

https://jenkins.sonata-nfv.eu/job/int-5-mano-plugin-management/188/console

03:00:19 + python test.py http://sp.int3.sonata-nfv.eu:8001
03:00:19 ================================================
03:00:19 BEGIN test.py
03:00:19 [u'e5e8d1c5-a64b-4bb9-89f5-838b58e14ca1']
03:00:19 {u'uuid': u'e5e8d1c5-a64b-4bb9-89f5-838b58e14ca1', u'last_heartbeat_at': u'None', u'registered_at': u'2017-03-18 22:13:49.134000', u'name': u'son-plugin.TestPlugin', u'state': u'REGISTERED', u'version': u'1.0-dev', u'description': None}
03:00:19 Traceback (most recent call last):
03:00:19   File "test.py", line 57, in <module>
03:00:19     main()
03:00:19   File "test.py", line 41, in main
03:00:19     raise BaseException("Test plugin state != RUNNING")
03:00:19 BaseException: Test plugin state != RUNNING
03:00:19 Build step 'Execute shell' marked build as failure

Pluginmanager crashes after rabbitmq timeout

I've noticed that the pluginmanager stops working if it can't connect to rabbitmq.

Is there a way to handle the exception and retry the connection without die?

Example log here:

13:46:01 + docker logs test.pluginmanager
13:46:01 INFO:son-mano-pluginmanger:model:Connected to MongoDB 'sonata-plugin-manager'@mongo:27017
13:46:01 INFO:son-mano-pluginmanger:model:Cleared DB 'sonata-plugin-manager'
13:46:01 INFO:son-mano-pluginmanger:interface:Started management REST interface @ http://0.0.0.0:8001
13:46:01 INFO:son-mano-base:plugin:Starting MANO Plugin: 'son-plugin.SonPluginManager' ...
13:46:01 Traceback (most recent call last):
13:46:01   File "/usr/local/bin/son-mano-pluginmanager", line 11, in <module>
13:46:01     load_entry_point('son-mano-pluginmanager', 'console_scripts', 'son-mano-pluginmanager')()
13:46:01   File "/son-mano-pluginmanager/son_mano_pluginmanager/__main__.py", line 33, in main
13:46:01     pluginmanager.main()
13:46:01   File "/son-mano-pluginmanager/son_mano_pluginmanager/pluginmanager.py", line 212, in main
13:46:01     SonPluginManager()
13:46:01   File "/son-mano-pluginmanager/son_mano_pluginmanager/pluginmanager.py", line 67, in __init__
13:46:01     auto_heartbeat_rate=0)
13:46:01   File "/usr/local/lib/python3.4/site-packages/sonmanobase-0.9-py3.4.egg/sonmanobase/plugin.py", line 82, in __init__
13:46:01   File "/usr/local/lib/python3.4/site-packages/sonmanobase-0.9-py3.4.egg/sonmanobase/messaging.py", line 234, in __init__
13:46:01   File "/usr/local/lib/python3.4/site-packages/sonmanobase-0.9-py3.4.egg/sonmanobase/messaging.py", line 68, in __init__
13:46:01   File "/usr/local/lib/python3.4/site-packages/sonmanobase-0.9-py3.4.egg/sonmanobase/messaging.py", line 79, in setup_connection
13:46:01   File "/usr/local/lib/python3.4/site-packages/AMQPStorm-2.2.2-py3.4.egg/amqpstorm/uri_connection.py", line 46, in __init__
13:46:01   File "/usr/local/lib/python3.4/site-packages/AMQPStorm-2.2.2-py3.4.egg/amqpstorm/connection.py", line 70, in __init__
13:46:01   File "/usr/local/lib/python3.4/site-packages/AMQPStorm-2.2.2-py3.4.egg/amqpstorm/connection.py", line 190, in open
13:46:01   File "/usr/local/lib/python3.4/site-packages/AMQPStorm-2.2.2-py3.4.egg/amqpstorm/io.py", line 100, in open
13:46:01   File "/usr/local/lib/python3.4/site-packages/AMQPStorm-2.2.2-py3.4.egg/amqpstorm/io.py", line 171, in _find_address_and_connect
13:46:01 amqpstorm.exception.AMQPConnectionError: Could not connect to broker:5672

SSM: Start implementation for first year PoC

@mpeuster @mehraghdam @smendel @stevenvanrossem @wtaverni @adrian-rosello @shuaibsiddiqui @DarioValocchi @pkarkazis : Hi all!

Since performing scaling / using SSMs is part of our year1 goal, I tried to make a simplified MSC/workflow that could lead to a first simple implementation: http://wiki.sonata-nfv.eu/index.php/MSC_Kernel_US_Service_Scaling_Simple_First_Iteration#Explanation

Could you go through it and highlight missing links? Especially for the monitoring (the SP side) and the infrastructure adapter, are these suggestions doable, or am I assuming functionality that is not there yet?

To speed up the process on this, we could hold a call somewhere in the next couple of days.

"Service lifecycle management" to "Specific manager registry" interface

Hi,

The service lifecycle management (SLM) service send a YAML descriptor to the specific manager registry (SMR) about the deployed service and the needed SSMs. The YAML is created at son-mano-framework/plugins/son-mano-service-lifecycle-management/son_mano_slm/slm.py:589 and processed from the son-mano-framework/son-mano-specificmanager/son-mano-specific-manager-registry/son_mano_specific_manager_registry/specificmanagerregistry.py:106 position. It's easy to see that the expected format is not the same as the one that is provided. Which service has an incorrect interface implementation? What is the intended interface (YAML schema?)

Regards,
Janos

Repositories - MANO Framework API for initial implmentaion of year 1

In the simple service deployment flow the following interactions are expected between the SLM and the repositories:

  • the SLM is expected to register the eventually running service in the relevant repositories.
    the APIs needs to be defined, and its use should be implemented in the SLM.
  • The SLM should verify there are available resources for the service

Derived from:
#23

see also
https://github.com/sonata-nfv/son-sp-repos/issues/3

@shuaibsiddiqui @vidalenc @felipevicens

Re-enable resource request from SLM to IA

For now, I disabled this code, since it was causing issues with the broker. Their seemed to be an issue with the callback_factory method.

I'll give a more clear description next week (this github issue will help me remind it)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.