{ "info": { "author": "UFCG", "author_email": "ricardo@lsd.ufcg.edu.br", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "[![PyPI version](https://badge.fury.io/py/networking-oneview.svg)](https://badge.fury.io/py/networking-oneview)\n[![Build Status](https://travis-ci.org/HewlettPackard/networking-oneview.svg?branch=master)](https://travis-ci.org/HewlettPackard/networking-oneview)\n[![Coverage Status](https://codecov.io/gh/HewlettPackard/networking-oneview/branch/master/graphs/badge.svg)](https://codecov.io/gh/HewlettPackard/networking-oneview)\n\nHPE OneView Mechanism Driver\n============================\n\nOverview\n--------\n\nThe Mechanism Driver dynamically reflects some networking operations\nmade by [OpenStack Neutron](https://wiki.openstack.org/wiki/Neutron) to\n[HPE\nOneView](https://www.hpe.com/us/en/integrated-systems/software.html).\nThese operations allows the OneView administrator to know what is\nhappening in the OpenStack System, and automatizes some operations.\n\nThe following diagram describes an overview of how Neutron and OneView\nwill interact using the Mechanism Driver. This driver uses\npython-hpOneView to provide communication between Neutron and OneView\nvia REST API.\n\n +---------------------------------+\n | |\n | Neutron Server |\n | (with ML2 plugin) |\n | |\n | +---------------------+\n | | OneView | Ironic API +----------------+\n | | Mechanism +--------------+ Ironic |\n | | Driver | +----------------+\n +-----------+----------+----------+\n |\n REST API |\n |\n +---------+---------+\n | OneView |\n +-------------------+\n\nThe OneView Mechanism Driver aims at having the Ironic-Neutron\nintegration for multi-tenancy working with nodes driven by the OneView\ndrivers for Ironic.\n\nHow the driver works\n--------------------\n\nThe OneView Mechanism Driver does not reflect all networking operations\nin Neutron to OneView. To identify if a certain Neutron request should\nbe fulfilled, the Mechanism Driver checks if the networks and ports are\nrelated with networks/connections created on OneView.\n\nThere are two cases regarding the usage of networks (both properties are\nin the configuration file detailed in the following):\n\n\u200b1. When the user wants to map a Neutron provider network to the\nOneViewUplinkSet, so that every network/port operation on this provider\nnetwork will be reflected (created) on OneView. This mapping is made\nusing the uplinkset\\_mappings property. In this situation the\nadministrator defines comma-separated triples of:\n\n uplinkset_mappings=::\n\nThese can be related to two types of Uplink Sets:\n\n- Ethernet Uplink Sets - to support VLAN networks.\n- Untagged Uplink Sets - to support flat network.\n\n\u200b2. When the user wants Neutron to be aware of a previously created\nnetwork on OneView, so that this network will be mapped onto a provider\nnetwork, and every port/connection operation using that provider network\nwill use the mapped network to attach to the connection on OneView. In\nthis situation the administrator defines comma-separated pairs of:\n\n flat_net_mappings=:\n\nIn the case of port operations, only Neutron ports related to managed\nnetworks with the *local\\_link\\_information* field populated are\nconsidered. The mechanism driver also uses the information from the MAC\naddress of the requested port, to identify the specific NIC of the\nServer Profile where the operation should be executed. This information\ncan be directly configured in the Neutron port or passed by the Ironic\nport field *local\\_link\\_connection*.\n\nThe driver also implements a fault tolerance process to guarantee that\nall networks and ports that are present in Neutron are correctly\nreflected in OneView. To ensure that, the verification is executed in\nthe startup of the mechanism driver and periodically after the\ninitialization. This synchronization process considers the information\nfrom the configuration file, and the information stored in the OneView\nMechanism Driver tables present in the Neutron Database.\n\nConsidering these assumptions, OneView Mechanism Driver is capable of\nthe following:\n\n- **Create a network** in OneView for each network creation request in\n Neutron to the physical provider-networks configured in the driver\n config file.\n- **Add networks to Uplink Sets** in OneView for the mapped Uplink Set\n to the physical provider-network in the driver config file.\n\n > - Ethernet Uplink Sets are used with vlan typed provider\n > networks\n > - Untagged Uplink Sets are used with flat typed provider\n > networks\n\n- **Manual mapping** of Neutron flat networks onto specified\n pre-existing networks of OneView.\n- **Create, remove, and update connections** in Server Profiles,\n implementing Neutron port binding.\n\n > - Works only when Neutron port with binding\\_vnic\\_type =\n > baremetal\n > - Expects Server Hardware ID and boot priority in the\n > local\\_link\\_information of the Ironic port\n\n- **Synchronization** of all networks and ports/connections, to\n provide fault tolerance.\n\nIronic Configuration\n--------------------\n\nBy default, Ironic is configured to use flat networks during the\ndeployment process. In order to use Ironic-Neutron integration to\nprovide networks isolation during deployment, some configuration is\nnecessary. In the ironic.conf file the following configuration should be\ndone:\n\n [DEFAULT]\n enabled_network_interfaces = flat,noop,neutron\n default_network_interface = neutron\n\n [neutron]\n cleaning_network = \n provisioning_network = \n\nAs mentioned in the previous section, the OneView Mechanism Driver needs\nto receive the `local_link_connection` from Ironic ports to perform\nnetworking ports operations. Once Ironic ports do not have any\ninformation stored by default, it is necessary to update ports with the\nlocal-link-connection:\n\n openstack baremetal port set --node --local-link-connection switch_id= --local-link-connection switch_info='\"{\\\"server_hardware_id\\\": \\\"\\\", \\\"bootable\\\": \\\"True\\\"}\"' --local-link-connection port_id='' --pxe-enabled true\n\n> **note**\n>\n> The Ironic OneView CLI creates Ironic ports and set\n> \u201clocal\\_link\\_connection\u201d.\n\n**local\\_link\\_connection attributes**\n\n- switch\\_id: required, but the OneView Mechanism Driver does not deal\n directly with switches. switch\\_id receives any value in MAC format.\n Example: 01:23:45:67:89:ab\n- port\\_id : required, but the OneView Mechanism Driver does not deal\n directly. port\\_id receives any value.\n- switch\\_info: will be configured with information demanded by\n OneView Mechanism Driver.\n\n > - server\\_hardware\\_id: identifies in which Server Hardware the\n > connection to represent the new port will be created\n > - bootable: indicates if this connection will be bootable or\n > not. It is required for performance deploy.\n\nTo identify the port where the connection needs to be created, the MAC\naddress already configured in the Ironic port will be used.\n\nInstall using OpenStack\n-----------------------\n\nTo install the OneView Mechanism Driver, access the virtual environment\non Neutron Server Container:\n\n $ source /openstack/venvs//bin/activate\n\nTo install the OneView Mechanism Driver, run:\n\n $ pip install networking-oneview\n\nConfiguration\n-------------\n\n1. To configure Neutron ML2 plugin, access the file:\n\n /etc/neutron/plugins/ml2/ml2\\_conf.ini\n\n- Add the OneView driver:\n\n mechanism_drivers = ,oneview\n\n1.1 On both containers (Neutron Server and Neutron Agent):\n\n- Insert the networks flat,vlan:\n\n tenant_network_types = vxlan,flat,vlan\n\n- Insert the flat physical networks:\n\n [ml2_type_flat]\n\n flat_networks = public,,\n\n- Insert the vlan physical networks:\n\n [ml2_type_vlan]\n\n network_vlan_ranges = public,,\n\n2. To configure the OneView configuration, access the file:\n\n /etc/neutron/plugins/ml2/ml2\\_conf\\_oneview.ini\n\n> **note**\n>\n> If you are using TLS options for communication with OneView; it is\n> necessary to download the credentials (appliance.com.crt) from OneView\n\n oneview_host=\n username=\n password=\n uplinkset_mappings=,\n flat_net_mappings=,\n ov_refresh_interval=\n tls_cacert_file = \n\n3. In Neutron Agent, edit:\n\n /etc/neutron/plugins/ml2/linuxbridge\\_agent.ini\n\nMap neutron ports used by the container as follow:\n\n [linux_bridge]\n physical_interface_mappings = ,\n\n4. Upgrading Neutron Database:\n\n- Upgrade database:\n\n $ neutron-db-manage upgrade heads\n\n- Edit the /etc/systemd/system/\\.service file.\n : - In the property ExecStart add:\n\n --config-file\n /etc/neutron/plugins/ml2/ml2\\_conf\\_oneview.ini\n\n- Restart the neutron service:\n\n $ systemctl daemon-reload && service neutron-server restart\n\n- Restart the neutron-agent container:\n\n $ service neutron-linuxbridge-agent restart\n\n5. Configuring haproxy timeout in the outside container (host):\n\n- To set the time on haproxy, edit both files:\n\n /etc/haproxy/conf.d/00-haproxy\n /etc/haproxy/haproxy.cfg\n\n- In the defaults section of the files, change the following lines to:\n\n timeout client 300s\n timeout connect 10s\n timeout server 300s\n\n- Restart the haproxy service:\n\n $ service haproxy restart\n\nLicense\n-------\n\nOneView ML2 Mechanism Driver is distributed under the terms of the\nApache License, Version 2.0. The full terms and conditions of this\nlicense are detailed in the LICENSE file.\n\nContributing\n------------\n\nFork it, branch it, change it, commit it, and pull-request it. We are\npassionate about improving this project, and are glad to accept help to\nmake it better. However, keep the following in mind: We reserve the\nright to reject changes that we feel do not fit the scope of this\nproject. For feature additions, please open an issue to discuss your\nideas before doing the work.\n\nFeature Requests\n----------------\n\nIf you have a need not being met by the current implementation, please\nlet us know (via a new issue). This feedback is crucial for us to\ndeliver a useful product. Do not assume that we have already thought of\neverything, because we assure you that is not the case.\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HewlettPackard/networking-oneview", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "networking-oneview", "package_url": "https://pypi.org/project/networking-oneview/", "platform": "", "project_url": "https://pypi.org/project/networking-oneview/", "project_urls": { "Homepage": "https://github.com/HewlettPackard/networking-oneview" }, "release_url": "https://pypi.org/project/networking-oneview/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "HPE OneView Mechanism Driver for Neutron ML2 plugin", "version": "1.1.0" }, "last_serial": 3628632, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "2f079c302828185fe076b8cc1caa5f98", "sha256": "c3dcf528f2a88ebdd1665a084263a0e78aa76e2cda85aa77d74a51b648e6e9c8" }, "downloads": -1, "filename": "networking-oneview-0.0.2.tar.gz", "has_sig": false, "md5_digest": "2f079c302828185fe076b8cc1caa5f98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35607, "upload_time": "2016-12-20T13:11:40", "url": "https://files.pythonhosted.org/packages/91/82/a97dca1aa42dc93384a0df69a4f8b11ebbe79a64c50a2c82b3efcdf5ce5c/networking-oneview-0.0.2.tar.gz" } ], "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "793cbb21681de6b3fd3de13234aaf251", "sha256": "84862ed97b7df2bc81878367943f57351e30527d97ac53b82bd8dbe3d1b006e4" }, "downloads": -1, "filename": "networking-oneview-0.1.1.tar.gz", "has_sig": false, "md5_digest": "793cbb21681de6b3fd3de13234aaf251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38515, "upload_time": "2016-12-22T17:08:49", "url": "https://files.pythonhosted.org/packages/c9/e2/101788cf03182cac4d123c2698ca50b56578aaa45abc216d99e6b6d59a16/networking-oneview-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7a83100923061aaf53c006311c19707f", "sha256": "fab673b8ccf845504d723f3229f7dbcddcf0bca58630fa390f7d0bc1109b57c5" }, "downloads": -1, "filename": "networking-oneview-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7a83100923061aaf53c006311c19707f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43173, "upload_time": "2017-03-23T19:45:45", "url": "https://files.pythonhosted.org/packages/30/fa/7a838105c5a0471f5f4edf6e2b72984a0aa845f851f1f1bb837543f3279c/networking-oneview-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3d8137154c7826b0c2b71e7fc07662fb", "sha256": "a73f3e64be991ae353bc0bce4b2649fea2e1e18f08f20046dac42c2082856501" }, "downloads": -1, "filename": "networking-oneview-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3d8137154c7826b0c2b71e7fc07662fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43233, "upload_time": "2017-03-31T11:59:10", "url": "https://files.pythonhosted.org/packages/eb/7c/e4617f2404428af63c4f5d8f1f7402eee59e8f3be6636ddd8d3c834d0358/networking-oneview-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f3ad2d09c1dc101941a7a9d287000156", "sha256": "1466a081ae408ec7b8a7d4f877cee59567b3ab2cebbd15751a01262241886228" }, "downloads": -1, "filename": "networking-oneview-0.2.2.tar.gz", "has_sig": false, "md5_digest": "f3ad2d09c1dc101941a7a9d287000156", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43883, "upload_time": "2017-05-16T20:16:20", "url": "https://files.pythonhosted.org/packages/6c/73/7835cc894195ca782b09dc31b3733b536a9821688c000e3ac2c217da6a04/networking-oneview-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8db764825b3844036bef5bfdcb148dcc", "sha256": "e54d710acc7a1d1c8ca33ece1659c644b713c8bc9522455c68919ab1da4c6019" }, "downloads": -1, "filename": "networking-oneview-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8db764825b3844036bef5bfdcb148dcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43834, "upload_time": "2017-05-23T12:58:42", "url": "https://files.pythonhosted.org/packages/46/d0/f44f2e3e7e468393faa793540f087d0580b3748650376f9e7b37b67dbe82/networking-oneview-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "ffd4c50ef5137d2faa4c940c6ad50aea", "sha256": "fe455d51fc6d1ee08782e6d3e1f06089908aa8adfdb655a4211ec30b9a365299" }, "downloads": -1, "filename": "networking-oneview-0.3.1.tar.gz", "has_sig": false, "md5_digest": "ffd4c50ef5137d2faa4c940c6ad50aea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43983, "upload_time": "2017-07-06T20:11:31", "url": "https://files.pythonhosted.org/packages/e6/00/8ee6f5d5de48a8929d446c13009eaab13f6c09645909c52a1125eca8b64f/networking-oneview-0.3.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "62c332f596d7aeab1134ca539e04a096", "sha256": "2aa49eaf5d1204bf773d133891a388c233c223f40e88b651c8a0bb8d40d2e70e" }, "downloads": -1, "filename": "networking-oneview-1.0.0.tar.gz", "has_sig": false, "md5_digest": "62c332f596d7aeab1134ca539e04a096", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45470, "upload_time": "2018-02-02T14:39:36", "url": "https://files.pythonhosted.org/packages/bf/d1/7aba1075d5b09a59cf5993507e1f7fdcbaced1421313f4e11e11cf748647/networking-oneview-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1591071fccda7ce4b24cd79ffdf947e7", "sha256": "01ef247bf987a3e5fa3c0c267be28240716b5309773098fed50d4cc268d4d482" }, "downloads": -1, "filename": "networking-oneview-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1591071fccda7ce4b24cd79ffdf947e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42764, "upload_time": "2018-02-28T20:09:02", "url": "https://files.pythonhosted.org/packages/f6/14/51e02d260e94f53d6d24f2043fe5f2288559262b83c3416c1a2683b200ba/networking-oneview-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1591071fccda7ce4b24cd79ffdf947e7", "sha256": "01ef247bf987a3e5fa3c0c267be28240716b5309773098fed50d4cc268d4d482" }, "downloads": -1, "filename": "networking-oneview-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1591071fccda7ce4b24cd79ffdf947e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42764, "upload_time": "2018-02-28T20:09:02", "url": "https://files.pythonhosted.org/packages/f6/14/51e02d260e94f53d6d24f2043fe5f2288559262b83c3416c1a2683b200ba/networking-oneview-1.1.0.tar.gz" } ] }