/// <summary> /// "[\"Win10.10\"]"; /// </summary> public async Task <Responses.VmList> GetMoids(Requests.Moids request) { var returnObject = new Responses.VmList(); var executionResult = await this.Client.VSphere.GetMoid(new Dictionary <string, string> { { "object_names", request.MachineNames.ToSt2Array() }, { "object_type", "VirtualMachine" } }); Log.Trace($"ExecutionResult: {executionResult}"); try { returnObject.Id = executionResult.id; var j = ((JToken)executionResult.result)["result"]; foreach (var prop in j.OfType <JProperty>()) { returnObject.Vms.Add(new Responses.Vm(prop.Value.ToString(), prop.Name, null)); } } catch (Exception e) { Log.Error($"Object was not in expected format: {e}"); Console.WriteLine(e); returnObject.Exception = e; } return(returnObject); }
/// <summary> /// clusters get auto-formatted into st2-friendly array: "[\"domain-c9\"]" /// </summary> /// <param name="cluster"></param> public async Task <Responses.VmList> GetVms(IEnumerable <string> clusters) { var returnObject = new Responses.VmList(); var executionResult = await this.Client.VSphere.GetVms(new Dictionary <string, string> { { "clusters", clusters.ToSt2Array() } }); Log.Trace($"ExecutionResult: {executionResult}"); try { returnObject.Id = executionResult.id; var j = executionResult.result.ToString().ToJObject(); //get vms and spit out foreach (var node in j["result"]) { returnObject.Vms.Add(new Responses.Vm(node["moid"], node["name"], node["runtime.powerState"])); } } catch (Exception e) { Log.Error($"Object was not in expected format: {e}"); Console.WriteLine(e); returnObject.Exception = e; } return(returnObject); }
/// <summary> /// clusters get auto-formatted into st2-friendly array: "[\"domain-c9\"]" /// </summary> /// <param name="cluster"></param> public async Task <Responses.VmList> GetVmsWithUuid(IEnumerable <string> clusters) { var returnObject = new Responses.VmList(); var executionResult = await _client.VSphere.GetVmsWithUuid(new Dictionary <string, object> { { "clusters", clusters.ToSt2Array() } }); Log.Trace($"ExecutionResult: {executionResult}"); try { returnObject.Id = executionResult.id; var nodes = executionResult.result.ToString().ToJObject()["result"]; var nodesString = nodes.ToString(); // this check is required because of Stackstorm python 2 and 3 differences if (nodesString.StartsWith("dict_values(")) { nodesString = nodesString.Substring(12, nodesString.Length - 30); nodes = JArray.Parse(nodesString); } //get vms and spit out foreach (var node in nodes) { returnObject.Vms.Add(new Responses.Vm(node["moid"], node["name"], node["runtime.powerState"], node["config.uuid"])); } } catch (Exception e) { Log.Error($"Object was not in expected format: {e}"); Console.WriteLine(e); returnObject.Exception = e; } return(returnObject); }