def create_root_volume_from_template(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = CreateRootVolumeFromTemplateResponse() if not os.path.exists(cmd.templatePathInCache): rsp.error = self.ERR_UNABLE_TO_FIND_IMAGE_IN_CACHE rsp.success = False return jsonobject.dumps(rsp) try: dirname = os.path.dirname(cmd.installUrl) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installUrl, cmd) logger.debug('successfully create root volume[%s] from template in cache[%s]' % (cmd.installUrl, cmd.templatePathInCache)) meta = VolumeMeta() meta.account_uuid = cmd.accountUuid meta.hypervisor_type = cmd.hypervisorType meta.name = cmd.name meta.uuid = cmd.volumeUuid meta.size = os.path.getsize(cmd.templatePathInCache) meta_path = self._json_meta_file_name(cmd.installUrl) with open(meta_path, 'w') as fd: fd.write(jsonobject.dumps(meta, pretty=True)) self._set_capacity_to_response(cmd.uuid, rsp) logger.debug('successfully create root volume[%s] from template in cache[%s]' % (cmd.installUrl, cmd.templatePathInCache)) except Exception as e: content = traceback.format_exc() logger.warn(content) err = 'unable to clone qcow2 template[%s] to %s' % (cmd.templatePathInCache, cmd.installUrl) rsp.error = err rsp.success = False return jsonobject.dumps(rsp)
def create_root_volume_from_template(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = CreateRootVolumeFromTemplateResponse() if not os.path.exists(cmd.templatePathInCache): rsp.error = self.ERR_UNABLE_TO_FIND_IMAGE_IN_CACHE rsp.success = False return jsonobject.dumps(rsp) try: dirname = os.path.dirname(cmd.installUrl) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installUrl, cmd) logger.debug('successfully create root volume[%s] from template in cache[%s]' % (cmd.installUrl, cmd.templatePathInCache)) meta = VolumeMeta() meta.account_uuid = cmd.accountUuid meta.hypervisor_type = cmd.hypervisorType meta.name = cmd.name meta.uuid = cmd.volumeUuid meta.size = os.path.getsize(cmd.templatePathInCache) meta_path = self._json_meta_file_name(cmd.installUrl) with open(meta_path, 'w') as fd: fd.write(jsonobject.dumps(meta, pretty=True)) self._set_capacity_to_response(cmd.uuid, rsp) logger.debug('successfully create root volume[%s] from template in cache[%s]' % (cmd.installUrl, cmd.templatePathInCache)) except Exception as e: content = traceback.format_exc() logger.warn(content) err = 'unable to clone qcow2 template[%s] to %s' % (cmd.templatePathInCache, cmd.installUrl) rsp.error = err rsp.success = False return jsonobject.dumps(rsp)
def revert_snapshot(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = RevertVolumeFromSnapshotRsp() install_path = cmd.snapshotInstallPath new_volume_path = os.path.join(os.path.dirname(install_path), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path return jsonobject.dumps(rsp)
def reinit(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = ReInitImageRsp() install_path = cmd.imagePath new_volume_path = os.path.join(os.path.dirname(cmd.volumePath), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity(cmd.uuid) return jsonobject.dumps(rsp)
def reinit(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = ReInitImageRsp() install_path = cmd.imagePath new_volume_path = os.path.join(os.path.dirname(cmd.volumePath), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity(cmd.uuid) return jsonobject.dumps(rsp)
def revert_snapshot(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = RevertVolumeFromSnapshotRsp() install_path = cmd.snapshotInstallPath new_volume_path = os.path.join(os.path.dirname(install_path), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path return jsonobject.dumps(rsp)
def revert_volume_from_snapshot(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = RevertVolumeFromSnapshotResponse() install_path = cmd.snapshotInstallPath new_volume_path = os.path.join(os.path.dirname(install_path), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path size = linux.qcow2_virtualsize(new_volume_path) rsp.size = size self._set_capacity_to_response(cmd.uuid, rsp) return jsonobject.dumps(rsp)
def revert_volume_from_snapshot(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = RevertVolumeFromSnapshotResponse() install_path = cmd.snapshotInstallPath new_volume_path = os.path.join(os.path.dirname(install_path), '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path size = linux.qcow2_virtualsize(new_volume_path) rsp.size = size self._set_capacity_to_response(cmd.uuid, rsp) return jsonobject.dumps(rsp)
def reinit_image(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = ReinitImageRsp() install_path = cmd.imageInstallPath dirname = os.path.dirname(cmd.volumeInstallPath) if not os.path.exists(dirname): os.makedirs(dirname, 0775) new_volume_path = os.path.join(dirname, '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path return jsonobject.dumps(rsp)
def reinit_image(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = ReinitImageRsp() install_path = cmd.imageInstallPath dirname = os.path.dirname(cmd.volumeInstallPath) if not os.path.exists(dirname): os.makedirs(dirname, 0775) new_volume_path = os.path.join(dirname, '{0}.qcow2'.format(uuidhelper.uuid())) linux.qcow2_clone_with_cmd(install_path, new_volume_path, cmd) rsp.newVolumeInstallPath = new_volume_path return jsonobject.dumps(rsp)
def create_root_volume(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AgentRsp() if not os.path.exists(cmd.templatePathInCache): rsp.error = "unable to find image in cache" rsp.success = False return jsonobject.dumps(rsp) dirname = os.path.dirname(cmd.installPath) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installPath, cmd) rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity(cmd.mountPoint) return jsonobject.dumps(rsp)
def createvolume(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AliyunNasResponse() if not os.path.exists(cmd.templatePathInCache): rsp.error = "unable to find image in cache" rsp.success = False return jsonobject.dumps(rsp) dirname = os.path.dirname(cmd.installPath) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installPath, cmd) rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity(cmd.uuid) return jsonobject.dumps(rsp)
def create_root_volume_from_template(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AgentResponse() if not os.path.exists(cmd.templatePathInCache): rsp.error = "unable to find image in cache" rsp.success = False logger.debug('error: %s: %s' % (rsp.error, cmd.templatePathInCache)) return jsonobject.dumps(rsp) dirname = os.path.dirname(cmd.installUrl) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installUrl, cmd) rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity(cmd.storagePath) return jsonobject.dumps(rsp)
def create_root_volume_from_template(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AgentResponse() if not os.path.exists(cmd.templatePathInCache): rsp.error = "unable to find image in cache" rsp.success = False logger.debug('error: %s: %s' % (rsp.error, cmd.templatePathInCache)) return jsonobject.dumps(rsp) dirname = os.path.dirname(cmd.installUrl) if not os.path.exists(dirname): os.makedirs(dirname, 0775) linux.qcow2_clone_with_cmd(cmd.templatePathInCache, cmd.installUrl, cmd) rsp.totalCapacity, rsp.availableCapacity = self._get_disk_capacity( cmd.storagePath) return jsonobject.dumps(rsp)