From f1bdebb628b6b029195cbf49448c358fff0cf45f Mon Sep 17 00:00:00 2001 From: anthony Date: Fri, 17 Dec 2010 16:01:55 -0800 Subject: [PATCH] remove LUNperVDI.py --- .../xenserver/xenserver56/LUNperVDI.py | 124 ------------------ .../vm/hypervisor/xenserver/xenserver56/patch | 1 - 2 files changed, 125 deletions(-) delete mode 100755 scripts/vm/hypervisor/xenserver/xenserver56/LUNperVDI.py diff --git a/scripts/vm/hypervisor/xenserver/xenserver56/LUNperVDI.py b/scripts/vm/hypervisor/xenserver/xenserver56/LUNperVDI.py deleted file mode 100755 index 1ef8fcf0138..00000000000 --- a/scripts/vm/hypervisor/xenserver/xenserver56/LUNperVDI.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/python -# Copyright (C) 2006-2007 XenSource Ltd. -# Copyright (C) 2008-2009 Citrix Ltd. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; version 2.1 only. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# LUNperVDI: Generic Raw LUN handler, used by HBASR and ISCSISR -# - -import SR, VDI, SRCommand, util -import os, sys -import scsiutil -import xs_errors - -class RAWVDI(VDI.VDI): - def load(self, vdi_uuid): - if not self.sr.attached: - raise xs_errors.XenError('SRUnavailable') - - self.uuid = vdi_uuid - self.location = vdi_uuid - self.managed = True - try: - vdi_ref = self.sr.session.xenapi.VDI.get_by_uuid(vdi_uuid) - self.managed = self.sr.session.xenapi.VDI.get_managed(vdi_ref) - self.sm_config = self.sr.session.xenapi.VDI.get_sm_config(vdi_ref) - self.path = self.sr.mpathmodule.path(self.sm_config['SCSIid']) - except: - pass - if self.sr.cmd == "vdi_introduce": - self.managed = True - - def _query(self, path, id): - self.uuid = scsiutil.gen_uuid_from_string(scsiutil.getuniqueserial(path)) - self.location = self.uuid - self.vendor = scsiutil.getmanufacturer(path) - self.serial = scsiutil.getserial(path) - self.LUNid = id - self.size = scsiutil.getsize(path) - self.SCSIid = scsiutil.getSCSIid(path) - self.path = path - sm_config = util.default(self, "sm_config", lambda: {}) - sm_config['LUNid'] = str(self.LUNid) - sm_config['SCSIid'] = self.SCSIid - self.sm_config = sm_config - - def introduce(self, sr_uuid, vdi_uuid): - self.sm_config = self.sr.srcmd.params['vdi_sm_config'] - vdi_path = self.sr._getLUNbySMconfig(self.sm_config) - self._query(vdi_path, self.sm_config['LUNid']) - vdi_uuid = self.uuid - self.sr.vdis[vdi_uuid] = self - - try: - util._getVDI(self.sr, vdi_uuid) - self.sr.vdis[vdi_uuid]._db_update() - # For reasons I don't understand, VDI._db_update() doesn't set the - # managed flag, so we do that ourselves here. - vdi_ref = self.sr.session.xenapi.VDI.get_by_uuid(vdi_uuid) - self.sr.session.xenapi.VDI.set_managed(vdi_ref, self.managed) - except: - self.sr.vdis[vdi_uuid]._db_introduce() - return super(RAWVDI, self).get_params() - - def create(self, sr_uuid, vdi_uuid, size): - VDIs = util._getVDIs(self.sr) - self.sr._loadvdis() - smallest = 0 - for vdi in VDIs: - if not vdi['managed'] \ - and long(vdi['virtual_size']) >= long(size) \ - and self.sr.vdis.has_key(vdi['uuid']): - if not smallest: - smallest = long(vdi['virtual_size']) - v = vdi - elif long(vdi['virtual_size']) < smallest: - smallest = long(vdi['virtual_size']) - v = vdi - if smallest > 0: - self.managed = True - self.sr.session.xenapi.VDI.set_managed(v['vdi_ref'], self.managed) - return super(RAWVDI, self.sr.vdis[v['uuid']]).get_params() - raise xs_errors.XenError('SRNoSpace') - - def delete(self, sr_uuid, vdi_uuid): - try: - vdi = util._getVDI(self.sr, vdi_uuid) - if not vdi['managed']: - return - sm_config = vdi['sm_config'] - self.sr.session.xenapi.VDI.set_managed(vdi['vdi_ref'], False) - except: - pass - - def attach(self, sr_uuid, vdi_uuid): - self.sr._loadvdis() - if not self.sr.vdis.has_key(vdi_uuid): - raise xs_errors.XenError('VDIUnavailable') - if not util.pathexists(self.path): - self.sr.refresh() - if not util.wait_for_path(self.path, MAX_TIMEOUT): - util.SMlog("Unable to detect LUN attached to host [%s]" % self.sr.path) - raise xs_errors.XenError('VDIUnavailable') - return super(RAWVDI, self).attach(sr_uuid, vdi_uuid) - - def detach(self, sr_uuid, vdi_uuid): - self.sr._loadvdis() - if not self.sr.vdis.has_key(vdi_uuid): - raise xs_errors.XenError('VDIUnavailable') - - def _set_managed(self, vdi_uuid, managed): - try: - vdi = util._getVDI(self.sr, vdi_uuid) - self.sr.session.xenapi.VDI.set_managed(vdi['vdi_ref'], managed) - except: - raise xs_errors.XenError('VDIUnavailable') - diff --git a/scripts/vm/hypervisor/xenserver/xenserver56/patch b/scripts/vm/hypervisor/xenserver/xenserver56/patch index d3dc7881cd8..7e6944c6b55 100644 --- a/scripts/vm/hypervisor/xenserver/xenserver56/patch +++ b/scripts/vm/hypervisor/xenserver/xenserver56/patch @@ -11,7 +11,6 @@ # If [source path] does not start with '/' or '~', then it is relative path to the location of the patch file. scsiutil.py=/opt/xensource/sm NFSSR.py=/opt/xensource/sm -LUNperVDI.py=/opt/xensource/sm nfs.py=/opt/xensource/sm vmops=..,0755,/etc/xapi.d/plugins vmopsSnapshot=..,0755,/etc/xapi.d/plugins