Reviewing all files to make sure no doc8 errors are present.
Change-Id: Ic073a7fb4096269d6b1781cecfdb2c4c8aa7b552
Issue-ID: VNFRQTS-281
Signed-off-by: Bozawglanian, Hagop (hb755d) <hb755d@att.com>
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
:keyword: MUST
If a VNF's port is connected to an internal network and the
- port is created in an Incremental Module and the internal network is created
- in the Base Module then the UUID of the internal network **MUST** be exposed
+ port is created in an Incremental Module and the internal
+ network is created in the Base Module then the UUID of the
+ internal network **MUST** be exposed
as a parameter in the 'outputs:' section of the Base Module and the port
resource **MUST** use a 'get_param' to obtain the network UUID.
+
ONAP does not programmatically enforce a naming convention for
parameters for internal network. However, a naming convention is
provided that must be followed.
.. code-block:: yaml
- parameters:
- vf_module_index:
- type: number
- description: Unique index for this VNF Module instance
- oam_vm_name_0:
- type: string
- description: VM Name for lb VM 0
- int_ctrl_net_id:
- type: string
- description: Neutron UUID for the internal control network
- oam_vm_int_ctrl_ips:
- type: comma_delimited_list
- description: Fixed IP assignments for oam VMs on the internal control
- network
- resources:
- oam_vm_server_0:
- type: OS::Nova::Server
- properties:
- name: { get_param: oam_vm_name_0 }
- networks:
- - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
- . . .
- metadata:
- vf_module_index: { get_param: vf_module_index }
- oam_vm_0_int_ctrl_port_0:
- type: OS::Neutron::Port
- properties:
- network: { get_param: int_ctrl_net_id }
- fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param, vf_module_index]}}}]
+ parameters:
+ vf_module_index:
+ type: number
+ description: Unique index for this VNF Module instance
+ oam_vm_name_0:
+ type: string
+ description: VM Name for lb VM 0
+ int_ctrl_net_id:
+ type: string
+ description: Neutron UUID for the internal control network
+ oam_vm_int_ctrl_ips:
+ type: comma_delimited_list
+ description: Fixed IP assignments for oam VMs on the internal control
+ network
+ resources:
+ oam_vm_server_0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: oam_vm_name_0 }
+ networks:
+ port: { get_resource: oam_vm_0_int_ctrl_port_0 }
+
+ . . .
+
+ metadata:
+ vf_module_index: { get_param: vf_module_index }
+ oam_vm_0_int_ctrl_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: int_ctrl_net_id }
+ fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param, vf_module_index}]}}]
workload\_context
++++++++++++++++++
type: OS::Neutron::Port
properties:
network: { get_param: oam_net_id }
- fixed_ips: [ { "ip_address": {get_param: db_oam_ip_0}}, { "ip_address": {get_param: db_oam_v6_ip_0 ]}}]
+ fixed_ips: [ { "ip_address": {get_param: db_oam_ip_0}}, { "ip_address": {get_param: db_oam_v6_ip_0 }}]
db_1_oam_port_0:
type: OS::Neutron::Port
properties:
network: { get_param: oam_net_id }
fixed_ips:
- - "ip_address": {get_param: db_oam_ip_1}}]
- - "ip_address": {get_param: db_oam_v6_ip_1}}]
+ - "ip_address": {get_param: db_oam_ip_1}
+ - "ip_address": {get_param: db_oam_v6_ip_1}
*Example: comma_delimited_list parameters for IPv4 and IPv6 Address
properties:
network: { get_param: int_oam_int_net_id }
fixed_ips: [ { "ip_address": {get_param: db_oam_int_ip_0}}, {
- "ip_address": {get_param: db_oam_int_v6_ip_0 ]}}]
+ "ip_address": {get_param: db_oam_int_v6_ip_0 }}]
db_1_int_ctrl_port_0:
type: OS::Neutron::Port
properties:
network: { get_param: int_oam_int_net_id }
fixed_ips:
- - "ip_address": {get_param: db_oam_int_ip_1}}]
- - "ip_address": {get_param: db_oam_int_v6_ip_1}}]
+ - "ip_address": {get_param: db_oam_int_ip_1}
+ - "ip_address": {get_param: db_oam_int_v6_ip_1}
Property: fixed\_ips, Map Property: subnet\_id
resource_def:
type: my_nested_vm_template.yaml
properties:
- name: {get_param: [vm_name_list, %index%]}
+ name: {get_param: [vm_name_list, "%index%"]}
Although this appears to use the nth entry of the vm_name_list list for
the nth element of the OS::Heat::ResourceGroup, it will in fact result
type: my_nested_vm_template.yaml
properties:
names: {get_param: vm_name_list}
- index: %index%
+ index: "%index%"
You can then reference within the nested template as:
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
.. req::
- :id: R-20741
+ :id: R-20741
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **Configure** command.
.. req::
- :id: R-19366
+ :id: R-19366
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **ConfigModify** command.
.. req::
- :id: R-32981
+ :id: R-32981
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **ConfigBackup** command.
.. req::
- :id: R-48247
+ :id: R-48247
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **ConfigRestore** command.
.. req::
- :id: R-94084
+ :id: R-94084
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **ConfigScaleOut** command.
.. req::
- :id: R-56385
+ :id: R-56385
:target: XNF
:keyword: MUST
.. req::
- :id: R-12706
+ :id: R-12706
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **QuiesceTraffic** command.
.. req::
- :id: R-07251
+ :id: R-07251
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **ResumeTraffic** command.
.. req::
- :id: R-83146
+ :id: R-83146
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **StopApplication** command.
.. req::
- :id: R-82811
+ :id: R-82811
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **StartApplication** command.
.. req::
- :id: R-19922
+ :id: R-19922
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **UpgradePrecheck** command.
.. req::
- :id: R-49466
+ :id: R-49466
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **UpgradeSoftware** command.
.. req::
- :id: R-45856
+ :id: R-45856
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **UpgradePostCheck** command.
.. req::
- :id: R-97343
+ :id: R-97343
:target: XNF
:keyword: MUST
The xNF **MUST** support ONAP Controller's **UpgradeBackup** command.
.. req::
- :id: R-65641
+ :id: R-65641
:target: XNF
:keyword: MUST
.. req::
- :id: R-11790
+ :id: R-11790
:target: VNF
:keyword: MUST
**Restart (stop/start or reboot)** command.
.. req::
- :id: R-56218
+ :id: R-56218
:target: VNF
:keyword: MUST
Compute Node / Physical Server.
.. req::
- :id: R-38001
+ :id: R-38001
:target: VNF
:keyword: MUST
The VNF **MUST** support ONAP Controller's **Rebuild** command.
.. req::
- :id: R-76901
+ :id: R-76901
:target: VNF
:keyword: MUST
.. req::
- :id: R-41430
+ :id: R-41430
:target: XNF
:keyword: MUST
.. req::
- :id: R-88026
+ :id: R-88026
:target: XNF
:keyword: MUST
runtime configuration and lifecycle management capabilities.
.. req::
- :id: R-95950
+ :id: R-95950
:target: XNF
:keyword: MUST
.. req::
- :id: R-73468
+ :id: R-73468
:target: XNF
:keyword: MUST
service and SSH port numbers are Heat template parameters.
.. req::
- :id: R-90007
+ :id: R-90007
:target: XNF
:keyword: MUST
**close-session()**- Gracefully close the current session.
.. req::
- :id: R-70496
+ :id: R-70496
:target: XNF
:keyword: MUST
configuration datastore to the running configuration.
.. req::
- :id: R-18733
+ :id: R-18733
:target: XNF
:keyword: MUST
datastore to the running configuration.
.. req::
- :id: R-44281
+ :id: R-44281
:target: XNF
:keyword: MUST
replacing, creating, or deleting new config elements.
.. req::
- :id: R-60106
+ :id: R-60106
:target: XNF
:keyword: MUST
the list of xNF supported schemas.
.. req::
- :id: R-29488
+ :id: R-29488
:target: XNF
:keyword: MUST
a) configuration from the configuration datastore source.
.. req::
- :id: R-11235
+ :id: R-11235
:target: XNF
:keyword: MUST
**kill-session(session)** - Force the termination of **session**.
.. req::
- :id: R-02597
+ :id: R-02597
:target: XNF
:keyword: MUST
**lock(target)** - Lock the configuration datastore target.
.. req::
- :id: R-96554
+ :id: R-96554
:target: XNF
:keyword: MUST
**unlock(target)** - Unlock the configuration datastore target.
.. req::
- :id: R-29324
+ :id: R-29324
:target: XNF
:keyword: SHOULD
configuration datastore source to the configuration datastore target.
.. req::
- :id: R-88031
+ :id: R-88031
:target: XNF
:keyword: SHOULD
datastore target.
.. req::
- :id: R-97529
+ :id: R-97529
:target: XNF
:keyword: SHOULD
**get-schema(identifier, version, format) -** Retrieve the YANG schema.
.. req::
- :id: R-62468
+ :id: R-62468
:target: XNF
:keyword: MUST
NETCONF RPCs that make configuration changes are not sufficient.
.. req::
- :id: R-01382
+ :id: R-01382
:target: XNF
:keyword: MUST
of whether it was configured via NETCONF or other mechanisms.
.. req::
- :id: R-28756
+ :id: R-28756
:target: XNF
:keyword: MUST
part of the <running> configuration at the same time.
.. req::
- :id: R-83873
+ :id: R-83873
:target: XNF
:keyword: MUST
request.
.. req::
- :id: R-68990
+ :id: R-68990
:target: XNF
:keyword: MUST
database. It can also be locked and unlocked.
.. req::
- :id: R-68200
+ :id: R-68200
:target: XNF
:keyword: MUST
schemes allow for remote storage of configuration databases.
.. req::
- :id: R-20353
+ :id: R-20353
:target: XNF
:keyword: MUST
**:writable-running** are provided then two locks should be supported.
.. req::
- :id: R-11499
+ :id: R-11499
:target: XNF
:keyword: MUST
1.0 specification is supported.
.. req::
- :id: R-83790
+ :id: R-83790
:target: XNF
:keyword: MUST
The xNF **MUST** implement the **:validate** capability.
.. req::
- :id: R-49145
+ :id: R-49145
:target: XNF
:keyword: MUST
**:candidate** is supported.
.. req::
- :id: R-58358
+ :id: R-58358
:target: XNF
:keyword: MUST
[RFC6243].
.. req::
- :id: R-59610
+ :id: R-59610
:target: XNF
:keyword: MUST
download as defined in [RFC6022].
.. req::
- :id: R-93443
+ :id: R-93443
:target: XNF
:keyword: MUST
and the mapping to NETCONF shall follow the rules defined in this RFC.
.. req::
- :id: R-26115
+ :id: R-26115
:target: XNF
:keyword: MUST
be handled by a built-in automatic upgrade mechanism.
.. req::
- :id: R-10716
+ :id: R-10716
:target: XNF
:keyword: MUST
configuration of separate objects within itself.
.. req::
- :id: R-29495
+ :id: R-29495
:target: XNF
:keyword: MUST
operation on that same interface parameter).
.. req::
- :id: R-53015
+ :id: R-53015
:target: XNF
:keyword: MUST
out all others until completed.
.. req::
- :id: R-02616
+ :id: R-02616
:target: XNF
:keyword: MUST
if a non-overlapping parameter on the interface is being configured).
.. req::
- :id: R-41829
+ :id: R-41829
:target: XNF
:keyword: MUST
lock via a restricted or full XPath expression.
.. req::
- :id: R-66793
+ :id: R-66793
:target: XNF
:keyword: MUST
configuration method out).
.. req::
- :id: R-54190
+ :id: R-54190
:target: XNF
:keyword: MUST
is terminated).
.. req::
- :id: R-03465
+ :id: R-03465
:target: XNF
:keyword: MUST
when the corresponding <partial-unlock> operation succeeds.
.. req::
- :id: R-63935
+ :id: R-63935
:target: XNF
:keyword: MUST
setting of a lock expiration timer).
.. req::
- :id: R-10173
+ :id: R-10173
:target: XNF
:keyword: MUST
using the <kill-session> operation to guard against hung NETCONF sessions.
.. req::
- :id: R-88899
+ :id: R-88899
:target: XNF
:keyword: MUST
within the context of this locking requirements framework.
.. req::
- :id: R-07545
+ :id: R-07545
:target: XNF
:keyword: MUST
the supplied YANG code and associated NETCONF servers.
.. req::
- :id: R-60656
+ :id: R-60656
:target: XNF
:keyword: MUST
The xNF **MUST** support sub tree filtering.
.. req::
- :id: R-80898
+ :id: R-80898
:target: XNF
:keyword: MUST
TThe xNF **MUST** support heartbeat via a <get> with null filter.
.. req::
- :id: R-25238
+ :id: R-25238
:target: VNF
:keyword: MUST
The xNF PACKAGE **MUST** validated YANG code using the open
source pyang [#7.3.1]_ program using the following commands:
- .. code-block:: python
+ .. code-block:: text
- $ pyang --verbose --strict <YANG-file-name(s)> $ echo $!
+ $ pyang --verbose --strict <YANG-file-name(s)> $ echo $!
.. req::
- :id: R-63953
+ :id: R-63953
:target: XNF
:keyword: MUST
otherwise the validation has failed.
.. req::
- :id: R-26508
+ :id: R-26508
:target: XNF
:keyword: MUST
.. req::
- :id: R-28545
+ :id: R-28545
:target: XNF
:keyword: MUST
Protocol (NETCONF)".
.. req::
- :id: R-22700
+ :id: R-22700
:target: XNF
:keyword: MUST
"NETCONF Base Notifications".
.. req::
- :id: R-10353
+ :id: R-10353
:target: XNF
:keyword: MUST
"An Architecture for Network Management Using NETCONF and YANG".
.. req::
- :id: R-53317
+ :id: R-53317
:target: XNF
:keyword: MUST
"Guidelines for Authors and Reviewers of YANG Data Model Documents".
.. req::
- :id: R-33955
+ :id: R-33955
:target: XNF
:keyword: SHOULD
"Common YANG Data Types".
.. req::
- :id: R-22946
+ :id: R-22946
:target: XNF
:keyword: SHOULD
"NETCONF Access Control Model".
.. req::
- :id: R-10129
+ :id: R-10129
:target: XNF
:keyword: SHOULD
"A YANG Data Model for Interface Management".
.. req::
- :id: R-12271
+ :id: R-12271
:target: XNF
:keyword: SHOULD
"IANA Interface Type YANG Module".
.. req::
- :id: R-49036
+ :id: R-49036
:target: XNF
:keyword: SHOULD
"A YANG Data Model for IP Management".
.. req::
- :id: R-87564
+ :id: R-87564
:target: XNF
:keyword: SHOULD
"A YANG Data Model for System Management".
.. req::
- :id: R-24269
+ :id: R-24269
:target: XNF
:keyword: SHOULD
.. req::
- :id: R-33946
+ :id: R-33946
:target: XNF
:keyword: MUST
"NETCONF Configuration Protocol".
.. req::
- :id: R-04158
+ :id: R-04158
:target: XNF
:keyword: MUST
"Using the NETCONF Configuration Protocol over Secure Shell (SSH)".
.. req::
- :id: R-13800
+ :id: R-13800
:target: XNF
:keyword: MUST
"NETCONF Event Notification".
.. req::
- :id: R-01334
+ :id: R-01334
:target: XNF
:keyword: MUST
"Partial Lock Remote Procedure Call".
.. req::
- :id: R-08134
+ :id: R-08134
:target: XNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 6241,
+ The xNF **MUST** conform to the NETCONF RFC 6241,
"NETCONF Configuration Protocol".
.. req::
- :id: R-78282
+ :id: R-78282
:target: XNF
:keyword: MUST
.. req::
- :id: R-31809
+ :id: R-31809
:target: XNF
:keyword: MUST
.. req::
- :id: R-79224
+ :id: R-79224
:target: XNF
:keyword: MUST
Chef Server as part of the installation process.
.. req::
- :id: R-72184
+ :id: R-72184
:target: XNF
:keyword: MUST
trigger push jobs against FQDNs of endpoints for a xNF, if required.
.. req::
- :id: R-47068
+ :id: R-47068
:target: XNF
:keyword: MAY
responsible for all functionality.
.. req::
- :id: R-67114
+ :id: R-67114
:target: VNF
:keyword: MUST
.. req::
- :id: R-27310
+ :id: R-27310
:target: XNF
:keyword: MUST
ONAP for loading on appropriate Chef Server.
.. req::
- :id: R-26567
+ :id: R-26567
:target: XNF
:keyword: MUST
in JSON file.
.. req::
- :id: R-98911
+ :id: R-98911
:target: XNF
:keyword: MUST NOT
for the xNF in roles/cookbooks/recipes invoked for a xNF action.
.. req::
- :id: R-37929
+ :id: R-37929
:target: XNF
:keyword: MUST
in roles/cookbooks/recipes invoked for a xNF action.
.. req::
- :id: R-62170
+ :id: R-62170
:target: XNF
:keyword: MUST
cookbooks and recipes.
.. req::
- :id: R-78116
+ :id: R-78116
:target: XNF
:keyword: MUST
executing a xNF action.
.. req::
- :id: R-44013
+ :id: R-44013
:target: XNF
:keyword: MUST
chef-client run be made available (e.g., get running configuration).
.. req::
- :id: R-30654
+ :id: R-30654
:target: XNF
:keyword: MUST
any errors for actions that change state of the xNF (e.g., configure).
.. req::
- :id: R-65755
+ :id: R-65755
:target: XNF
:keyword: SHOULD
the chef-client run need not post the results back via callback.
.. req::
- :id: R-15885
+ :id: R-15885
:target: XNF
:keyword: MUST
.. code-block:: java
- {
- "command": "chef-client",
- "run\_timeout": 300,
- "nodes”: [“node1.vnf\_a.onap.com”, “node2.vnf\_a.onap.com”],
- "env": {
- “RequestId”:”8279-abcd-aksdj-19231”,
- “CallbackUrl”:”<callback>”
- },
- }
+ {
+ "command": "chef-client"
+ "run\_timeout": 300
+ "nodes": ["node1.vnf\_a.onap.com", "node2.vnf\_a.onap.com"]
+ "env": {
+ "RequestId":"8279-abcd-aksdj-19231"
+ "CallbackUrl":"<callback>"
+ }
+ }
+
5. If CallbackCapable field in the template is not present or set to
“False” ONAP will poll the Chef Server to check completion status of
.. req::
- :id: R-32217
+ :id: R-32217
:target: XNF
:keyword: MUST
for invocation of playbooks against these end points [#7.3.3]_.
.. req::
- :id: R-54373
+ :id: R-54373
:target: XNF
:keyword: MUST
of a xNF on which an Ansible playbook will be executed.
.. req::
- :id: R-35401
+ :id: R-35401
:target: XNF
:keyword: MUST
Cloud Service Provider guidelines for authentication and access.
.. req::
- :id: R-82018
+ :id: R-82018
:target: XNF
:keyword: MUST
(userdata) scripts.
.. req::
- :id: R-92866
+ :id: R-92866
:target: XNF
:keyword: MUST
new SSH keys and new mechanized IDs.
.. req::
- :id: R-91745
+ :id: R-91745
:target: XNF
:keyword: MUST
.. req::
- :id: R-40293
+ :id: R-40293
:target: XNF
:keyword: MUST
to the ONAP requirement.
.. req::
- :id: R-49396
+ :id: R-49396
:target: XNF
:keyword: MUST
to complete the request.
.. req::
- :id: R-33280
+ :id: R-33280
:target: XNF
:keyword: MUST NOT
in a playbook.
.. req::
- :id: R-48698
+ :id: R-48698
:target: XNF
:keyword: MUST
.. req::
- :id: R-43253
+ :id: R-43253
:target: XNF
:keyword: MUST
accordingly (failure for failed tasks).
.. req::
- :id: R-50252
+ :id: R-50252
:target: XNF
:keyword: MUST
respective VM/xNF must be written.
.. req::
- :id: R-51442
+ :id: R-51442
:target: XNF
:keyword: SHOULD
rollback when soft rollback is feasible.
.. req::
- :id: R-58301
+ :id: R-58301
:target: XNF
:keyword: SHOULD NOT
to Event Bus.
.. req::
- :id: R-02651
+ :id: R-02651
:target: XNF
:keyword: SHOULD
changes when needed.
.. req::
- :id: R-43353
+ :id: R-43353
:target: XNF
:keyword: MUST
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
.. req::
- :id: R-51910
+ :id: R-51910
:target: XNF
:keyword: MUST
.. req::
- :id: R-19624
+ :id: R-19624
:target: XNF
:keyword: MUST
~~~~~~~~~~~~~~~~~~~~~
.. req::
- :id: R-98191
+ :id: R-98191
:target: XNF
:keyword: MUST
of bulk files.
.. req::
- :id: R-88482
+ :id: R-88482
:target: XNF
:keyword: SHOULD
volume data sets when feasible.
.. req::
- :id: R-84879
+ :id: R-84879
:target: XNF
:keyword: MUST
failure transparently to the xNF.
.. req::
- :id: R-81777
+ :id: R-81777
:target: XNF
:keyword: MUST
will be controlled by policy.
.. req::
- :id: R-08312
+ :id: R-08312
:target: XNF
:keyword: MAY
delivery of binary encoded data sets.
.. req::
- :id: R-79412
+ :id: R-79412
:target: XNF
:keyword: MAY
sets.
.. req::
- :id: R-01033
+ :id: R-01033
:target: XNF
:keyword: MAY
data sets, and deliver these by REST or TCP as appropriate.)
.. req::
- :id: R-63229
+ :id: R-63229
:target: XNF
:keyword: MAY
for synchronous data, using RESTCONF (e.g., for xNF state polling).
.. req::
- :id: R-03070
+ :id: R-03070
:target: XNF
:keyword: MUST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
- :id: R-06924
+ :id: R-06924
:target: XNF
:keyword: MUST
available, or according to the configured frequency.
.. req::
- :id: R-73285
+ :id: R-73285
:target: XNF
:keyword: MUST
as described in the previous paragraphs.
.. req::
- :id: R-42140
+ :id: R-42140
:target: XNF
:keyword: MUST
as those requests are received, as a synchronous response.
.. req::
- :id: R-34660
+ :id: R-34660
:target: XNF
:keyword: MUST
the ONAP configuration subsystem for synchronous communication.
.. req::
- :id: R-86586
+ :id: R-86586
:target: XNF
:keyword: MUST
[RFC8040] (https://tools.ietf.org/html/rfc8040).
.. req::
- :id: R-11240
+ :id: R-11240
:target: XNF
:keyword: MUST
synchronous communication will be consistent with Avro.
.. req::
- :id: R-70266
+ :id: R-70266
:target: XNF
:keyword: MUST
in the future as they become standardized and are made available.)
.. req::
- :id: R-46290
+ :id: R-46290
:target: XNF
:keyword: MUST
configuration model for the xNF by returning the requested data elements.
.. req::
- :id: R-43327
+ :id: R-43327
:target: XNF
:keyword: SHOULD
~~~~~~~~~~
.. req::
- :id: R-42366
+ :id: R-42366
:target: XNF
:keyword: MUST
`RFC7525 <https://tools.ietf.org/html/rfc7525>`_.
.. req::
- :id: R-44290
+ :id: R-44290
:target: XNF
:keyword: MUST
of connections, through secure credentials, log-on and exchange mechanisms.
.. req::
- :id: R-47597
+ :id: R-47597
:target: XNF
:keyword: MUST
The xNF **MUST** carry data in motion only over secure connections.
.. req::
- :id: R-68165
+ :id: R-68165
:target: XNF
:keyword: MUST
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
.. req::
- :id: R-77707
+ :id: R-77707
:target: XNF
:keyword: MUST
contains a list of all the components in the xNF package.
.. req::
- :id: R-66070
+ :id: R-66070
:target: XNF
:keyword: MUST
given by the xNF provider, xNF description, xNF provider, and version.
.. req::
- :id: R-69565
+ :id: R-69565
:target: XNF
:keyword: MUST
after xNF instantiation.
.. req::
- :id: R-00156
+ :id: R-00156
:target: XNF
:keyword: MUST
healing and/or scaling responses).
.. req::
- :id: R-00068
+ :id: R-00068
:target: XNF
:keyword: MUST
plane, etc.) generated by the xNF after instantiation.
.. req::
- :id: R-12678
+ :id: R-12678
:target: XNF
:keyword: MUST
control responses, tests) which can be performed for the xNF.
.. req::
- :id: R-84366
+ :id: R-84366
:target: XNF
:keyword: MUST
format and protocols supported.
.. req::
- :id: R-36280
+ :id: R-36280
:target: XNF
:keyword: MUST
xNF and compose complex services.
.. req::
- :id: R-98617
+ :id: R-98617
:target: XNF
:keyword: MUST
.. req::
- :id: R-89571
+ :id: R-89571
:target: XNF
:keyword: MUST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
- :id: R-30278
+ :id: R-30278
:target: XNF
:keyword: MUST
.. req::
- :id: R-13390
+ :id: R-13390
:target: XNF
:keyword: MUST
on the appropriate Chef Server.
.. req::
- :id: R-18525
+ :id: R-18525
:target: XNF
:keyword: MUST
.. req::
- :id: R-75608
+ :id: R-75608
:target: XNF
:keyword: MUST
on the appropriate Ansible Server.
.. req::
- :id: R-16777
+ :id: R-16777
:target: XNF
:keyword: MUST
in the Appendix.
.. req::
- :id: R-46567
+ :id: R-46567
:target: XNF
:keyword: MUST
for boot sequence and configuration.
.. req::
- :id: R-16065
+ :id: R-16065
:target: XNF
:keyword: MUST
.. req::
- :id: R-22888
+ :id: R-22888
:target: XNF
:keyword: MUST
are implemented in the xNF.
.. req::
- :id: R-01556
+ :id: R-01556
:target: XNF
:keyword: MUST
that are made available by the xNF.
.. req::
- :id: R-16875
+ :id: R-16875
:target: XNF
:keyword: MUST
Root Cause Analysis and resolve the issue.
.. req::
- :id: R-35960
+ :id: R-35960
:target: XNF
:keyword: MUST
descriptions including causes/fixes if applicable for the event.
.. req::
- :id: R-42018
+ :id: R-42018
:target: XNF
:keyword: MUST
and Mobile Flow), that need to be collected at each VM, VNFC (defined in `VNF Guidelines <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/guidelines.git/docs/vnf_guidelines/vnf_guidelines.html#a-glossary>`__ ) and for the overall xNF.
.. req::
- :id: R-27711
+ :id: R-27711
:target: XNF
:keyword: MUST
causes/corrective action.
.. req::
- :id: R-01478
+ :id: R-01478
:target: XNF
:keyword: MUST
collected for reporting purposes.
.. req::
- :id: R-73560
+ :id: R-73560
:target: XNF
:keyword: MUST
application management.
.. req::
- :id: R-90632
+ :id: R-90632
:target: XNF
:keyword: MUST
and performance management purposes.
.. req::
- :id: R-86235
+ :id: R-86235
:target: XNF
:keyword: MUST
its function.
.. req::
- :id: R-33904
+ :id: R-33904
:target: XNF
:keyword: MUST
lower and upper limits.
.. req::
- :id: R-53598
+ :id: R-53598
:target: XNF
:keyword: MUST
significance of the threshold crossing.
.. req::
- :id: R-69877
+ :id: R-69877
:target: XNF
:keyword: MUST
threshold crossing alert event is recorded.
.. req::
- :id: R-22680
+ :id: R-22680
:target: XNF
:keyword: MUST
of the xNF.
.. req::
- :id: R-33694
+ :id: R-33694
:target: XNF
:keyword: MUST
artifacts.
.. req::
- :id: R-56815
+ :id: R-56815
:target: XNF
:keyword: MUST
of users, bandwidth, throughput, concurrent calls).
.. req::
- :id: R-48596
+ :id: R-48596
:target: XNF
:keyword: MUST
the characteristics for the xNF reliability and high availability.
.. req::
- :id: R-74763
+ :id: R-74763
:target: XNF
:keyword: MUST
.. req::
- :id: R-35851
+ :id: R-35851
:target: XNF
:keyword: MUST
applicable) for each interface.
.. req::
- :id: R-97102
+ :id: R-97102
:target: VNF
:keyword: MUST
for all VNF components - for hypervisor, CPU, memory, storage.
.. req::
- :id: R-20204
+ :id: R-20204
:target: VNF
:keyword: MUST
interface connections, internal and external to VNF.
.. req::
- :id: R-44896
+ :id: R-44896
:target: VNF
:keyword: MUST
redundancy model.
.. req::
- :id: R-55802
+ :id: R-55802
:target: VNF
:keyword: MUST
Note: Must comply with the *Heat requirements in 5.b*.
.. req::
- :id: R-26881
+ :id: R-26881
:target: XNF
:keyword: MUST
needed to instantiate the xNF (xNF and VNFC images).
.. req::
- :id: R-96634
+ :id: R-96634
:target: XNF
:keyword: MUST
.. req::
- :id: R-43958
+ :id: R-43958
:target: XNF
:keyword: MUST
the tests that were conducted by the xNF providor and the test results.
.. req::
- :id: R-04298
+ :id: R-04298
:target: XNF
:keyword: MUST
support testing.
.. req::
- :id: R-58775
+ :id: R-58775
:target: XNF
:keyword: MUST
.. req::
- :id: R-85653
+ :id: R-85653
:target: XNF
:keyword: MUST
every license.
.. req::
- :id: R-44125
+ :id: R-44125
:target: XNF
:keyword: MUST
shall define the reporting process and the available reporting tools.
.. req::
- :id: R-40827
+ :id: R-40827
:target: XNF
:keyword: MUST
source licenses their xNF(s) incorporate.
.. req::
- :id: R-97293
+ :id: R-97293
:target: XNF
:keyword: MUST NOT
of Service Provider's business.
.. req::
- :id: R-44569
+ :id: R-44569
:target: XNF
:keyword: MUST NOT
functions and metrics.
.. req::
- :id: R-13613
+ :id: R-13613
:target: VNF
:keyword: MUST
purposes to allow automated scale up/down by the management system.
.. req::
- :id: R-27511
+ :id: R-27511
:target: VNF
:keyword: MUST
restrictions based upon VNF provider permissions.
.. req::
- :id: R-85991
+ :id: R-85991
:target: XNF
:keyword: MUST
be resolved without interrupting in-service xNFs.
.. req::
- :id: R-47849
+ :id: R-47849
:target: XNF
:keyword: MUST
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
{
- “Action”:”Configure”,
+ "Action":"Configure",
"PlaybookName": "<VNFCode>/<Version>/ansible/configure/site.yml",
- "NodeList": ["test1.vnf\_b.onap.com", “test2.vnf\_b.onap.com”],
+ "NodeList": ["test1.vnf_b.onap.com", "test2.vnf_b.onap.com"],
"Timeout": 60,
- "EnvParameters": {"Retry": 3, "Wait": 5, “ConfigFile”:”config.txt”},
+ "EnvParameters": {"Retry": 3, "Wait": 5, "ConfigFile":"config.txt"},
- “FileParameters”:{“config.txt”:”db\_ip=10.1.1.1, sip\_timer=10000”}
+ "FileParameters": {"config.txt":"db_ip=10.1.1.1, sip_timer=10000"}
}
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Example of an Ansible command (after pwd) to run playbook again
vfdb9904v VNF instance:
-.. code-block:: none
+.. code-block:: text
$ pwd
/storage/vfdb/V16.1/ansible/configure
An example of a curl request simulating a Rest API POST requesting execution
of configure Playbook (using playbook relative path):
-.. code-block:: none
+.. code-block:: text
curl -u APIUser:APIPassword -H "Content-type:application/json" -X POST
-d '{"Id": "8412", "PlaybookName": "vfdb/V5.x.x/ansible/configure/site.yml",
Rest API GET request to obtain response/results for prior request
(same Id as POST request above):
-.. code-block:: none
+.. code-block:: text
curl -u APIUser:APIPassword -H 'Content-type: application/json' -X GET
'http://ansible.server.com:5000/Dispatch/?Id=8412&Type=GetResult'
to run the playbook(s) against the target VNF instance. Same example as
above:
-.. code-block:: none
+.. code-block:: text
$ ansible-playbook -i ../inventory/vfdb9904vhosts site.yml --extra-vars "vnf_instance=vfdb9904v"
file with SSH key credentials, to run ansible-playbook listed in this example
above (IP addresses were scrubbed):
-.. code-block:: none
+.. code-block:: text
$ more ../inventory/vfdb9904v/hosts
[host]
And here the scrubbed default arguments for this VNF instance(originated
from previously re-factored playbooks now being phased out):
-.. code-block:: none
+.. code-block:: text
vnf_instance=vfdb9904v
array structure (list) in the CSAR package ENV file, with dots replaced
by underscore:
-.. code-block:: none
+.. code-block:: text
vm_config:
passed down by APPC to Ansible Server always take precedence over
template or VNF instance specific defaults stored in defaults file(s).
-.. code-block:: none
+.. code-block:: text
$ pwd
/storage/vfdb/latest/ansible
INI format. Here is an excerpt from such a file that should look
somewhat similar to ENV files:
-.. code-block:: none
+.. code-block:: text
$ more tmp/vfdb9904v/all.yml
# logins list contain 'login name', 'login group', 'login password'
-.. code-block:: none
+.. code-block:: text
logins:
- { name: 'm99999', group: 'm99999', password: 'abcdefgha' }
Ansible Playbooks – Function directory and main playbook:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/<Playbook Function>/site.yml
Example – Post-instantiation (bulk) configuration –APPC Function -
Configure:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/configure/site.yml
Example – Post-instantiation (bulk) configuration –APPC Function
– Configure – VNF software version 16.1:
-.. code-block:: none
+.. code-block:: text
vfdb/V16.1/ansible/configure/site.yml
Example – Health-check –APPC Function - HealthCheck:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/healthcheck/site.yml
OR (Function directory name does not need to match APPC function name)
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/check/site.yml
Ansible Directories for other artifacts – VNF inventory hosts file -
Required:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/inventory/<VNF instance name>hosts
Ansible Directories for other artifacts – VNF instance specific default
arguments – Optional:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/group_vars/<VNF instance name>
Ansible Directories for other artifacts – VNF (special) groups –
Optional:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/inventory/group_vars/<VNF instance name>
Ansible Directories for other artifacts – VNF (special) other files –
Optional – Example – License file:
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/<Other directory(s)>
- This is the ansible (root) directory referenced on this
note (Ansible Server mount point not included):
-.. code-block:: none
+.. code-block:: text
<VNF type>/<Version>/ansible/
c. Include generic ansible root directory. Creating full directory
path as an example:
-.. code-block:: none
+.. code-block:: text
$ mkdir –p /storage/vfdb/V16.1/ansible**/**
3. Make this directory (VNF ansible root directory) current directory
for next few steps:
-.. code-block:: none
+.. code-block:: text
cd /storage/vfdb/V16.1/ansible/
the playbooks onto the ansible directory. Command depends on the type
of file uploaded, examples would be:
-.. code-block:: none
+.. code-block:: text
tar xvf ..
unzip …
OA&M IP addresses for all VNF instances with known OA&M IP addresses
for respective VMs, example:
-.. code-block:: none
+.. code-block:: text
$ mkdir inventory
arguments for each VNF instance,
example:
-.. code-block:: none
+.. code-block:: text
$ mkdir –p vars/vfdb9904v
$ touch vars/vfdb9904v/default\_args.yml
UpgradePreCheck:
-.. code-block:: none
+.. code-block:: text
$ pwd
/storage/comx/V5.3.1.3/ansible/upgradeprecheck
UpgradePostCheck:
-.. code-block:: none
+.. code-block:: text
$ pwd
/storage/comx/V5.3.1.3/ansible/upgradepostcheck
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Chef Template example:
-.. code-block:: chef
+.. code-block:: erb
“Environment”:{
"name": "HAR",
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
.. needtable::
:style: datatables
- :columns: id;content;target;keyword;section_name
\ No newline at end of file
+ :columns: id;content;target;keyword;section_name
+
+
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Chapter6/index
Chapter7/index
Chapter8/index
- Chapter9/index
\ No newline at end of file
+ Chapter9/index
+
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. Licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.