[f-nsp] Script to simplify software upgrade process

Rickhard Carlswärd rickhard at port80.se
Mon Mar 31 08:01:30 EDT 2008


That is true for the FESX and other similar platforms even the RX with
the unified image but for the MLX and XMR you will have to copy "alot"
of images.

/rickhard


On Mon, 2008-03-31 at 07:27 -0400, Drew Weaver wrote:
> its one command if you need to install the flash and two commands if you need to install the flash and the boot loader, how is that confusing?
> 
> Thanks,
> -Drew
> 
> -----Original Message-----
> From: foundry-nsp-bounces at puck.nether.net [mailto:foundry-nsp-bounces at puck.nether.net] On Behalf Of Piper, James
> Sent: Monday, March 31, 2008 12:43 AM
> To: foundry-nsp at puck.nether.net
> Subject: Re: [f-nsp] Script to simplify software upgrade process
> 
> 
> Formatting got all messed up. Email me directly if you want a copy.
> 
> James
> 
> -----Original Message-----
> From: foundry-nsp-bounces at puck.nether.net
> [mailto:foundry-nsp-bounces at puck.nether.net] On Behalf Of Piper, James
> Sent: Monday, 31 March 2008 15:31
> To: foundry-nsp at puck.nether.net
> Subject: [f-nsp] Script to simplify software upgrade process
> 
> Hi All,
> 
> I'm not sure if I missed something but I haven't found anything in the
> documentation that gives a simple list of commands to execute in order
> to perform a software upgrade from a TFTP server. In response I wrote
> this simple script to parse a software release directory and generate a
> file listing the exact commands in order to cut-and-paste onto the
> switch. Be good if SNMP could be used instead. Hope it helps someone..
> 
> Regards,
> James
> 
> # Copyright 2008 Rail Corporation of NSW # # This program is free
> software: you can redistribute it and/or modify
> #    it under the terms of the GNU General Public License as published
> by
> #    the Free Software Foundation, either version 3 of the License, or
> #    (at your option) any later version.
> #
> #    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 General Public License for more details.
> #
> #    You should have received a copy of the GNU General Public License
> #    along with this program.  If not, see
> <http://www.gnu.org/licenses/>.
> 
> import re
> from os import listdir
> from sys import argv, exit
> 
> if len(argv)==3:
>     tftp_server = argv[1]
>     files_dir = argv[2]
> else:
>     tftp_server = '172.21.2.101'
>     files_dir = '.'
> 
> files = listdir(files_dir)
> 
> # regex for matching files
> mgt_monitor = re.compile('^xmb\d+.*\.bin') mgt_boot =
> re.compile('^xmprm\d+.*\.bin') mgt_ironware =
> re.compile('^xmr\d+.*\.bin') mgt_fpga =
> re.compile('^mbridge_\d+.*\.xsvf')
> 
> int_monitor = re.compile('^xmlb\d+.*\.bin') int_boot =
> re.compile('^xmlprm\d+.*\.bin') int_ironware =
> re.compile('^xmlp\d+.*\.bin') int_pbif =
> re.compile('^pbif(?!oc).*\.bin') int_xpp =
> re.compile('^xpp(?!oc).*\.bin') int_xgmac = re.compile('^xgmac')
> 
> fabric_fpga = re.compile('^sbridge')
> 
> commands = {}
> 
> # commands are entered in order
> for f in files:
>         if mgt_monitor.match(f):
>                 commands[0] = '! mgt_monitor\ncopy tftp flash %s %s
> monitor\n' % (tftp_server, f)
> 
>         if mgt_boot.match(f):
>                 commands[1] =  '! mgt_boot\ncopy tftp flash %s %s
> boot\n' % (tftp_server, f)
> 
>         if mgt_ironware.match(f):
>                 commands[2] =  '! mgt_ironware\ncopy tftp flash %s %s
> primary\n' % (tftp_server, f)
> 
>         if mgt_fpga.match(f):
>                 commands[3] =  '! mgt_fpga\ncopy tftp mbridge %s %s\n' %
> (tftp_server, f)
> 
>         if int_monitor.match(f):
>                 commands[4] =  '! int_monitor\ncopy tftp lp %s %s
> monitor all\n' % (tftp_server, f)
> 
>         if int_boot.match(f):
>                 commands[5] =  '! int_boot\ncopy tftp lp %s %s boot
> all\n' % (tftp_server, f)
> 
>         if int_ironware.match(f):
>                 commands[6] =  '! int_ironware\ncopy tftp lp %s %s
> primary all\n' % (tftp_server, f)
> 
>         if int_pbif.match(f):
>                 commands[7] =  '! int_pbif\ncopy tftp lp %s %s fpga-pbif
> all\n' % (tftp_server, f)
> 
>         if int_xpp.match(f):
>                 commands[8] =  '! int_xpp\ncopy tftp lp %s %s fpga-xpp
> all\n' % (tftp_server, f)
> 
>         if int_xgmac.match(f):
>                 commands[9] =  '! int_xgmac\ncopy tftp lp %s %s
> fpga-xgmac all\n' % (tftp_server, f)
> 
> out  = open('upgrade.cfg','w')
> 
> # write out commands in order
> for i in range(10):
>         if commands.has_key(i): out.write( '%s' % (commands[i]) )
> 
> if not len(commands)==0:
>     out.write('! reboot\nboot system flash primary')
> 
> 
> 
> 
> 
> This e-mail and any attachments may contain confidential information
> that is intended solely for the use of the intended recipient and may be
> subject to copyright. If you receive this e-mail in error, please notify
> the sender immediately and delete the e-mail and its attachments from
> your system. You must not disclose, copy or use any part of this e-mail
> if you are not the intended recipient. Any opinion expressed in this
> e-mail and any attachments is not an opinion of RailCorp unless stated
> or apparent from its content. RailCorp is not responsible for any
> unauthorised alterations to this e-mail or any attachments. RailCorp
> will not incur any liability resulting directly or indirectly as a
> result of the recipient accessing any of the attached files that may
> contain a virus.
> _______________________________________________
> foundry-nsp mailing list
> foundry-nsp at puck.nether.net
> http://puck.nether.net/mailman/listinfo/foundry-nsp
> 
> 
> 
> 
> This e-mail and any attachments may contain confidential information that is intended solely for the use of the intended recipient and may be subject to copyright. If you receive this e-mail in error, please notify the sender immediately and delete the e-mail and its attachments from your system. You must not disclose, copy or use any part of this e-mail if you are not the intended recipient. Any opinion expressed in this e-mail and any attachments is not an opinion of RailCorp unless stated or apparent from its content. RailCorp is not responsible for any unauthorised alterations to this e-mail or any attachments. RailCorp will not incur any liability resulting directly or indirectly as a result of the recipient accessing any of the attached files that may contain a virus.
> _______________________________________________
> foundry-nsp mailing list
> foundry-nsp at puck.nether.net
> http://puck.nether.net/mailman/listinfo/foundry-nsp
> _______________________________________________
> foundry-nsp mailing list
> foundry-nsp at puck.nether.net
> http://puck.nether.net/mailman/listinfo/foundry-nsp




More information about the foundry-nsp mailing list