Merge https://github.com/mine260309/openbmc-tools
diff --git a/leiyu/obmc-utils/upload_and_update.py b/leiyu/obmc-utils/upload_and_update.py
index eca1d87..8a73b8f 100755
--- a/leiyu/obmc-utils/upload_and_update.py
+++ b/leiyu/obmc-utils/upload_and_update.py
@@ -4,6 +4,7 @@
<--tftp user@tftp-ip:/path/to/tftproot>
[--password SSH-PASSWORD-TO-TFTP]
--bmc <bmc-ip>
+ [--noprepare]
[-v]
This scripts copies OpenBMC tarball to TFTP server,
@@ -141,21 +142,26 @@
check_call(cmds, stdout=FNULL, stderr=FNULL)
-def update(tftp, tarball, bmc):
+def update(tftp, tarball, bmc, noprepare):
print 'Update...'
- login(bmc)
- print 'Prepare BMC to update'
- prepare(bmc)
+ if not noprepare:
+ login(bmc)
- # After prepare, BMC will reboot, let's wait for it
- print 'Waiting BMC to reboot...'
- sleep(30)
- while not checkBmcAlive(bmc):
+ print 'Prepare BMC to update'
+ prepare(bmc)
+
+ # After prepare, BMC will reboot, let's wait for it
+ print 'Waiting BMC to reboot...'
+ sleep(30)
+ while not checkBmcAlive(bmc):
+ sleep(5)
+ print 'BMC is back'
+
+ while not login(bmc):
+ print 'Login fails, retry...'
sleep(5)
- print 'BMC is back'
- login(bmc)
print 'Logged in'
print 'Preserve network...'
@@ -192,6 +198,8 @@
help='The password of TFTP server')
parser.add_argument('-b', '--bmc', required=True, dest='bmc',
help='The BMC IP address')
+ parser.add_argument('-n', '--noprepare', action='store_true',
+ help='Do not invoke prepare, update directly')
parser.add_argument('-v', '--verbose', action='store_true',
help='Print verbose log')
@@ -214,7 +222,7 @@
exit(1)
upload(args['tftp'], args['password'], args['tarball'])
- update(args['tftp'], args['tarball'], args['bmc'])
+ update(args['tftp'], args['tarball'], args['bmc'], args['noprepare'])
print 'Completed!'