diff options
-rw-r--r-- | .gitignore | 63 | ||||
-rw-r--r-- | apigateway/LICENSE | 182 | ||||
-rw-r--r-- | docs/developer/design/apigateway.rst | 38 | ||||
-rw-r--r-- | docs/developer/design/images/API_gateway_architecture.png | bin | 0 -> 323213 bytes | |||
-rw-r--r-- | docs/developer/design/index.rst | 1 | ||||
-rw-r--r-- | docs/developer/design/policy2tosca.rst | 44 | ||||
-rw-r--r-- | docs/developer/design/tosca2heat.rst | 16 | ||||
-rw-r--r-- | docs/developer/design/verigraph.rst | 4 | ||||
-rw-r--r-- | docs/developer/overview/overview.rst | 14 | ||||
-rw-r--r-- | docs/developer/requirements/parser_requirement_arno_release.rst | 2 | ||||
-rw-r--r-- | docs/release/installation/installation.instruction.rst | 36 | ||||
-rw-r--r-- | docs/release/release-notes/release-notes.rst | 24 |
12 files changed, 232 insertions, 192 deletions
@@ -3,3 +3,66 @@ /docs_build/ /docs_output/ /releng/ + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.testrepository/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# misc files +AUTHORS +ChangeLog diff --git a/apigateway/LICENSE b/apigateway/LICENSE index 67db858..f4346f8 100644 --- a/apigateway/LICENSE +++ b/apigateway/LICENSE @@ -1,175 +1,13 @@ +Copyright 2015 Open Platform for NFV Project, Inc. and its contributors - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + http://www.apache.org/licenses/LICENSE-2.0 - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/developer/design/apigateway.rst b/docs/developer/design/apigateway.rst new file mode 100644 index 0000000..dbeb94d --- /dev/null +++ b/docs/developer/design/apigateway.rst @@ -0,0 +1,38 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +================= +Parser apigateway +================= + +This document provides a description of apigateway, a message relay submodule for the other +parser submodules. + +.. contents:: + :depth: 3 + :local: + +Overview +-------- +Provide unified access interfaces for follow independent parser components: + - tosca2heat + - yang2tosca + - policy2tosca + - verigraph + - parser ui + The apigateway will relay message between above submodules throngh gRPC interface, in additon, +apigateway also exposes restful api to provide parser all functions to the 3rd applications. + + +Architecture +------------ +Apigateway exploits three sub-components: + +- **APIGW**, the main part of apigateway, which is the message center. +- **gRPC**, provide gRPC client and server for the other parser sub-modules, it can be devided +into defferent pair of client/server according to the function. +- **CLI**, command line tool for apigateway access and management . + +Apigateway architecture is shown below: + +.. image:: /images/API_gateway_architecture.png diff --git a/docs/developer/design/images/API_gateway_architecture.png b/docs/developer/design/images/API_gateway_architecture.png Binary files differnew file mode 100644 index 0000000..7fbaa74 --- /dev/null +++ b/docs/developer/design/images/API_gateway_architecture.png diff --git a/docs/developer/design/index.rst b/docs/developer/design/index.rst index 0f29a8a..fa13788 100644 --- a/docs/developer/design/index.rst +++ b/docs/developer/design/index.rst @@ -15,3 +15,4 @@ OPNFV Parser Design Documentation yang2tosca.rst policy2tosca.rst verigraph.rst + apigateway.rst diff --git a/docs/developer/design/policy2tosca.rst b/docs/developer/design/policy2tosca.rst index 3753d6c..3ef1dca 100644 --- a/docs/developer/design/policy2tosca.rst +++ b/docs/developer/design/policy2tosca.rst @@ -1,8 +1,48 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -=================== +================== Parser polic2tosca -=================== +================== +Problem description +------------------- +In NFV, various templates are utilized to describe the deployment requirements, +the post-instantiation records or other purposes.However in order to make these +templates adaptable and feasible for purpose like deployment orchestration/ +automation,certain tooling mechanism that provides template translation is +necessary.When an end user needs to inject/remove policies from the TOSCA +file generated the policy2tosca module comes in as part of parser project. +Design +------ +The following modules are implemented in policy2tosca module. + +CLIFF +----- +cliff is a framework for building command line programs. It uses plugins to +define sub-commands, output formatters, and other extensions.In policy2tosca +we use cliff to define the commands to inject or remove policies from +TOSCA templates. +Reference for PYANG: https://docs.openstack.org/developer/cliff/ + +policy2tosca +------------ +policy2tosca is a custom module written with the plugins of cliff where we +define adding/removing definitions and/or types of policies. +Following are the sub modules under policy2tosca + * add_definition.py: To inject a policy definition to the TOSCA template. + * add_type.py: To inject a policy type to the TOSCA template. + * del_definition.py: To remove a policy definition from the TOSCA template. + * del_type.py: To remove a policy type from the TOSCA template. + +Input +----- +The user specifies the input in command line arguments for the policy2tosca +custom module with the source TOSCA file to which the policies should be +injected/removed. + +Output +------ +The output TOSCA template will be the input TOSCA file with the +modification of policies. diff --git a/docs/developer/design/tosca2heat.rst b/docs/developer/design/tosca2heat.rst index d4ead14..e49718e 100644 --- a/docs/developer/design/tosca2heat.rst +++ b/docs/developer/design/tosca2heat.rst @@ -1,7 +1,19 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -=================== +================= Parser tosca2heat -=================== +================= +Tosca2heat is a opnfv sub-project of parser based on openstack two projects: tosca +parser and heat translator. + +The TOSCA Parser is developed to parse TOSCA Simple Profile in YAML. It reads the +TOSCA templates and creates an in-memory graph of TOSCA nodes and their relationship. +Heat-Translator is a command line tool which takes non-Heat templates as an input +and produces a Heat Orchestration Template (HOT) which can be deployed by Heat. + +More details please refer to openstack related sites. + +Tosca2heat intends to enhanced NFV features in tosca template parse and translator, +such as huge page, dpdk and sriov. diff --git a/docs/developer/design/verigraph.rst b/docs/developer/design/verigraph.rst index d364091..1362e23 100644 --- a/docs/developer/design/verigraph.rst +++ b/docs/developer/design/verigraph.rst @@ -1,9 +1,9 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -================= +================ Parser verigraph -================= +================ This document provides a description of VeriGraph, a formal verification tool for service graphs. diff --git a/docs/developer/overview/overview.rst b/docs/developer/overview/overview.rst index 8baffdd..0a6e9bb 100644 --- a/docs/developer/overview/overview.rst +++ b/docs/developer/overview/overview.rst @@ -10,7 +10,7 @@ OPNFV Parser Danube Overview Doumentation :local: Introduction ---------------- +------------ In NFV, various templates (such as descriptors, records and so on) are utilized to describe the deployment requirements (such as basic VM requirements – vCPU, @@ -27,7 +27,7 @@ translate TOSCA/CAMP templates into certain common templates, which could be used in IaaS orchestration projects like OpenStack Heat. For Arno Release ------------------------- +---------------- Parser is not one of the Arno Release projects, however the project has established the code base for the later releases: @@ -35,7 +35,7 @@ the code base for the later releases: * Initial documentation on use cases Upgrades from Arno Release ------------------------- +-------------------------- For Brahmaputra Release, Parser offers the following additional capabilities: @@ -59,7 +59,7 @@ For Brahmaputra Release, Parser offers the following additional capabilities: scenario. See also https://wiki.opnfv.org/parser. Upgrades from Brahmaputra Release ------------------------ +--------------------------------- For Colorado Release, Parser offers the following additional capabilities: @@ -104,6 +104,10 @@ For Danube Release, Parser offers the following additional capabilities: Satisfiability Modulo Theories (SMT) and the general-purpose SMT solver Z3. It includes a library of network function models. +* New module apigateway added, which focuses on message relay and provides unified restful API + and grpc api to end user who want use parser, additionally one module of parser(such as + yang2tosca) can access the other module(such as tosca2heat) through grpc provided by apigateway + without concern its location. + * The tosca2heat module updated with the intgeration of OpenStack tosca-parser and heat-translator 0.7.0 releases. - diff --git a/docs/developer/requirements/parser_requirement_arno_release.rst b/docs/developer/requirements/parser_requirement_arno_release.rst index 96d1d38..67f812c 100644 --- a/docs/developer/requirements/parser_requirement_arno_release.rst +++ b/docs/developer/requirements/parser_requirement_arno_release.rst @@ -10,7 +10,7 @@ OPNFV Parser Requirements In Arno Release :local: Use Case Description ---------------- +-------------------- * When Operators want to do automation on utilizing VIM to manage hypervisor level accelerators which VNFs don't have knowledge of, certain templates diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index de6956a..323fd4a 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -3,7 +3,7 @@ Parser tosca2heat Installation -============================ +============================== Please follow the below installation steps to install tosca2heat submodule in parser. @@ -81,7 +81,7 @@ Step 3: Change directory to the downloaded directory and run the setup file. python setup.py Step 4: install python-lxml --------------- +--------------------------- Please follow the below installation link. http://lxml.de/installation.html @@ -131,3 +131,35 @@ Step 2: Go to the verigraph directory. Step3: Follow the instructions in README.rst for downloading verigraph dependencies and for installing verigraph. + + +Parser apigateway Installation +============================== + +In the present release, apigateway requires that the following software is also installed: + + - grpcio (https://github.com/golang/protobuf/protoc-gen-go) + +Please follow the below installation steps to install apigateway submodule in parser. + +Step 1: Clone the parser project. + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/parser + +Step 2: Install the apigateway submodule. + +.. code-block:: bash + + # change directory to apigateway + cd parser/apigateway + + # install requirements + pip install -r requirements.txt + + # install apigateway + python setup.py install + +**Notes**: In release D, apigateway submodule is only initial framework code, and more feature will +be provided in the next release. diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 5d62b74..0db5c35 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -90,12 +90,22 @@ Feature additions | **JIRA REFERENCE** | **SLOGAN** | | | | +--------------------------------------+--------------------------------------+ -| | | +| PARSER-111 | Verigraph Code Base | +--------------------------------------+--------------------------------------+ -| | | +| PARSER-112 | Init api gateway framework | +--------------------------------------+--------------------------------------+ -| PARSER-111 | Verigraph Code Base | -| | | +| PARSER-113 | Add input validation test case | ++--------------------------------------+--------------------------------------+ +| PARSER-114 | Add output in vRNC for substitution | +| | mappings. | ++--------------------------------------+--------------------------------------+ +| PARSER-115 | Add output validation for | +| | substitution. | ++--------------------------------------+--------------------------------------+ +| PARSER-116 | Add output validation test case for | +| | substitution. | ++--------------------------------------+--------------------------------------+ +| PARSER-121 | Add ip output in compute node | +--------------------------------------+--------------------------------------+ @@ -108,9 +118,10 @@ Bug corrections | **JIRA REFERENCE** | **SLOGAN** | | | | +--------------------------------------+--------------------------------------+ -| | | +| PARSER-117 | Fix ci bug when integrated with | +| | functest | +--------------------------------------+--------------------------------------+ -| | | +| PARSER-122 | Fix docs bug | +--------------------------------------+--------------------------------------+ Deliverables @@ -123,6 +134,7 @@ Software deliverables - yang2tosca - policy2tosca - verigraph +- apigateway Documentation deliverables ^^^^^^^^^^^^^^^^^^^^^^^^^^ |