Exemplo n.º 1
0
        /// <summary>
        /// Kick off asynchronous request.
        /// </summary>
        /// <param name="session">Client session</param>
        /// <param name="req">API command</param>
        /// <returns>Asynchronous task job id.</returns>
        public static string StartAsyncJob(Client session, APIRequest req)
        {
            XDocument resp = session.SendRequest(req);

            XElement jobid = resp.Descendants("jobid").FirstOrDefault();

            if (jobid == null || string.IsNullOrEmpty(jobid.Value))
            {
                throw new CloudStackException("Async command failed to return jobid", req.ToString(), resp);
            }
            return jobid.Value;
        }
Exemplo n.º 2
0
        /// <summary>
        ///  Start a job, wait for it to complete and return the resulting resource id
        /// </summary>
        /// <param name="session">the session</param>
        /// <param name="req">the request object</param>
        /// <returns>resource id</returns>
        public static string WaitForResourceIdFromAsyncJob(Client session, APIRequest req)
        {
            string jobid = StartAsyncJob(session, req);
            XDocument asyncResult = WaitForAsyncJobResult(session, jobid);
            XElement id = asyncResult.Descendants("id").FirstOrDefault();

            if (id == null || string.IsNullOrEmpty(id.Value))
            {
                throw new CloudStackException("Failed to obtain new resource id after async job", req.ToString(), asyncResult);
            }
            return id.Value;
        }
Exemplo n.º 3
0
 /// <summary>
 /// Run an async job and wait for the result
 /// </summary>
 public static XContainer RunAsyncJob(Client session, APIRequest request)
 {
     string jobid = StartAsyncJob(session, request);
     XDocument response = WaitForAsyncJobResult(session, jobid);
     return response.Descendants("jobresult").FirstOrDefault().FirstNode as XContainer;
 }
 /// <summary>
 /// Destroy Virtual Machine
 /// </summary>
 /// <param name="vmId">Virtual machine identifier.</param>
 public void DestroyVirtualMachine(string vmId)
 {
     APIRequest request = new APIRequest("destroyVirtualMachine");
     request.Parameters["id"] = vmId;
     SendRequest(request);
 }
 /// <summary>
 /// Delete Volume
 /// </summary>
 /// <param name="volumeId">Cloud resource identifier</param>
 public void DeleteVolume(string volumeId)
 {
     APIRequest request = new APIRequest("deleteVolume");
     request.Parameters["id"] = volumeId;
     SendRequest(request);
 }
 /// <summary>
 /// Stop Virtual Machine 
 /// </summary>
 /// <param name="vmId">Cloud resource identifier for VM</param>
 /// <param name="forced">Indicate whether the VM should be forced to stop</param>
 public void StopVirtualMachine(string vmId, bool forced)
 {
     APIRequest request = new APIRequest("stopVirtualMachine");
     request.Parameters["id"] = vmId;
     request.Parameters["forced"] = forced ? "true" : "false";
     SendRequest(request);
 }
 /// <summary>
 /// startVirtualMachine API call
 /// </summary>
 /// <param name="vmId">Cloud resource identifier for VM</param>
 public void StartVirtualMachine(string vmId)
 {
     APIRequest req = new APIRequest("startVirtualMachine");
     req.Parameters["id"] = vmId;
     SendRequest(req);
 }
 /// <summary>
 /// List the volumes
 /// </summary>
 public ListVolumesResponse ListVolumes(APIRequest request)
 {
     return DeserialiseResponse<ListVolumesResponse>(() => SendRequest(request), request.Command);
 }