Augment Dynamic UI with DSL object model templating

Registered by Timur Sufiev

In Murano pre-0.5 days Dynamic UI rendered forms that mapped to plain object model: every additional form step simply added some attributes to the list which then was finally passed to murano-api. With the introduction of Object Inheritance & Composition object model passed to murano-api has changed: it is no more a plain list, but is a nested dictionary/list instead.

The plan is to leave forms as they are now (a sequence of steps, excluding changes addressed by https://blueprints.launchpad.net/murano/+spec/new-web-ui-prototype ), and then convert plain data to nested using templates transformations defined in the same Dynamic UI file/blob.

Blueprint information

Status:
Complete
Approver:
Alexander Tivelkov
Priority:
High
Drafter:
Timur Sufiev
Direction:
Approved
Assignee:
Timur Sufiev
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 0.5
Started by
Timur Sufiev
Completed by
Timur Sufiev

Related branches

Sprints

Whiteboard

Example UI definition for Active Directory application

Version: 2

Templates:
  host:
    type: com.mirantis.murano.services.windows.Host
    adminPassword: {YAQL: $.serviceConfiguration.adminPassword}
    name: {YAQL: interpolate($.serviceConfiguration.unitNamingPattern, coalesce($, 1)}
    flavor: {YAQL: $.instanceConfiguration.flavor}
    image: {YAQL: $.instanceConfiguration.osImage}

  secondaryController:
    type: com.mirantis.murano.services.windows.activeDirectory.SecondaryController
    host: $host

Application:
  type: com.mirantis.murano.services.windows.activeDirectory.ActiveDirectory
  name: {YAQL: $.serviceConfiguration.name}
  primaryController:
    type: com.mirantis.murano.services.windows.activeDirectory.PrimaryController
    host: $host
  secondaryControllers: repeat($secondaryController, $.serviceConfiguration.dcInstances - 1)

Forms:
  - ... [unchanged]

Gerrit topic: https://review.openstack.org/#q,topic:bp/dynamic-ui-augment,n,z

Addressed by: https://review.openstack.org/81742
    Use YAQL to generate MuranoPL object model from plain data.

Addressed by: https://review.openstack.org/81743
    Refactor get_unit_templates method using recursive_apply helper.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.