Quantcast
Channel: VMware Communities : Discussion List - vRealize Orchestrator
Viewing all 6251 articles
Browse latest View live

Details of vRA vSphere VM placement logic

$
0
0

we are looking for a way to allow Private Cloud (VRA) requestors to specify an individual ESX host to which a VM should be provisioned.  To accomplish this, we need a better understanding of how the vRA placement logic works with vSphere so that we can manipulate it to select a specific host within a cluster when choosing where the VM should land.

 

Are you aware of any documentation that goes in detail regarding the algorithm(s) used during vRA VM placement to a vSphere cluster?  Or are there any engineering/product team contacts within VMware that would be able to provide that information?

 

We *think* that we may be able to accomplish this using the method described in the following article, but even the author seems to make some assumptions when it comes to how the placement works out-of-the-box: https://vmguru.com/2017/07/how-to-specify-a-deployment-target-when-using-vrealize-automation/

 

Also, DRS is set to “Manual” for the ESX clusters where we would want to provision the VMs, so that should be taken into account as well for any VMware resources that may be answering these questions.


Waiting Timer isn't resuming (perhaps after restart)

$
0
0
I have a VRO workflow that does a VM decommission.  It powers the VM off, disables snapshots, suspends alerting, and then sits on a wait timer for 2 weeks, and then deletes the VM from inventory, removes protection entirely, removes alerting entirely, removes DNS, etc.

I just got a notification that a VM which had been requested for decom 2 weeks ago received an alert.  This is because the 2 week alert suspension expired, and the alerting came back on - but the VM is still powered down.  The decom process was intended to resume at 10:44 EST (3:44PM GMT), which has now past.  I confirmed the variable that is being passed into the waiting timer (decomDate) is set to 10:44 local time.  I confirmed this is the appropriate variable being passed in, and everything looks good.  However, the WF is not resuming.  There are also 9 more decoms that look like they have the date to resume the timer set in the past (5 for yesterday, and then 4 older ones).

I believe the VRO services may have been restarted since these tokens were set to a waiting state, but uptime is older than the oldest submission (114 days), and the Server Restart Behavior for this workflow is set to resume workflow run.  I haven't had issues with this in the past.  I currently have 47 workflow tokens in this waiting state.  This appears to only be an issue on one cluster ( I have two 3-node clusters in production).  Restarted the vro-service and no change.

Any ideas what might be going on?

Is there a way to track unfinished Actions?

$
0
0

I am using vRO 7.5 in this environment.

 

For example.

 

If I write an action that executes something that takes 2 hours (example only, I hopfully wouldnt ever do this )

This action is run by a workflow, then say the workflow either fails or is cancelled, is there a way to list anything that may not have completed yet?

 

I want to make sure there is nothing taking up resources when it is no longer valid.

 

Thanks all!

 

Cheers

delete completed,failed and canceled Workflow token?

$
0
0

Hello Community,

 

I'm actually creating a cleanup workflow to delete finished workflow token before a specific point in time.

Unfortunately I can't find any method to delete workflow token.... or a way to set the attribute "isStillValid" to false ;D

In Swagger UI I found a REST method:

delete  /api/workflows/{workflowId}/executions/{executionId}

 

Is there any possibility to get this done without REST?

 

Many thanks and kind regards

Get All Storage Policies of a VM

$
0
0
//get connections
vcenter = vm.sdkConnection;
var storageService = vcenter.storageManagement;
var profileManager = storageService.pbmProfileManager;




//get VM home policy
var myPbmServerObjectRef = new PbmServerObjectRef() ;
myPbmServerObjectRef.key = vm.moref.value;
myPbmServerObjectRef.objectType = "virtualMachine"
var vmProfiles = profileManager.pbmQueryAssociatedProfile(myPbmServerObjectRef);
var myPolicy = getPolicyFromId(vmProfiles[0].uniqueId,vcenter);
var foundProfiles = [];
foundProfiles.push(myPolicy);
var foundIDs = [];
foundIDs.push(vmProfiles[0].uniqueId);




//function to get pbmProfile object from policy ID
function getPolicyFromId (policyID, vcenter){
     var myPbmProfileId = new PbmProfileId() ;     myPbmProfileId.uniqueId = policyID;     var storageService = vcenter.storageManagement;     var profileManager = storageService.pbmProfileManager;     var profileIdArray = [];     profileIdArray.push(myPbmProfileId);     var policies = profileManager.pbmRetrieveContent(profileIdArray);     return policies[0];
}


//get policies from virtual disks if different than home or previous disks
var vmDevices = vm.config.hardware.device;
for (var i = 0; i < vmDevices.length; i++)      if (vmDevices[i] instanceof VcVirtualDisk)           var myPbmServerObjectRef = new PbmServerObjectRef() ;          myPbmServerObjectRef.key = vm.moref.value + ":" + vmDevices[i].key;          myPbmServerObjectRef.objectType = "virtualDiskId"          var vmProfiles = profileManager.pbmQueryAssociatedProfile(myPbmServerObjectRef);          var myPolicy = getPolicyFromId(vmProfiles[0].uniqueId,vcenter);          if (foundIDs.indexOf(vmProfiles[0].uniqueId) != -1) {               foundIDs.push(vmProfiles[0].uniqueId);               foundProfiles.push(myPolicy);          }     }
}


return foundProfiles;

Get all available VM Storage Policies

$
0
0

Hi,

 

I am trying to find all the available VM Storage Policies in a certain vCenter.

(our Orchestrator is connected to multiple vCenters)

 

I have a way for finding all the VM Storage Policies:

pbmProfiles = Server.findAllForType("VC:PbmProfile");

 

 

Now I want it from one vCenter only.

I suspect to do it something like this?

But I'm stuck here...

 

var storageService = vcenter.storageManagement;
var profileManager = storageService.pbmProfileManager;

profileManager.pbmQueryProfile(???)??

 

Any help is appreciated.

 

Thanks!

 

Orchestrator 7.5

vCenter 6.5 and 6.7

AD plugin object tree selector - root object

$
0
0

vRA 7.5

I've copied Create an organizational unit workflow of AD plugin and set the presentation root object to a WF attribute rootOU:

rootOU.jpg

 

However, the tree value picker for the parent organizational unit is not limited to the OU specified in the rootOU attribute. What am I missing here?

VC Connection

$
0
0

Hi,

 

I am new to VRO and need some help. I have VRO 7.3.1 installed. If multiple VC's are added to VRO then while creating workflows how do I mention to select a particular VC to connect to run my workflows.

 

Please help.


How to allocate/unallocate an IP address in a network profile IP addresses range by vRO ?

$
0
0

I have the following problem :

 

 

Some of my colleagues have deploy some VMs by vRA and change the IP address in the Guest OS after the deployment.

 

 

So the IP address displayed on the VM properties is not correct, and it's the same for the IP address reserved in the network profile range.

 

 

 

I know how to update the IP address displayed in the properties, it's quite simple, I have build a workflow to update the custom property "VirtualMachine.Network0.Address".

 

 

 

But this action doesn't update the IP address in the network profile ip addresses range, so I have to do it.

 

I tried to do this by REST API like this:

 

1) First, I get the network profile properties in an XML object :

 

GET /iaas-proxy-provider/api/network/profiles/"networkprofileID"

 

{
  "@type": "ExternalNetworkProfile",
  "id": "4860fc89-1518-4a0e-8047-7162a1bc61c8",
  "name": "TEST-NET1",
  "description": "Configured by vRO",
  "createdDate": "2018-01-17T14:37:03.000Z",
  "lastModifiedDate": "2018-01-17T14:37:03.000Z",
  "isHidden": false,
  "definedRanges": [
    {
      "id": "d5e88c81-3195-4afb-83db-6ad0cca88ac3",
      "name": "range",
      "description": "Configured by vRO",
      "beginIPv4Address": "1.252.128.34",
      "endIPv4Address": "1.252.128.62",
      "state": "UNALLOCATED",
      "createdDate": "2018-01-17T14:37:03.000Z",
      "lastModifiedDate": "2019-05-16T15:27:45.000Z",
      "definedAddresses": [

      {

          "id": "675e6ec3-a498-44da-a16f-52d92fb150f0",

          "staticIPv4RangeId": "d5e88c81-3195-4afb-83db-6ad0cca88ac3",

          "IPv4Address": "1.252.128.38",

          "IPSortValue": 33325094,

          "state": "UNALLOCATED",

          "stateValue": 1,

          "createdDate": "2018-01-17T14:37:03.000Z",

          "lastModifiedDate": "2018-01-17T14:37:03.000Z"

        },
        {
          "id": "f80cc5ed-6be6-4845-b1cb-3ea8b3036a0e",
          "staticIPv4RangeId": "d5e88c81-3195-4afb-83db-6ad0cca88ac3",
          "virtualMachineId": "6526b667-fcf9-4be9-aa47-98c0dc95a79a",
          "virtualMachineName": "test-000094",
          "IPv4Address": "1.252.128.45",
          "IPSortValue": 33325101,
          "state": "ALLOCATED",
          "stateValue": 0,
          "createdDate": "2018-01-17T14:37:03.000Z",
          "lastModifiedDate": "2018-01-17T14:37:03.000Z"
        },

 

 

2) Then I parse the "defineAddresses" section and  update the XML subnode object to free an IP address like :

defineAddress.state              = "UNALLOCATED"

defineAddress.stateValue         = 1

delete defineAddress.virtualMachineId

delete defineAddress.virtualMachineName

 

3) And a run a PUT REST API request to update the network profile, the return code is 204 meaning than the update is succeed,  BUT if I perform a new GET or check in the vRA web  console, the update was not performed.

 

Any idea on this behavior ?

 

 

is it possible to perform an ip address allocation or unallocation by another way or trick ?  (excepted by a SQL query in the database of course, because I find this method ugly and unsupported)

 

Thanks for your help

 

Regards

HostList

$
0
0

Hi,

 

I need some help on the below.

 

I have two input parameters clusterName and hostName. I want when I type the cluster name in the cluster name field, all hosts in that clusters should be populated automatically to the hostName field like a drop down list.

Allowing users to mount usb devices through vRA/vCO

$
0
0

Hello all,

 

I have recently built out my vCAC 7 environment and have kept it very minimal for now.  Users are able to log in and request machines and carry out a handful of actions on those VMs including mounting an ISO to the CDROM drive, however I have not been able to put a workflow/resource action in place to mount a client usb device to a VM.  I am using the vCO that comes embedded in vRA which I am not sure is any different from an external Orchestrator appliance.  I was hoping someone could point me toward a resource or workflow cookbook for requests like this if not this exact workflow.  Let me know if I can provide any more details or if perhaps this can be accomplished through an existing workflow or entitlement action.

 

Thanks!

 

CJ

How to perform a form validation on a XaaS blueprint

$
0
0

Hi all

 

I would like to perform a form validation on a vRO workflow before submit it (that can be linked to a Day 2 or XaaS blueprint in vRA)

 

In fact its will be the same action that we have in vRA with the custom forms (but i would like to avoid this option because its need to create a Blueprint composite including my XaaS).

 

I know that i can perform dynamic checks on vRO inputs through Presentation tab, but i would like to trigger an action when the submit button is pressed and if the result of the action is not correct, the form is not submitted.

 

So my questions are:

 

1) Is it possible to do that only with vRO ?

2) If not, what is the best simple solution to perform this task (in vRA/vRO) ?

 

 

 

Thanks !!!

How to get vRO IP or FQDN from running vRO node in the cluster ?

$
0
0

Dear experts - we have a requirement to resolve IP or FQDN from running vRO node in HA (cluster) environment - do you have any suggestions on how to go about it ? 

thanks a bunch!

Alex

Exposing Configuration in vRO

$
0
0

Is there any way to update configuration elements when required ?

 

There are lot of team members who want to update Configuration element when required in VRO.

 

BUT they do not have access of VRO and we can not grant their access.

 

Kindly share your feedback, What you think about it.

Dynamically Add vCenter SDK Plugin or Use API?

$
0
0

Is there a way to dynamically add vCenter Server SDK (vSphere) to vRO?  I want to be as stateless as possible.  One possible way I thought about was just using the vCenter API vs the actual SDK Plugin but I don't know how to import the certificate to the api.  I am looking for something similar solution like using the transient host for rest host


Is it possible to prevent a form Presentation action from calling another input action until the first has data?

$
0
0

Hi all,

 

I had always assumed that setting Data Binding and using GetAction OGNL would by default follow an order based on the other inputs used in ".call".

It appears this is not the case at all and it will run the actions whether there is data in the other inputs or not. I noticed this when I set up some logging to find a bottleneck and it showed the actions running multiple times with only the final run producing usable data.

 

(Note that the below is just an example of one of the instances I am seeing it, its not specific to this use case)

 

For example;

 

GetAction("com.example","getCurrentTags_Friendly").call( #virtualMachine , #policyList )

 

I notice in the logs that this will run multiple times, presenting the data in #policyList as "null" until the action populating #policyList input has completed. This was slowing the overall form down considerably until I added "if (virtualMachine && policyList ) {" to the top of the action, but this only speeds up the action itself, it doesn't prevent it from being called in the first place.

 

I have tried multiple methods to get it to wait, but all ultimately still show the action being called.

 

1) I have tried setting Hide or Show parameter input based on the content of "#policyList" and while the field is hidden in the form, logs show that the actions still ran.

2) I have set "#currentVmTags = #policyList != null ? GetAction("com.example","getCurrentTags_Friendly").call( #virtualMachine , #policyList ):null" but the action still runs rather than returning "null" as hoped.

 

I was hoping someone here can advise of if there is an alternate method I am not aware of to somehow run it in a specific order without wasting time repeating actions.

 

Cheers


Dean

VMWare vRO Workflow

$
0
0

My OutPut Variable in VRO has this data in single line.

like this

aaaaaa.bbbbbbb.ccccc.ddddd

 

i want to format that and keep it on different lines like this and sent email.vro

aaaaa

bbbbb

ccccc

dddd

 

how to format the variable which has this data in javascript ?

How to automated select vm

$
0
0

Hi

 

I try to make a vm name as a string automated input to VC:Virtualmachine as an object to do showing ip address such as vm.summary.guest.ipAddress.

 

Is there any method to do automated select vmname?

 

Thanks

 

Ethan

VAMI API - appliance monitoring - HTTP-REST

$
0
0

Hello,

 

I'm trying to invoke a rest operation towards VAMI API to retrieve some stats.

 

The URL used is https://{{vc}}:5480/rest/appliance/monitoring/query?item.end_time={item.end_time}&item.start_time={item.start_time}&item.interval={item.interval}&item.function={item.function}&item.names.0={item.names.0}

 

 

Attributes variables (string):

 

item.end_time=2020-01-07T10:09:29.400Z

item.start_time=2020-01-07T09:09:29.400Z

item.interval=MINUTES5

item.function=MAX

item.names.0=storage.util.directory.vcdb_alarms

defaultContentType=application/json

 

I'm trigger the default "Invoke a REST operation" workflow inside a custom workflow.

 

 

Unfortunately, on workflow execution, the Request URL is build in wrong format by encoding the  :  character from "item.end_time" and "item.start_time" variables.

 

[2020-01-07 15:01:58.273] [I]  acceptHeaders null

[2020-01-07 15:01:58.275] [I] Request: DynamicWrapper (Instance) : [RESTRequest]-[class com.vmware.o11n.plugin.rest.Request] -- VALUE : com.vmware.o11n.plugin.rest.Request@16b83f4c

[2020-01-07 15:01:58.279] [I] Request URL: https://{{vc}}:5480/rest/appliance/monitoring/query?item.end_time=2020-01-07T10%3A09%3A29.400Z&item.start_time=2020-01-07T09%3A09%3A29.400Z&item.interval=MINUTES5&item.function=MAX&item.names.0=storage.util.directory.vcdb_alarms

[2020-01-07 15:01:58.368] [I] Response: DynamicWrapper (Instance) : [RESTResponse]-[class com.vmware.o11n.plugin.rest.Response] -- VALUE : com.vmware.o11n.plugin.rest.Response@b192c19

[2020-01-07 15:01:58.371] [I] Status code: 400

[2020-01-07 15:01:58.377] [I] Content as string: {"messages":[{"id":"vapi.bindings.typeconverter.datetime.deserialize.invalid.format","args":["2020-01-07T09%3A09%3A29.400Z","^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{3})Z$"],"default_message":"Datetime string \"2020-01-07T09%3A09%3A29.400Z\" does not match expected pattern \"^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{3})Z$\""}]}

[2020-01-07 15:01:58.379] [I] ****Headers****

[2020-01-07 15:01:58.383] [I] Tue, 07 Jan 2020 13:01:53 GMT

[2020-01-07 15:01:58.423] [I] IE=edge

[2020-01-07 15:01:58.426] [I] Deny

[2020-01-07 15:01:58.429] [I] TwistedWeb/17.1.0

[2020-01-07 15:01:58.433] [I] application/json

[2020-01-07 15:01:58.437] [I] 366

 

 

How this can be avoided?

 

Thank you.

 

Postman is working as expected with the above URL.

 

vRO: 7.5.0.10044239

vCenter 6.7.0.40000

Updating vRO PowerShell Plugin

$
0
0

Hello,

 

I have an added PowerShell Host and I am able to run a workflow 100% successfully via vRealize Orchestrator.  I created a XaaS blueprint that points to the workflow so that it can be submitted via vRA.  When I do this, the workflow is no longer 100% successful.  It becomes 50% successful. 

 

When failing, I receive below error.  However, I was able to trace the error to Spas' blog whom recommends updating the plugin version of Powershell on vRO.   I believe I am already on the latest version for v7.6, so I wanted to post here for any other suggestions or ideas what may be missing.  Much thanks

 

Error:

No valid credentials provided (Mechanism level: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)) (Workflow:PowerShell Workflow / Invoke script (item0)#3)

 

http://kaloferov.com/blog/how-to-add-powershell-hosts-from-multiple-domains-with-kerberos-authentication-to-the-same-vro…

 

vRO Version:  7.6.0.12923317

Current Plugin Version:  PowerShell1.0.13.12839240

Viewing all 6251 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>