VMware Cloud Community
Bushbaker27
Contributor
Contributor
Jump to solution

Dynamic Aria Assembler Template Input Form Arrays and Other Inputs

I am creating a template for an environment that spins up multiple VMs. There are quite a few inputs and one of them I wanted was to allow the user to specify a list of users that should have Administrator rights on the VMs. I am using dynamic actions for most of the input fields and that works well for the majority of them. However, it seems that there is no support for making an array of items specified by the user; in my case, this is an array of usernames that the template user can specify.

My ideal solution would be that I can use an array input and whenever the user wants to specify someone to add to the Administrators group they type the name of that individual. An action would query the Active Directory and bring back possible matches to the inserted name. The user can then pick from a list of matches and select the correct one.

A semi-decent mock-up of this can be done in Orchestrator with two input fields, a search bar and an array:

Bushbaker27_0-1695328258437.png

The problem with this is that if you type a new name, it will destroy the list and populate it with other names that now match the new search. Additionally, this isn't even the root problem, as we are talking about the input form in Assembler. Assembler templates don't even have the capability for arrays to take external sources as their values.

Bushbaker27_1-1695328569350.png

 

How am I to achieve this type of UX with Aria Assembler template input forms? Is this something that is feasible or should I just settle for sending a long string of names in one input parameter? Is it possible for the development team at VMWare to port over the input editor from the Orchestrator workflow editor?

0 Kudos
1 Solution

Accepted Solutions
xian_
Expert
Expert
Jump to solution

You are using the wrong tool. In Assembler you define the cloud template and its inputs. Think of this as an API definition for your service.

In Service Broker you create Custom Forms, which provides the GUI for your service, this is the presentation layer.

So you need to define your input as Array of Strings in Assembler, then go to Service Broker and create a Custom Form for your published content (cloud template). For an Array of Strings input you have 3 options:

xian__0-1695992910830.png

 

Array Input is the default, with a very basic input list where the user can type:

xian__1-1695992985826.png

Multi Select: here you can define a predefined list of options the user can choose from. This list can be static or external source (action based).

xian__2-1695993096166.png

And Dual List, with a predefined list of options (static/external):

xian__3-1695993166649.png

 

Having an AD query is not possible as the Cloud Template inputs are limited to primitive types (string, number, boolean and object (properties)). The drawback of the above solutions is that you have to list all the users to select from, and an AD can have too much users to display.

XaaS forms (backed by vRO workflows) can have custom resource types as inputs (AD user, for example) where you could use Value Picker, but this is not available for Cloud Templates. What you can do is create a Resource Action of VMs, as it is similar to XaaS forms and there you can add users in the way you described.

 

 

View solution in original post

0 Kudos
6 Replies
ronaldod
Enthusiast
Enthusiast
Jump to solution

Is it a limited amount of users that could be used. You could use a dual list with a action to fill the left pane and you select the users.

ronaldod_0-1695648752462.png

 

Or do you have search from 100+ users ?

0 Kudos
Bushbaker27
Contributor
Contributor
Jump to solution

Hey @ronaldod thanks for the reply. I believe that dual-lists are only available in Orchestrator input forms. I am working in Aria Assembler Template input forms.

Is there some way to port the input form over?

0 Kudos
ronaldod
Enthusiast
Enthusiast
Jump to solution

You are right. That is not possible "yet".

But what you could do is to make workflow in orchestrator that fills in the the blueprint inputs. And publish that workflow in service broker.

Yes, this is no fun, but a more fine control on the blueprint inputs. Would love to see the same inputs in assembler as we have in the rest. But that can take a while.

0 Kudos
Bushbaker27
Contributor
Contributor
Jump to solution

Understandable, things like this take time. But, hey thanks for helping me in the right direction.

0 Kudos
xian_
Expert
Expert
Jump to solution

You are using the wrong tool. In Assembler you define the cloud template and its inputs. Think of this as an API definition for your service.

In Service Broker you create Custom Forms, which provides the GUI for your service, this is the presentation layer.

So you need to define your input as Array of Strings in Assembler, then go to Service Broker and create a Custom Form for your published content (cloud template). For an Array of Strings input you have 3 options:

xian__0-1695992910830.png

 

Array Input is the default, with a very basic input list where the user can type:

xian__1-1695992985826.png

Multi Select: here you can define a predefined list of options the user can choose from. This list can be static or external source (action based).

xian__2-1695993096166.png

And Dual List, with a predefined list of options (static/external):

xian__3-1695993166649.png

 

Having an AD query is not possible as the Cloud Template inputs are limited to primitive types (string, number, boolean and object (properties)). The drawback of the above solutions is that you have to list all the users to select from, and an AD can have too much users to display.

XaaS forms (backed by vRO workflows) can have custom resource types as inputs (AD user, for example) where you could use Value Picker, but this is not available for Cloud Templates. What you can do is create a Resource Action of VMs, as it is similar to XaaS forms and there you can add users in the way you described.

 

 

0 Kudos
Bushbaker27
Contributor
Contributor
Jump to solution

Good morning Xian,

This is great news. I am really new to Assembler and Orchestrator, so I appreciate your patience. This makes a lot of sense why I was struggling to implement dynamic input into my forms. In hindsight, sort of obvious now.

I did make some Orchestrator actions that I had linked to dynamicDefaults and dynamicEnums within my Assembler template. I see I should be able to use them as an external source in Service Broker too.

Thanks for the help!!

0 Kudos