deb-murano/doc/source/articles/ad-ui.rst
Timur Sufiev 5f38b350f6 Add more info to dynamic UI devdoc article
More fields' attributes are described, as well as rules for
validators' evaluation and different YAQL contexts.

Also replace Telnet example with Active Directory.

Change-Id: I4fb19edfc862b2654409b17053cac31ee11b52be
2014-05-20 12:56:17 +04:00

8.0 KiB

ad.yaml

Version: 2

Templates:
  primaryController:
    ?:
      type: io.murano.windows.activeDirectory.PrimaryController
    host:
      ?:
        type: io.murano.windows.Host
      adminPassword: $.appConfiguration.adminPassword
      name: generateHostname($.appConfiguration.unitNamingPattern, 1)
      flavor: $.instanceConfiguration.flavor
      image: $.instanceConfiguration.osImage
      assignFloatingIp: $.appConfiguration.assignFloatingIP

  secondaryController:
    ?:
      type: io.murano.windows.activeDirectory.SecondaryController
    host:
      ?:
        type: io.murano.services.windows.Host
      adminPassword: $.appConfiguration.adminPassword
      name: generateHostname($.appConfiguration.unitNamingPattern, $index + 1)
      flavor: $.instanceConfiguration.flavor
      image: $.instanceConfiguration.osImage

Application:
  ?:
    type: io.murano.windows.activeDirectory.ActiveDirectory
  name: $.appConfiguration.name
  primaryController: $primaryController
  secondaryControllers: repeat($secondaryController, $.appConfiguration.dcInstances - 1)

Forms:
  - appConfiguration:
      fields:
        - name: configuration
          type: string
          hidden: true
          initial: standalone
        - name: name
          type: string
          label: Domain Name
          description: >-
            Enter a desired name for a new domain. This name should fit to
            DNS Domain Name requirements: it should contain
            only A-Z, a-z, 0-9, (.) and (-) and should not end with a dash.
            DNS server will be automatically set up on each of the Domain
            Controller instances. Note: Only first 15 characters or characters
            before first period is used as NetBIOS name.
          minLength: 2
          maxLength: 255
          validators:
            - expr:
                regexpValidator: '^([0-9A-Za-z]|[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z])\.[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z]$'
              message: >-
                Only letters, numbers and dashes in the middle are
                allowed. Period characters are allowed only when they
                are used to delimit the components of domain style
                names. Single-level domain is not
                appropriate. Subdomains are not allowed.
            - expr:
                regexpValidator: '(^[^.]+$|^[^.]{1,15}\..*$)'
              message: >-
                NetBIOS name cannot be shorter than 1 symbol and
                longer than 15 symbols.
            - expr:
                regexpValidator: '(^[^.]+$|^[^.]*\.[^.]{2,63}.*$)'
              message: >-
                DNS host name cannot be shorter than 2 symbols and
                longer than 63 symbols.
          helpText: >-
            Just letters, numbers and dashes are allowed.
            A dot can be used to create subdomains
        - name: dcInstances
          type: integer
          label: Instance Count
          description: >-
            You can create several Active Directory instances by setting
            instance number larger than one. One primary Domain Controller
            and a few secondary DCs will be created.
          minValue: 1
          maxValue: 100
          initial: 1
          helpText: Enter an integer value between 1 and 100
        - name: adminAccountName
          type: string
          label: Account Name
          initial: Administrator
          regexpValidator: '^[-\w]+$'
          errorMessages:
            invalid: 'Just letters, numbers, underscores and hyphens are allowed.'
        - name: adminPassword
          type: password
          label: Administrator password
          descriptionTitle: Passwords
          description: >-
            Windows requires strong password for service administration.
            Your password should have at least one letter in each
            register, a number and a special character. Password length should be
            a minimum of 7 characters.

            Once you forget your password you won't be able to
            operate  the service until recovery password would be entered. So it's
            better for Recovery and Administrator password to be different.
        - name: recoveryPassword
          type: password
          label: Recovery password
        - name: assignFloatingIP
          required: false
          type: boolean
          label: Assign Floating IP
          description: >-
             Select to true to assign floating IP automatically to Primary DC
          initial: false
          required: false
          widgetMedia:
            css: {all: ['muranodashboard/css/checkbox.css']}
        - name: unitNamingPattern
          type: string
          label: Hostname template
          description: >-
            For your convenience all instance hostnames can be named
            in the same way. Enter a name and use # character for incrementation.
            For example, host# turns into host1, host2, etc. Please follow Windows
            hostname restrictions.
          required: false
          regexpValidator: '^(([a-zA-Z0-9#][a-zA-Z0-9-#]*[a-zA-Z0-9#])\.)*([A-Za-z0-9#]|[A-Za-z0-9#][A-Za-z0-9-#]*[A-Za-z0-9#])$'
          # FIXME: does not work for # turning into 2-digit numbers
          maxLength: 15
          helpText: Optional field for a machine hostname template
          # temporaryHack
          widgetMedia:
            js: ['muranodashboard/js/support_placeholder.js']
            css: {all: ['muranodashboard/css/support_placeholder.css']}
      validators:
        # if unitNamingPattern is given and dcInstances > 1, then '#' should occur in unitNamingPattern
        - expr: $.appConfiguration.dcInstances < 2 or not $.appConfiguration.unitNamingPattern.bool() or '#' in $.appConfiguration.unitNamingPattern
          message: Incrementation symbol "#" is required in the Hostname template
  - instanceConfiguration:
      fields:
        - name: title
          type: string
          required: false
          hidden: true
          descriptionTitle: Instance Configuration
          description: Specify some instance parameters on which service would be created.
        - name: flavor
          type: flavor
          label: Instance flavor
          description: >-
            Select registered in Openstack flavor. Consider that service performance
            depends on this parameter.
          required: false
        - name: osImage
          type: image
          imageType: windows
          label: Instance image
          description: >-
            Select valid image for a service. Image should already be prepared and
            registered in glance.
        - name: availabilityZone
          type: azone
          label: Availability zone
          description: Select availability zone where service would be installed.
          required: false