def disconnect(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AgentRsp() @linux.retry(times=3, sleep_time=random.uniform(0.1, 3)) def find_vg(vgUuid): cmd = shell.ShellCmd("vgs --nolocking %s -otags | grep %s" % (vgUuid, INIT_TAG)) cmd(is_exception=False) if cmd.return_code == 0: return True logger.debug("can not find vg %s with tag %s" % (vgUuid, INIT_TAG)) cmd = shell.ShellCmd("vgs %s" % vgUuid) cmd(is_exception=False) if cmd.return_code == 0: logger.warn("found vg %s without tag %s" % (vgUuid, INIT_TAG)) return True raise RetryException("can not find vg %s with or without tag %s" % (vgUuid, INIT_TAG)) try: find_vg(cmd.vgUuid) except RetryException: logger.debug("can not find vg %s; return success" % cmd.vgUuid) return jsonobject.dumps(rsp) except Exception as e: raise e @linux.retry(times=3, sleep_time=random.uniform(0.1, 3)) def deactive_lvs_on_vg(vgUuid): active_lvs = lvm.list_local_active_lvs(vgUuid) if len(active_lvs) == 0: return logger.warn("active lvs %s will be deactivate" % active_lvs) lvm.deactive_lv(vgUuid) active_lvs = lvm.list_local_active_lvs(vgUuid) if len(active_lvs) != 0: raise RetryException( "lvs [%s] still active, retry deactive again" % active_lvs) deactive_lvs_on_vg(cmd.vgUuid) lvm.clean_vg_exists_host_tags(cmd.vgUuid, cmd.hostUuid, HEARTBEAT_TAG) lvm.stop_vg_lock(cmd.vgUuid) if cmd.stopServices: lvm.quitLockServices() lvm.clean_lvm_archive_files(cmd.vgUuid) return jsonobject.dumps(rsp)
def disconnect(self, req): cmd = jsonobject.loads(req[http.REQUEST_BODY]) rsp = AgentRsp() @linux.retry(times=3, sleep_time=random.uniform(0.1, 3)) def find_vg(vgUuid): cmd = shell.ShellCmd("vgs --nolocking %s -otags | grep %s" % (vgUuid, INIT_TAG)) cmd(is_exception=False) if cmd.return_code == 0: return True logger.debug("can not find vg %s with tag %s" % (vgUuid, INIT_TAG)) cmd = shell.ShellCmd("vgs %s" % vgUuid) cmd(is_exception=False) if cmd.return_code == 0: logger.warn("found vg %s without tag %s" % (vgUuid, INIT_TAG)) return True raise RetryException("can not find vg %s with or without tag %s" % (vgUuid, INIT_TAG)) try: find_vg(cmd.vgUuid) except RetryException: logger.debug("can not find vg %s; return success" % cmd.vgUuid) return jsonobject.dumps(rsp) except Exception as e: raise e @linux.retry(times=3, sleep_time=random.uniform(0.1, 3)) def deactive_lvs_on_vg(vgUuid): active_lvs = lvm.list_local_active_lvs(vgUuid) if len(active_lvs) == 0: return logger.warn("active lvs %s will be deactivate" % active_lvs) lvm.deactive_lv(vgUuid) active_lvs = lvm.list_local_active_lvs(vgUuid) if len(active_lvs) != 0: raise RetryException("lvs [%s] still active, retry deactive again" % active_lvs) deactive_lvs_on_vg(cmd.vgUuid) lvm.clean_vg_exists_host_tags(cmd.vgUuid, cmd.hostUuid, HEARTBEAT_TAG) lvm.stop_vg_lock(cmd.vgUuid) if cmd.stopServices: lvm.quitLockServices() return jsonobject.dumps(rsp)