/// <summary> /// 启动虚拟机 /// </summary> /// <example> /// <para>AsynchrTask resp = vm.StartVm("/service/sites/4D9D0815/vms/i-00000058");</para> /// </example> /// <param name="vmUri">【必选】虚拟机Uri</param> /// <returns>异步任务结果</returns> public AsynchrTask StartVm(string vmUri) { AsynchrTask resp = new AsynchrTask(); string url = vmUri + "/action/start"; string result = RestClientUtil.sendRequest("POST", url, null, bean, "StartVm"); log.Info("StartVm result : " + result); resp = JsonConvert.DeserializeObject<AsynchrTask>(result); return resp; }
/// <summary> /// 停止虚拟机 /// </summary> /// <example> /// <para>AsynchrTask resp = vm.StopVm("/service/sites/4D9D0815/vms/i-0000000D", "force");</para> /// </example> /// <param name="vmUri">【必选】虚拟机Uri</param> /// <param name="mode">停止虚拟模式,safe:安全停止(默认),force:强制停止</param> /// <returns>异步任务结果</returns> public AsynchrTask StopVm(string vmUri, String mode) { AsynchrTask resp = new AsynchrTask(); ActionModeReq action = new ActionModeReq(); action.mode = mode; string url = vmUri + "/action/stop"; string result = RestClientUtil.sendRequest("POST", url, action, bean, "StopVm"); log.Info("StopVm result : " + result); resp = JsonConvert.DeserializeObject<AsynchrTask>(result); return resp; }
/// <summary> /// 删除虚拟机 /// </summary> /// <example> /// <para>AsynchrTask resp = vm.RemoveVm("/service/sites/4D9D0815/vms/i-00000057", 0, 0, 1);</para> /// </example> /// <param name="vmUri">【必选】虚拟机Uri</param> /// <param name="isReserveDisks">【可选】删除虚拟机时是否保留磁盘,0 不保留磁盘(默认);1 保留磁盘;</param> /// <param name="isFormat">【可选】擦除磁盘数据选项,在isReserveDisks为0时生效,0:普通删除(快速格式化),1:安全删除(低级格式化) ,默认0</param> /// <param name="holdTime">【可选】保留时间,单位:小时,默认为0,即不保留,若超过保留时间未回收,则删除,范围:-1—7*24,其中-1表示保持回收中状态,不自动删除</param> /// <returns>异步任务结果</returns> public AsynchrTask RemoveVm(string vmUri, int? isReserveDisks, int? isFormat, int? holdTime) { AsynchrTask resp = new AsynchrTask(); StringBuilder url = new StringBuilder(vmUri + "?"); #region url.Append(null == isReserveDisks ? "" :( "isReserveDisks=" + isReserveDisks + "&")); url.Append(null == isFormat ? "" : ("isFormat=" + isFormat + "&")); url.Append(null == holdTime ? "" : ("holdTime=" + holdTime + "&")); #endregion string result = RestClientUtil.sendRequest("DELETE", url.ToString(0, url.Length - 1), null, bean, "RemoveVm"); log.Info("RemoveVm result : " + result); resp = JsonConvert.DeserializeObject<AsynchrTask>(result); return resp; }