VNF Owner/Service Designer will be able to manage VNF Operations in SDC. VNF Operations depict the lifecycle operations supported by the VNF.

Each VNF Operation will have an optional workflow defined for it.

VNF Owner/Service Designer will map the VNF Properties to workflow input parameters and workflow output parameters to VNF attributes. SO will use this mapping to perform the mapping at runtime. This will enable workflows to be agnostic of VNFs.

  • No labels

6 Comments

  1. Is this being aligned with the TOSCA operations. To put it another way, if I build a TOSCA service template and specify operations on different nodes, will those operations show up in the workflow designer?


    1. Yes, this is aligned with TOSCA Operations.

      We do not have the capability to show service operations from TOSCA service template in workflow designer. We might need this in future to enable vendor to model VNF specific operations for controllers to invoke.

      Current scope of workflow designer is generate a BPMN workflow for SO. BPMN workflow is based on Activity/Task made available to workflow designer. These Activity/Task can be registered in SDC Catalog for being available to workflow designer through a Manage Activity Spec REST API. These Activity/Task are expected to be generic and not specific to any VNF essentially having the logic to perform various tasks like assign, configure, start, stop, etc..

      We are only enabling modeling of VNF operations that are expected to be requested from north-bound systems to SO.

  2. 1 Modeling Workflow with TOSCA

    In fact, workflows have been defined in the Tosca-Simple-Profile-Yaml v1.2 specification. But it do not support the standard bpmn/bpel workflow, and need to extend.

    Example in Tosca-Simple-Profile v1.2:
    topology_template:
      workflows:
        deploy:
          description: Workflow to deploy the application
          steps: 
            A:
              on_success:
                - B
                - C
             # omitted here for brevity
    Example of Standard Worflow Extend:
    topology_template:
      node_templates: # omitted here for brevity
    
      workflows:
        start_workflow:
          description: start a vnf
          language: bpmn
          reference: Plans/init.bpmn20.xml
    Grammar of Standard Worflow Extend:
    topology_template:
      node_templates: # omitted here for brevity
    
      workflows:
        <workflow_name>:
          description: <workflow_description>
          language: <workflow_language>
          reference: <workflow_referenced_artifact>
    1. Workflow Definition in the Tosca-Simple-Profile-Yaml v1.2 specification.

      3.8.7 Imperative Workflow definition

      A workflow definition defines an imperative workflow that is associated with a TOSCA topology.

      3.8.7.1 Keynames

      The following is the list of recognized keynames for a TOSCA workflow definition:

      Keyname

      Required

      Type

      Description

      description

      no

      description

      The optional description for the workflow definition.

      metadata

      no

      map of string

      Defines a section used to declare additional metadata information.

      inputs

      no

      list of

      property definitions

      The optional list of input parameter definitions.

      preconditions

      no

      list of precondition definitions

      List of preconditions to be validated before the workflow can be processed.

      steps

       

      No

      list of step definitions

      An optional list of valid Node Templates or Groups the Policy can be applied to.

       

      3.8.7.2 Grammar

      Imperative workflow definitions have the following grammar:

      <workflow_name>:

        description: <workflow_description>

        metadata:

          <map of string>

        inputs:

          <property_definitions>

        preconditions:

         - <workflow_precondition_definition>

        steps:

          <workflow_steps>

      In the above grammar, the pseudo values that appear in angle brackets have the following meaning:

      • workflow_name:
      • workflow_description:
      • property_definitions:
      • workflow_precondition_definition:
      • workflow_steps:
  3. 2 Modeling Operation-Workflow Mapping with TOSCA

    Use the keyword 'substitution_mappings' & 'interfaces' in the Tosca-Simple-Profile-Yaml v1.2 specification to describe the mapping between operations and workflows.

    Grammar:
    topology_template:
      substitution_mappings:
        interfaces:
          <interface_name>:
            <operation_name>:
              mapping: <workflow_name>
              inputs: 
                <property assignments> # <property_name>: <property_value> | { <property_value_expression> }
    Example:
    topology_template:
      substitution_mappings:
        interfaces:
          Standard:
            start:
              mapping: start_workflow
              inputs:
                aaa: value1
                wp_db_name: 
                  get_property: [ mysql_database, name ]
                db_root_password: 
                  get_input: db_root_pwd
    1. substitution_mappings definition in the Tosca-Simple-Profile-Yaml v1.2 specification.

      3.8.12 Substitution mapping

      A substitution mapping allows to create a node type out of a given topology template. This allows the consumption of complex systems using a simplified vision.

      3.8.12.1 Keynames

      Keyname

      Required

      Type

      Description

      node_type

      yes

      string

      The required name of the Node Type the Topology Template is providing an implementation for.

      properties

      no

      List of property mappings

      The optional list of properties mapping allowing to map properties of the node_type to inputs, node template properties or values.

      capabilities

      no

      List of capability mappings

      The optional list of capabilities mapping.

      requirements

      no

      List of requirement mappings

      The optional list of requirements mapping.

      interfaces

      no

      List of interfaces mappings

      The optional list of interface mapping allows to map an interface and operations of the node type to implementations that could be either workflows or node template interfaces/operations.