VMware Cloud Community
mysterio2465
Contributor
Contributor

Trying to update selected snapshot in Linked Clone blueprint from Orchestrator

I have been working on this for a while now and can't figure it out. Here's the situation:

- I have 1 source server that gets new data every weekend

- I destroy all linked clones before the data refresh and delete the current snapshot

- The refresh happens and I create a new snapshot

- I have to go into vrealize designer and set the new snapshot in the blueprint <-- this is the step I can't seem to automate

- create new linked clones ready for monday

I have everything else automated in workflows for Orchestrator but can't seem to figure out how to update what snapshot a blueprint is using when the component is a vSphere Linked Clone.

My latest attempt was setting "snapshot_name", "source_machine_external_snapshot", and "source_machine_vmsnapshot" on the blueprint using the following: (the commented out lines are from various attempts)

//System.log(blueprint.getComponents());

var components = blueprint.getComponents();

for each(var componentkey in components.keys){

var component = components.get(componentkey);

var data = component.getData();

for each(var item in data.keys){

System.log("item:" + item);

if(item.indexOf("snapshot") > -1){

var facets = data.get(item).getFacets();

if(item == "snapshot_name"){

System.log(item + ": " + facets.get("fixedValue"));

// var myval = vCACCAFEConstantValue.fromString("VM Snapshot 8%252f28%252f2018, 4:27:43 PM");

var myval = vCACCAFEConstantValue.fromString("second snapshot");

//facets.put("fixedValue", myval);

//System.log(item + ": " + facets.get("fixedValue"));

}

if(item == "source_machine_external_snapshot"){

System.log(item + ": " + facets.get("fixedValue"));

// var myval = vCACCAFEConstantValue.fromInt(3);

var myval = vCACCAFEConstantValue.fromInt(3);

//facets.put("fixedValue", myval);

//System.log(item + ": " + facets.get("fixedValue"));

}

if(item == "source_machine_vmsnapshot"){

System.log(item + ": " + data.get(item).getFacets().get("fixedValue"));

var i1 = data.get(item);

var f1 = i1.getFacets();

var f2 = f1.get("fixedValue");

// var entity = new vCACCAFEEntityReference(null, "Infrastructure.Compute.Machine.Snapshot", "58", null);

var entity = new vCACCAFEEntityReference(null, "Infrastructure.Compute.Machine.Snapshot", "58", null);

var myval = new vCACCAFEConstantValue(entity);

f1.put("fixedValue", myval);

i1.setFacets(f1);

//data.put(item, i1);

//System.log(item + ": " + data.get(item).getFacets().get("fixedValue"));

}

// for each(var facet in facets.keys){

// System.log(item + ": facet:" + facet);

// System.log("facet detail:" + facets.get(facet).getValue().value);

// }

var m = data.get(item);

m.setFacets(facets);

//data.put(item, m);

}

/* var facets = item.getFacets();

for each(var facet in facets.keys){

System.log(facet);

}*/

}

//component.setData(data);

//components.put(componentkey, component);

}

//blueprint.setComponents(components);

Any ideas?

Reply
0 Kudos
4 Replies
daphnissov
Immortal
Immortal

I'm not entirely certain, but could you please edit your post and reformat your code block? It's appearing as a single line which is impossible to read.

Reply
0 Kudos
mysterio2465
Contributor
Contributor

I think I fixed it now.

Reply
0 Kudos
daphnissov
Immortal
Immortal

One of the things I'm not seeing here is where you are running a data collection on the compute resource where this template with snapshots is registered. Without it, it won't collect the inventory including this new snapshot.

Reply
0 Kudos
mysterio2465
Contributor
Contributor

At this point I'm not even trying to do that. My setup has 2 snapshots on a vm that I'm simply trying to toggle. I figured if I can't get that part, the rest won't work either.

Reply
0 Kudos