More movement
[invirt/packages/invirt-autoinstaller.git] / files / usr / sbin / sipb-xen-lvcopy
diff --git a/files/usr/sbin/sipb-xen-lvcopy b/files/usr/sbin/sipb-xen-lvcopy
deleted file mode 100755 (executable)
index 53c5aa8..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python2.5
-
-import sys
-import os
-import shutil
-import tempfile
-import time
-from subprocess import call, check_call, Popen, PIPE
-
-# Make sure to use up fd 0 to avoid a bug in subprocess in Python <= 2.5.1
-# NB we need to do this on every Python remctl script.
-# See r53624 in Python svn.
-sys.stdin = open('/dev/null')
-
-def losetup(source, offset=0):
-  p = Popen(['sipb-xen-losetup', source, str(offset)], stdout=PIPE)
-  return p.communicate()[0].strip()
-
-def frob_copy_in_vm(target, *args):
-  '''UNUSED: maybe we'll use this someday; it does isolate the frobber.'''
-  # 1. prepare arguments volume
-  args_volume = prefix+target+'_args'
-  args_device = '/dev/xenvg/' + args_volume
-  check_call(['/sbin/lvcreate', 'xenvg', '--name', args_volume, '--size', '4K'])
-  file(args_device, 'w').write('\n'.join(args) + '\n')
-
-  # 2. invoke frobber vm
-  copier_device = '/dev/xenvg/d_wert_hda'
-  check_call(['/usr/sbin/xm', 'create', 'sipb-database',
-              'machine_name='+target,
-              'disks=' + ' '.join(['phy:'+copier_device+',hda,w',
-                                   'phy:'+target_device+',hdc,w',
-                                   'phy:'+args_device+',hdd,w'])])
-
-  # XXX should check_call(['/sbin/lvremove', '-f', 'xenvg/'+args_volume])
-
-def frob_copy(target, hostname, rootpw):
-  """target should be an LV device filename"""
-  # 1: mount filesystem
-  fs = losetup(target, 32256)
-  mntdir = tempfile.mkdtemp('', 'auto-install.frob.', '/tmp')
-  call(['mount', '-t', 'ext3', fs, mntdir])
-  # 2: do frobbing
-  call(['/usr/sbin/chroot', mntdir, '/post-copy', hostname, rootpw])
-  # 3: clean up
-  call(['umount', mntdir])
-  os.rmdir(mntdir)
-  call(['losetup', '-d', fs])
-
-def duplicate_by_vm(source, target, rootpw, nodd=False, nofrob=False):
-  if source != "ice3":
-     print "Error: can't clone that VM"
-     sys.exit(1)
-  # source, target should be machine names
-  prefix = 'd_'
-  # 1. copy (by dd) source to target
-  source_device = '/dev/xenvg/' + prefix + source + '_hda'
-  target_device = '/dev/xenvg/' + prefix + target + '_hda'
-  if not nodd:
-    check_call(['/bin/dd', 'bs=1M', 'conv=nocreat',
-                'if='+source_device, 'of='+target_device])
-  # 2. frob target
-  if not nofrob:
-    frob_copy(target_device, target, rootpw)
-
-def main(*argv):
-  subcommand = argv[1]
-  args = argv[2:]
-  os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
-  if subcommand == 'lvcopy':
-    kwargs = {}
-    while True:
-      if args[0].startswith('--'):
-        kwargs[args[0][2:]] = True
-        args = args[1:]
-        continue
-      if len(args) != 3:
-        print >>sys.stderr, argv[0]+': bad argument list'
-        return 2
-      break
-    duplicate_by_vm(*args, **kwargs)
-  elif subcommand == 'test':
-    pass
-  else:
-    print >>sys.stderr, argv[0]+": unknown subcommand: "+subcommand
-    return 2
-  return 0
-
-if __name__ == '__main__':
-  sys.exit(main(*sys.argv))