From 6159e923e6328bc99d528f9c1a368c922cd60be4 Mon Sep 17 00:00:00 2001 From: Bob Lantz <rlantz@cs.stanford.edu> Date: Thu, 9 Oct 2014 14:30:09 -0700 Subject: [PATCH] Add VM port forwarding option: --forward tcp:2222:22 --- util/vm/build.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/util/vm/build.py b/util/vm/build.py index 9a695b71..20725901 100755 --- a/util/vm/build.py +++ b/util/vm/build.py @@ -52,7 +52,8 @@ SaveQCOW2 = False # Save QCOW2 image rather than deleting it NoKVM = False # Don't use kvm and use emulation instead Branch = None # Branch to update and check out before testing -Zip = False # Archive .ovf and .vmdk into a .zip file +Zip = False # Archive .ovf and .vmdk into a .zip file +Forward = [] # VM port forwarding options (-redir) VMImageDir = os.environ[ 'HOME' ] + '/vm-images' @@ -464,6 +465,8 @@ def close( self, force=False ): '-initrd', initrd, '-drive file=%s,if=virtio' % cow, '-append "root=/dev/vda1 init=/sbin/init console=ttyS0" ' ] + if Forward: + cmd += sum( [ [ '-redir', f ] for f in Forward ], [] ) cmd = ' '.join( cmd ) log( '* BOOTING VM FROM', cow ) log( cmd ) @@ -934,7 +937,7 @@ def testString(): def parseArgs(): "Parse command line arguments and run" - global LogToConsole, NoKVM, Branch, Zip, TIMEOUT + global LogToConsole, NoKVM, Branch, Zip, TIMEOUT, Forward parser = argparse.ArgumentParser( description='Mininet VM build script', epilog=buildFlavorString() + ' ' + testString() ) @@ -972,6 +975,8 @@ def parseArgs(): help='archive .ovf and .vmdk into .zip file' ) parser.add_argument( '-o', '--out', help='output file for test image (vmdk)' ) + parser.add_argument( '-f', '--forward', default=[], action='append', + help='forward VM ports to local server, e.g. tcp:5555::22' ) args = parser.parse_args() if args.depend: depend() @@ -989,6 +994,8 @@ def parseArgs(): Zip = True if args.timeout: TIMEOUT = args.timeout + if args.forward: + Forward = args.forward if not args.test and not args.run and not args.post: args.test = [ 'sanity', 'core' ] for flavor in args.flavor: -- GitLab