VMware Cloud Community
roniyako
Contributor
Contributor

XAAS blueprint to deploy VRA blueprint - Identify AWS Key Values

Hi,

I have managed make a XAAS blueprint to deploy a VRA Blueprint, but im getting stuck at the below when deploying.

In my reservation if i select the various AWS Security Groups they all get added to a machine if i leave the section blank, so when i try to manipulate the json data to select one i get the below error.

(com.vmware.library.vcaccafe.request/requestCatalogItemWithProvisioningRequest) Error in (Dynamic Script Module name : requestCatalogItemWithProvisioningRequest#0) [Rest Composite Exception]:  ( [Rest Error]: {Status code: 400}, {Error code: 20117} , {Error Source: null}, {Error Msg: The data specified within the request is invalid.}, {System Msg: The data specified within the request is invalid.} )  ( [Rest Error]: {Status code: 400}, {Error code: 11011} , {Error Source: null}, {Error Msg: The value for the 'amazon_securityGroups' field is not a MultipleLiteral but the field is defined as MultiValued.}, {System Msg: The value for the field id amazon_securityGroups is not a MultipleLiteral but the field is defined as MultiValued.} )

Below is the code of json that i need to fill in(i need it filled in like this because this is how vra sends it when i inspected it.)

{"key":"amazon_provisionInto", "value":{"type":"string", "value":"subnet"}}

{"key":"amazon_securityGroups", "value":{"type":"multiple", "elementTypeId":"INTEGER", "items":[{"type":"integer", "value":805}]}}

below is my json code

// this code works

json.app.data.amazon_provisionInto = "subnet";

System.log(json.app.data.amazon_provisionInto);

json.app.data.amazon_subnet_id = 18;

//this code doesnt work

json.app.data.amazon_securityGroups = 805;

System.log(json.app.data.amazon_securityGroups);

I have added the subnet in a VPC code and the subnet id code to show code of mine that works.

Anyone have any ideas as to why the AWS security group one fails?

0 Kudos
2 Replies
rmav01
Enthusiast
Enthusiast

Can you try making it an array of integers? Try setting [805] as the value.

0 Kudos
itviktor
Contributor
Contributor

I have had success using an array of integers i.e. json.app.data.amazon_securityGroups = [805, 807];  However, I can't figure out how to determine these identifiers that vRA uses internally.  I can query AWS and get the list of Security Groups no problem.  However, I don't know how to either translate those values to something vRA will recognize or better for me, pass in the value as the AWS identifier sg-abc12345 and get vRA to understand and apply the correct security group.

0 Kudos