VNF Primitive Config: Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
(Created page with "'''DISCLAIMER: This page is being updated to reflect changes required for Release FOUR.''' The purpose of the Config primitive is to change the configuration your VNF applica...")
 
No edit summary
 
Line 1: Line 1:
'''DISCLAIMER: This page is being updated to reflect changes required for Release FOUR.'''
The purpose of the Config primitive is to change the configuration your VNF application.
The purpose of the Config primitive is to change the configuration your VNF application.



Latest revision as of 12:33, 26 June 2018

The purpose of the Config primitive is to change the configuration your VNF application.

Config Required
Day 0 Day 1 Day 2
No Yes Yes No

The Config Primitive is handled differently than Service Primitives.

The configuration parameters you'd like to make available for modification are defined in the VNF Charm's config.yaml:

options:
  target_latency:
    default: 100000
    description: Target request latency for overload control (microseconds)
    type: int

The configuration is then exposed to the operator via the VNF Descriptor:



Example code:

@when('config.changed')
def apply_vnf_config():
    """Runs when the config-changed hook is executed."""
    err = ''
    try:
        cfg = config()
        """
        Run the command(s) necessary to perform a safe stop of your VNF
        This could be a single command that encapsulates your stop process...

        """
        result, err = charms.sshproxy._run("/srv/myvnf/config.sh target_latency={}".format(cfg['target_latency']))
    except:
        action_fail('Restart failed:' + err)
    else:
        action_set({'outout': result})

    # Restart your VNF for the change to take affect, if necessary.
    restart_vnf()

For a full example of creating a VNF charm, please see Creating your own VNF charm (Release FOUR).