diff options
Diffstat (limited to 'tools/python/xen/xend/server/tpmif.py')
-rw-r--r-- | tools/python/xen/xend/server/tpmif.py | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/tools/python/xen/xend/server/tpmif.py b/tools/python/xen/xend/server/tpmif.py deleted file mode 100644 index 23a10e9483..0000000000 --- a/tools/python/xen/xend/server/tpmif.py +++ /dev/null @@ -1,141 +0,0 @@ -#============================================================================ -# This library is free software; you can redistribute it and/or -# modify it under the terms of version 2.1 of the GNU Lesser General Public -# License as published by the Free Software Foundation. -# -# This library 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. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -#============================================================================ -# Copyright (C) 2004 Mike Wray <mike.wray@hp.com> -# Copyright (C) 2005 IBM Corporation -# Author: Stefan Berger, stefanb@us.ibm.com -# Copyright (C) 2005 XenSource Ltd -#============================================================================ - -"""Support for virtual TPM interfaces.""" - -from xen.xend import XendOptions -from xen.xend.XendLogging import log -from xen.xend.XendError import XendError -from xen.xend.XendConstants import DEV_MIGRATE_TEST, VTPM_DELETE_SCRIPT -from xen.xend.server.DevController import DevController - -import os -import re - -xoptions = XendOptions.instance() - -def destroy_vtpmstate(uuids): - if os.path.exists(VTPM_DELETE_SCRIPT): - for uuid in uuids: - os.system(VTPM_DELETE_SCRIPT + " " + uuid) - -class TPMifController(DevController): - """TPM interface controller. Handles all TPM devices for a domain. - """ - - def __init__(self, vm): - DevController.__init__(self, vm) - - - def getDeviceDetails(self, config): - """@see DevController.getDeviceDetails""" - - devid = self.allocateDeviceID() - inst = int(config.get('pref_instance', -1)) - if inst == -1: - inst = int(config.get('instance', 0)) - - typ = config.get('type') - uuid = config.get('uuid') - - log.info("The domain has a TPM with pref. instance %d and devid %d.", - inst, devid) - back = { 'pref_instance' : "%i" % inst, - 'resume' : "%s" % (self.vm.getResume()) } - if typ: - back['type'] = typ - if uuid: - back['uuid'] = uuid - - data = self.vm.info['devices'].get(uuid) - if data: - other = data[1].get('other_config') - if type(other) == dict: - for key, item in other.items(): - back['oc_' + key] = item - - front = { 'handle' : "%i" % devid } - - return (devid, back, front) - - def getDeviceConfiguration(self, devid, transaction = None): - """Returns the configuration of a device""" - result = DevController.getDeviceConfiguration(self, devid, transaction) - - (instance, uuid, type) = \ - self.readBackend(devid, 'instance', - 'uuid', - 'type') - - if instance: - result['instance'] = instance - if uuid: - result['uuid'] = uuid - if type: - result['type'] = type - - if uuid: - data = self.vm.info['devices'].get(uuid) - if data: - other = data[1].get('other_config') - if other: - result['other_config'] = other - - return result - - def migrate(self, deviceConfig, network, dst, step, domName): - """@see DevContoller.migrate""" - if network: - tool = xoptions.get_external_migration_tool() - if tool != '': - log.info("Request to network-migrate device to %s. step=%d.", - dst, step) - - if step == DEV_MIGRATE_TEST: - """Assuming for now that everything is ok and migration - with the given tool can proceed. - """ - return 0 - else: - fd = os.popen("%s -type vtpm -step %d -host %s -domname %s" % - (tool, step, dst, domName), - 'r') - for line in fd.readlines(): - mo = re.search('Error', line) - if mo: - raise XendError("vtpm: Fatal error in migration step %d: %s" % - (step, line)) - return 0 - else: - log.debug("External migration tool not in configuration.") - return -1 - return 0 - - def recover_migrate(self, deviceConfig, network, dst, step, domName): - """@see DevContoller.recover_migrate""" - if network: - tool = xoptions.get_external_migration_tool() - if tool != '': - log.info("Request to recover network-migrated device. last good step=%d.", - step) - fd = os.popen("%s -type vtpm -step %d -host %s -domname %s -recover" % - (tool, step, dst, domName), - 'r') - return 0 |