Enhancements for Simple YAML Profile v1.2

Slides:



Advertisements
Similar presentations
Improving Learning Object Description Mechanisms to Support an Integrated Framework for Ubiquitous Learning Scenarios María Felisa Verdejo Carlos Celorrio.
Advertisements

JavaScript I. JavaScript is an object oriented programming language used to add interactivity to web pages. Different from Java, even though bears some.
Making Choices in C if/else statement logical operators break and continue statements switch statement the conditional operator.
CSC110 Fall Chapter 5: Decision Visual Basic.NET.
ASP.NET Programming with C# and SQL Server First Edition
Programming Concepts MIT - AITI. Variables l A variable is a name associated with a piece of data l Variables allow you to store and manipulate data in.
IB ACM InfiniBand Communication Management Assistant (for Scaling) Sean Hefty.
TOSCA Workloads with OpenStack Heat-Translator
Database Design for DNN Developers Sebastian Leupold.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS CloudBand June 2014.
Visual Basic Programming
Kind: “Pod” (i.e. Type) kind: “Pod” (i.e. Type) Kubernetes Analysis: 2 types of containers “Dumb” (no HA, no Autoscale) = Pod Template kind: “ReplicationController”
NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS CloudBand June 2014.
Random Logic l Forum.NET l State Machine Mechanism Forum.NET 1 st Meeting ● December 27, 2005.
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
World of Wokcraft The very best in Single pan cooking themed fantasy gaming!
1 Sections 7.2 – 7.7 Nested Control Statements Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
TOSCA workflows. Default workflow is declarative (generated from nodes and relationships) install at the beginning of install workflow all instances are.
Update for tosca-nfv-profile
SDN-O LCM for Mercury Release Key Points and Overview
ONAP CLI (Command-Line Interface ) Architecture
Open-O CLI (Command-Line Interface ) Architecture
Business rules.
Lesson # 9 HP UCMDB 8.0 Essentials
Chapter 6 JavaScript: Introduction to Scripting
Chapter 6 The Traditional Approach to Requirements.
ONAP SDC TOSCA Import Gap Analysis
UCS Director: Tenant Onboarding
Microsoft Build /4/2018 9:08 PM Jeff Hollan / Derek Li
VNFD and NSD modeling: Rel2 Thinh Nguyenphu, Nokia thinh
Deployment Flavour as VNF Capability: Alt1_r3
Clarification of CSAR format Thinh Nguyenphu, Nokia thinh
DF design as a node type.
Scripts & Functions Scripts and functions are contained in .m-files
JavaScript: Functions.
Indexer AKEEL AHMED.
NSD modeling: Rel2 Nagesha Subramanya nagesha.
TOSCA Matching Or how the orchestrator provides implementation for abstract nodes or dangling requirements.
Nov, 2015 Howard Huang, Huawei Julien Zhang, ZTE
DF design as a node type (output by Chris and shitao)
DF design as a node type (output by Chris and shitao)
Questions for Implementers Recommendation
Topics Introduction to File Input and Output
TOSCA Namespaces Explained
Odb A short visit Object Database in C++.
Instance Model Structure
TOSCA workflows.
Chapter (3) - Looping Questions.
PHP.
DF design as a node type (output by Chris and shitao)
Type & Typeclass Syntax in function
An Introduction to Software Architecture
Deployment Flavour as VNF Capability: Alt1_r2
TOSCA Simple Profile for YAML: Changes proposed for 1.3 release
JavaScript CS 4640 Programming Languages for Web Applications
JavaScript: Introduction to Scripting
TOSCA v1.3 Enhancements February 21, 2019.
Topics Introduction to File Input and Output
TOSCA v1.3 Deprecated Features and Non-Backward-Compatible Changes
NFV adhoc Shitao li.
Controller Design Studio – Architecture & Design
Instructor Materials Chapter 5: Ensuring Integrity
Programming Basics Review
Product Training Program
Software Development Process Using UML Recap
Task 55 Scope – TOSCA Profile
SDC BL and Titan overview
Presentation transcript:

Enhancements for Simple YAML Profile v1.2 April 3, 2017 Thinh Nguyenphu, Nokia, thinh.nguyenphu@nokia.com Prabakaran Venugopal, Nokia, prabakaran.venugopal@nokia.com Moshe Elisha, Nokia, moshe.elisha@nokia.com

Adding metadata to parameter definition (see Simple YAML v1.1: section 3.5.12.2) Goal – Store arbitrary information on an parameter. Use case - Protect sensitive information (such as passwords) when user keying in GUI or group inputs together in GUI systems. Proposal – Add optional “metadata” keyname to parameter / input definition. Note: TOSCA implementers can decide on some keys to have special unified meaning across implementations inputs:   pin_code:     type: integer     description: 4 digits PIN code     constraints:       - in_range: [ 1000, 9999 ] metadata: # Arbitrary key value map masked: true group: common

Support generic data structures See Simple YAML v1.1: section 3.2 (Parameter and property types) Goal - Support generic / unknown / complexed data structures for better integration with external systems. Use cases Expose a parameter that is simply passed as is to underlying layers (for example, Heat supports the “json” parameter data type). Allow reading unknown data structures from external systems (for example, using “get_operation_output” from a workflow output). Proposal – Add “json” as a valid data type for input / property / attribute. inputs: fw_server_metadata: type: json Note: This enhancement is already existed in Heat template https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#parameters-section Heat Orchestration Template - Parameter section

See Simple YAML v1.1: section 3.5.12.2 and 3.5.2 Validate JSON values See Simple YAML v1.1: section 3.5.12.2 and 3.5.2 Goal – Enforce a certain schema / structure on JSON type inputs / properties / attributes Use case – Passing a metadata object with certain rules and structure that describes a VM expiration policy. Proposal – Add “schema” as a valid constraint type (applicable for JSON data type). inputs: metadata: type: json constraints: - schema: { "properties": { "expiration": { "type": "integer", "minimum": 0 }, "action": { "enum": [ "stop", "terminate" ] } "required": ["expiration"]

Support custom constraints See Simple YAML v1.1: section 3.5.2 (Constraint Clause) Goal – A way for the author to define a custom logic that will validate values Use cases Validate that a value against dynamic valid values Add a constraint logic that does not exist (for example, “prime numbers”) Proposal – Add “custom” as a valid constraint type. The “my_int” value will be passed to prime_constraint.sh as an argument and the script will exit with exit code of zero if the value is a prime number. inputs: my_int: type: integer constraints: - custom: prime_constraint.sh

Control operation executions See Simple YAML v1.1: section 3.5.14 (Interface Definition) Goal – An easy mechanism to handle interface operations failures Use case – Loops waiting for resources (Like waiting for SSH on a VM) Proposal – Add “timeout” and “retry” keynames to interface operation. node_templates: my_node: ...     interfaces:       Standard:         create:           implementation: change_hostname.sh           timeout: 500 # timeout in seconds for each iteration retry: # Retry 5 times with 30 seconds delay delay: 30 count: 5

Assigning attributes values after operation execution See Simple YAML v1.1: section 3.5.14 (Interface Definition) Goal – Assign values to attributes after a successful operation execution Use cases Assigning an operation output in an attribute for easy access Creating a Nuage managed network in OpenStack that requires a Nuage subnet and a Neutron network Proposal – Add “assign” clause to allow setting attributes. Read the assign section as follows: “After executing implementation, assign the value <value> into attribute <attribute_name> of entity <destination>” node_templates: my_node: ...     interfaces:       Standard:         start:           implementation: start.sh assign: - value: { get_operation_output: [ SELF, Standard, start, pid ] } destination: SELF attribute_name: process_id

Define attributes as final See Simple YAML v1.1: section 3.5.10 (Attribute Definition) Goal – Protect system attributes or any attribute that should not be changed after it was assigned once Use case – Prevent from overriding system attributes Proposal – Add “final” keyname to attribute definition. Default false. tosca.nodes.Root: derived_from: tosca.entity.Root description: The TOSCA Node Type all other TOSCA base Node Types derive from attributes: tosca_id: type: string final: true tosca_name: state: ...

Enhance concat intrinsic function See Simple YAML v1.1: section 4.3.1 (Intrinsic functions, concat) Goal – Allow concatenation of values of different types with a custom delimiter Use case – Many use cases like generating names. Proposal – Add optional “delimiter” argument to “concat” and support all kind of data types. Alternative – Add a new “join” function and keep “concat”. outputs: example1: value: { concat: [["prefix", 1111, "suffix" ], "_" ] } # prefix_1111_suffix example2: value: { concat: [["prefix", 1111, "suffix" ]] } # prefix1111suffix Note: This enhancement is already existed in Heat template https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#list-join Heat Orchestration Template - Intrinsic functions, list_join