From 918d8a13b860db6ff8ea328fb45fd5fdb3ecb680 Mon Sep 17 00:00:00 2001 From: tierno Date: Wed, 2 Dec 2020 17:44:15 +0100 Subject: [PATCH] updating RO develop with the new generation RO Signed-off-by: tierno --- 03-developer-how-to-for-modules.md | 295 ++++++++++++-------------- assets/400px-NGROArchitecture.png | Bin 0 -> 26994 bytes assets/400px-OpenmanoArchitecture.png | Bin 43074 -> 0 bytes 3 files changed, 134 insertions(+), 161 deletions(-) create mode 100644 assets/400px-NGROArchitecture.png delete mode 100644 assets/400px-OpenmanoArchitecture.png diff --git a/03-developer-how-to-for-modules.md b/03-developer-how-to-for-modules.md index 58b7d11..674ec78 100644 --- a/03-developer-how-to-for-modules.md +++ b/03-developer-how-to-for-modules.md @@ -114,200 +114,173 @@ RIGHT: The code organized into the following high level directories: -- **RO/** main RO server engine - - **`RO/osm_ro/`** contains the RO server code files - - **`RO/test/`** contains scripts and code for testing - - **`RO/database_utils/`** contains scripts for database creation, dumping and migration - - **`RO/scripts/`** general scripts, as installation, execution, reporting - - **`RO/scenarios/`** examples and templates of network scenario descriptors - - **`RO/vnfs/`** examples and templates of VNF descriptors -- **RO-client/** contains the own RO client CLI +- **RO-plugin/** contains base classes for VIM and SDN plugins and dummy plugins +- **NG-RO/** the new generation RO is the main server engine - **RO-SDN-*/** contains the SDN plugins - **RO-VIM-*/** contains the VIM plugins +- **RO/** (Deprecated) old RO server engine. +- **RO-client/** (Deprecated) contains the own RO client CLI ### RO Architecture -![OpenmanoArchitecture.png](assets/400px-OpenmanoArchitecture.png) +![NG-RO-Architecture.png](assets/400px-NGROArchitecture.png) + +#### NG-RO Server modules + +The NG-RO module contains the following modules + +**ro_main.py** Starting point. Load configuration from ro.cfg file and overrides with ENV with the format "OSMRO_XXX_YYY". Receives http requests and calls ns.py methods. The accepted URLs are: + +- /ro/version + - GET: To get the version +- /ro/ns/v1/deploy + - GET: just to get list of Network Services (debugging) +- /ro/ns/v1/deploy/(nsrs_id) + - POST: To create a NS action, that is an modification of the current deployment + - GET: Return the list of actions registered over this NS + - DELETE: Removes all the database entries for this NS +- /ro/ns/v1/deploy/(nsrs_id)/(action_id) + - GET: Obtain status over an action or incremental deployment + +An example of the content for creating a NS action is the following: + +```yaml +action_id: proposed id for the action. Normally equals to nscmop_id. RO will append a suffix if already present, to have it unique. +cloud_init_content: {'(vnfr_id):file:cloud-init.cfg': cloud_init_text} +flavor: + - id: '0' # unique in this list + guest-epa: {'cpu-pinning-policy': 'DEDICATED', 'cpu-thread-pinning-policy': 'PREFER', 'mempage-size': 'LARGE', 'numa-node-policy': {'mem-policy': 'STRICT', 'node-cnt': 1}} + name: 'ubuntu_cloudinit-vnf-VM-flv' + storage-gb: 10 + vim_info: {'vim:a9adcb0b-ae70-4e09-9b40-e78b94655829': {}} +image: + - id: '0' # unique in this list + image: ubuntu16.04 + vim_info': {'vim:a9adcb0b-ae70-4e09-9b40-e78b94655829': {}} +name: 'NS_NAME' +ns: + vld: + - id: 'mgmtnet' + mgmt-network: True + name: mgmtnet + vim_info: # vims/sdnc where this vld must be deployed, and parameters for creation + vim:a9adcb0b-ae70-4e09-9b40-e78b94655829: + vim_network_name: 'internal' # look for a network with this name + vnf: # vnfs to deploy + - id: 2434c189-7569-4cad-8bf4-67b2e6bbe4b7 # vnf record id + additionalParamsForVnf: {} # parameters used for jinja2 cloud init + member-vnf-index-ref: '1' + vld: + - id: internal vld_id + vim_info: {vim:a9adcb0b-ae70-4e09-9b40-e78b94655829: {}} + vdur: + - id: ebac7ccb-82f0-49e1-b81a-c03760b6cc58 + additionalParams: # parameters used for jinja2 cloud init + cloud-init': e015e1ef-86ad-4daf-8b42-603c97e6127b:file:cloud-init.cfg # must be at cloud_init_content + count-index: 0 # every instance will have a separate vdur entry + ns-flavor-id: '0' # must exist at flavor.id + ns-image-id: '0' # must exist at image.id + ssh-keys: list of ssh-keys to inject with cloud-init + vim_info: {'vim:a9adcb0b-ae70-4e09-9b40-e78b94655829': {}} + interfaces: + - mgmt-interface: True + mgmt-vnf: True + name: eth0 + ns-vld-id: mgmtnet # connect to ns vld. This id must exist at ns.vld.id or... + vnf-vld-id: mgmtnet # connect to vnf vld. This id must exist at ns.vnf.vld.id -#### RO Server modules - -The RO module contains the following modules - -- **`openmanod.py`** is the main program. It reads the configuration file (`openmanod.cfg`) and execute `httpserver` and wait for the end -- **`httpserver.py`** is a thread that implements the northbound API interface, uses python bottle module. Calls main engine methods to perform the tasks -- **`nfvo.py`** is the main engine, implementing all the methods for the creation, deletion and management of vnfs, scenarios and instances. Operations against a VIM are asynchornous. ACTIONs to be done are stored at database before returning ok to the client -- **`nfvo_db.py`** is the module in charge of database operations. Uses base **`db_base.py`**. Database is managed with MySQLdb python library -- **`openmano_schemas.py`** is a dictionary schemas used to validate API request and response content using jsonschema library -- **`vim_thread.py`** There is a thread per VIM and credentials. It performs basic tasks of creating/deleting VM, networks, flavors, etc. In addition it refreshes the VM and network status. It calls vimconn.py methods -- **`vimconn.py`** is the base class for the VIM plugin. It contains the definition of the methods to be implemented. The inherited - **`console_proxy_thread.py`** is a thread that implements a TCP/IP proxy for the console access to ## a VIM. - -#### RO Client modules - -Other modules not part of the server are: - -- **`roclient.py`** is a CLI client - -#### ACTIONS and TASKS - -ACTIONS are a a group of tasks performed against a a concrete instance-scenarios (NS record). The creation and deletion of the instance-scenario itself is an action. As it is asynchonous, NBI returns an "Action_id" that can be used to check the status. For each action, nfvo.py generates individual tasks for the related VIMs. Tasks are both stored at database and sent to the related vim_thread.py. A task has a concrete relation with a VIM, e.g. create/delete a VM, a network, ... look for a flavor, ## network, ... - -#### Database content - -TODO: add details on DB content - -### Database changes +``` -Database schema can be changed if needed. It is recommended to use a graphical tool (e.g. Heidy) to change database and change it back and copy the SQL commands. Make these steps: +**ns.py** Main engine. Compute the requests. Main methods are: -1. `RO/osm_ro/openmanod.py`: increment `__version__`, `version_date` and `database_version` -2. `RO/osm_ro/database_utils/migrate_mano_db.sh`. See the three "TODO" - - 2a. Increment `LAST_DB_VERSION` - - 2b. Annotate a comment to have a track of versions: `[ $OPENMANO_VER_NUM -ge 50XX ] && DB_VERSION=XX #0.5.XX => XX` - - 2c. Generate new methods; `function upgrade_to_XX()` and `function downgrade_from_XX()`. Insert here the sql commands. Last sql command over schema_version is quite important to detect the database version. +- method deploy: Used for create/delete/modify a NS. It computes differences between current deployment (read from database nsrs and vnfrs) and target deployment in the body of the http requests. It create tasks (database ro_tasks) to accomplish target. Same method is used for a new instantiation, scale or termination (empty target). An action id can be provided (normally equal to the nslcmop_id). Otherwise a new id is created an returned for later polling. +- method status: get status of a previously created action. The action_id must be supplied +- method delete: remove database entries for a NS when no longer is needed. Used when NS is deleted +This module also manages the creation of ns_threads and track the VIMs/SDNCs/WIMs that they are processing -Test several upgrades/downgrades to version 20 with `migrate_mano_db.sh` and `migrate_mano_db.sh 20` +**ns_thread.py** Manage and perform all the ro_tasks of one, or several VIM/SDNC/WIM +Each one has a queue to receive orders: -### Package dependency osm-im +- `load_vim`/`reload_vim`: to load or reload a VIM/SDNC/WIM and start processing ro_tasks of this element +- `check_vim`: Load if needed a VIM/SDNC/WIM, check connectivity and credentials and update its status on database +- `unload_vim`. Stop processing ro_tasks of this VIM/SDNC/WIM +- `terminate`: finish thread -It is under IM repository. It contains the OSM models. Used models at RO are under `/models/yang/vnfd.yang` and `/models/yang/nsd.yang`. More modules will be incorporated in the future. +Apart from reading this queue, its main work is reading and processing pending ro_tasks. It performs a lock/unlock writing in a key `locked_at` for HA exclusiveness processing: -When IM is built, `pyangbind` generates python source files imported at RO. They are used to validate and load a yaml/json VNFD and NSD catalog descriptor. +- Looks for ro_tasks where `to_check_at` less than current time, `target_id` one of its vim list, `locked_at` less than current time minus LOCKED_TIME +- Locks it by writing at `locked_at` current time. If fails abandon this ro_task +- Processes all the tasks. Classes `VimInteraction` are used for that. Then updates database (`target_record`) with the result +- Updates and unlock ro_task (by setting `locked_at` with current time minus LOCKED_TIME) -Method `pybindJSONDecoder.load_ietf_json` from pyangbind is used to parse and load the descriptor. A structure of nested YANG classes are generated and used at `/osm_ro/nfvo.py` methods `new_vnfd_v3` and `new_nsd_v3`. RO supports backwards compatibility with old format descriptors. NBI (`osm_ro/httpserver.py`) uses `.../v3/...` at URL to differentiate between old and new descriptors. CLI (openmano) detects automatically if the descriptor is in old format or in OSM format to send the ## request to the server using the old URL or the new "v3" URL +**vim_admin.py** +Read kafka topics for VIM/SDNCs/WIM (broadcast mode over all RO workers) and order to load/check/unload. +Detect unattended ro_tasks (among others because a crass of a previos RO worker) and order to load this VIM/SDNC/WIM to start processing these ro_tasks (done by `vim_watcher` method) -#### Installation +**html_out.py** Just to serve a developer simple UI +**validation.py** Contain jsonschema to validate input content of http -The OSM binary installation install this package. In case of needed you can install/update it manually by: +#### Database content -```bash -apt-get update -apt-get install make git python python-pip tox debhelper python-bitarray python-lxml -python3 -m pip install --upgrade pip -# If not inside a container. Use "sudo -HE" to get root privileges for pip installation -git clone https://osm.etsi.org/gerrit/osm/IM -python3 -m install -e IM -# Use this line to check if it is installed and where -python3 -c 'import osm_im; print osm_im.__path__[0]' +NG-RO manages two collection over a non relational database +**ro_tasks** +There is a ro_task entry per element in a VIM/SDNC/WIM (a network, flavor, image, VM). It contains a list of tasks. A task is an action as CREATE (find with filter or create with params), EXEC (e.g. inject a key) or DELETE. Each task contains the target (NS,VNFRS) with path where the status must be updated upon completion. Stored internal plugin information used by itself for later deletion + + +```yaml + _id: unique id + locked_by: just for debugging + locked_at: Time (with up to 6 decimals) when this is locked. After some time it is considered unlocked automatically. In case locked crashes + target_id: has the format "vim:vim_id", "sdn:sdnc_id" or "wim:wim_id" + vim_info: # object with vim_information needed to maintain and delete: + created: False, If the item has been created by OSM and then need to be deleted + created_items: extra information returned by plugins and used by them to delete + vim_id: internal VIM id + vim_name: internal VIM name + vim_status: internal VIM status + vim_details: text with error message + refresh_at: when this information needs to be refreshed + modified_at: when it has been modified + created_at: when it has been created + to_check_at: when it needs to be processed/refreshed + tasks: # list with + - action_id: all tasks has one action id, normally the nslcmop_id; instantiate, scale, terminate + nsr_id: NS id where this task belong. + task_id: action_id:task_index + status: SCHEDULED, DONE, ERROR + action: CREATE, EXEC, DELETE + item: vdu, net, flavor, image, sdn-net + target_record: nsrs::path.to.entry.to.update or vnfrs::path.to,update + target_record_id: The identity of the element with the format nsrs::path.id + common_id: used to indentify the same element for different NS. Used for common netslice VLDs for different NSs ``` -### CLI client - -The RO code contains a python CLI (openmano) that allows friendly command execution. This CLI client can run on a separate machine where openmano server is running. `openmano config` indicates where the ## server is (by default `localhost`). - -### Northbound Interface - -The RO uses a REST API with YAML/JSON content. The primitives are explained [here]## (16-ro-northbound-rest-api.md) - -### Running Unit Tests +Note that same ro_task can contain tasks for several NS. It can contains also several "CREATE" tasks, each one with different target_record (place where to update the result) -#### Launching RO +**ro_nsrs** +This is used to store important internal information over a NS. In current version it stores the private an public ssh-key (one different per NS) used to inject keys to the VM. Public key is injected using cloud-init. Other keys are injected using the private key. -RO can run as `systemd` service. (Can be installed with `./scripts/install-openmano-service.sh -f RO`). - -Or can be run inside a screen (the preferred method for developers). The script to easily launch/remove is `./scripts/service-openmano.sh`. Execute with `-h` to see options. - -Note that the general OSM install script, installs openmano inside a container and code run at folder `/opt/openmano` (instead of `$HOME/openmano`). +```yaml +public_key: public_ssh_key +private_key: private_ssh_key_encrypted +actions: [] # list of ids for every action. Used to avoid duplications +``` #### Tests -Many of RO operations rely on an external VIM. Without external infrastructure it is recommended to use openvim in "test" (fake) mode. Install it in the same machine where openmano is located with [OpenVIM_installation_(Release_One)#Installation](10-00-openvim-install.md#installation) - -Run; - -```bash -. ./test/basictest.sh --force --screen --init-openvim -``` +There are dummy VIMs and dummy SDN that can be used for system tests without needed facilities ### Creating a new VIM plugin Choose a name, eg. XXX -Create a new plugin folder RO-VIM-XXX. Copy one of the existing, there are several connectors already created to be used as example as openstack and openvim. Openstack connector uses the python openstack client libraries, meanwhile openvim connector uses direct http requests. Create a class derived from vimconn.py. Implement the relevant functions. +Create a new plugin folder RO-VIM-XXX. Copy one of the existing, there are several connectors already created to be used as example as openstack. Create a class derived from vimconn.py. Implement the relevant functions. DO NOT change the method names, parameters or parameter content. RO uses the same methods for all the VIMs and they cannot be changed to accommodate VIM specifics. VIM specifics must be solved inside the connector. The new module can need specific configuration for the VIM that it is passed as a dictionary in the *config* variable at constructor. For example, in the case of openstack, `config` variable is used for: enabling/disabling port_security_enable, specifying the name of the physical network used for dataplane, regions, etc. The `config` variable is the right place to specify those needed parameters not provided by RO at the methods that form part of the VIM configuration. See [Openstack configuration#Add openstack to OSM](05-02-openstack-configuration.md#add-openstack-to-osm) and [Configuring AWS for OSM Release TWO#Add AWS to OSM](12-aws-configuration.md#add-aws-to-osm) for examples. -```bash -openmano tenant-create osm # if not already done -export OPENMANO_TENANT=osm -openmano datacenter-create --type=XXX --config -# if fails the cause can be a library you need not installed or an error upon importing. Try tho import it in a python client -# example of text: "{dataplane_physical_net: physnet_sriov, port_security_enabled: False}" -openmano datacenter-attach --vim-tenant-name= --user= --password= -``` - -You can test it using the `test/test_RO.py` file: - -```bash -# Create manually an image and a management network at your VIM -./test/test_RO.py deploy --help -# e.g. ./test/test_RO.py deploy -n -t osm -i -d --timeout=30 --test simple_linux,simple_multi_vnfc,simple_2_vnf -./test/test_RO.py vimconn --help -``` - -To be able to run the `test/test_RO.py` script, you need to do some changes. First in the class `vim_connector` you need to import the plugin of the new vim: - -```python -def test_vimconnector(args): - global test_config - sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + "/osm_ro") - test_config['vimtype'] = args.vimtype - if args.vimtype == "aws": - import vimconn_aws as vim -``` - -And also,some tests are depending on the vim, you you would need to look for the following chain: `'test_config['vimtype'] =='` and place the code for the call to your vim there. For instance: - -```python - def test_000_connect(self): - self.__class__.test_text = "{}.{}. TEST {}".format(test_config["test_number"], - self.__class__.test_index, - inspect.currentframe().f_code.co_name) - - self.__class__.test_index += 1 - if test_config['vimtype'] == 'vmware': - vca_object = test_config["vim_conn"].connect() - logger.debug("{}".format(vca_object)) - self.assertIsNotNone(vca_object) - elif test_config['vimtype'] == 'openstack': - test_config["vim_conn"]._reload_connection() - network_list = test_config["vim_conn"].get_network_list() - logger.debug("{}".format(network_list)) - self.assertIsNotNone(network_list) -``` - -The script could be used to launch tests against the vim connector directly with the following syntax: - -```bash -python ./test/test_RO.py vimconn --vimtype XXX -t -u -c '{user: , passwd: }' --test -``` - -Next you can find the tests that could be executed: - -```bash -test_vimconn_connect -test_vimconn_delete_network -test_vimconn_get_image_list -test_vimconn_get_network -test_vimconn_new_flavor -test_vimconn_new_network -test_vimconn_new_vminstance -``` - -Also, the script could be used to launch tests against the RO with the following syntax: - -```bash -python ./test/test_RO.py deploy -d -n -i --tests -``` - -Next you can find the tests that could be executed: - -```bash -v3_2vdu_set_ip_mac -simple_multi_vnfc -simple_linux -``` +Create methods must return a unique ´id´ and it can return an object with extra information that will be available at deleteion method. The content is VIM dependent, It admit nested dictionaries, but never use a forbidden mongo character (start with '$' or contains '.' in any key) ### Creating a new SDN/WIM plugin diff --git a/assets/400px-NGROArchitecture.png b/assets/400px-NGROArchitecture.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef4bf5b4512369291820a10c37c3eb4885c198e GIT binary patch literal 26994 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%0ArOSv-Bs{-bps`+x0~efQ+-?eg3Ir>~Fs|F2zs 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 -- GitLab