def copy_images_to_switch(self, log): """ This definition is to copy the right set of images to switch which has been used for sanities for other its not required so just return """ dir = '' logging.info( "Copy the kick=%s and sys=%s images if not available to the switch", self.kick, self.sys) console = pexpect.spawn('telnet %s %s' % (self.console_ip, self.act_port)) console.logfile = log time.sleep(2) console.sendline('') i = console.expect([ pexpect.TIMEOUT, pexpect.EOF, defn.SWITCH_LOGIN, defn.SWITCH_PROMPT, 'loader>.*' ], 120) if i == 0 or i == 1: logging.debug(str(console)) console.close() return if i == 2 or i == 3: if i == 2: console.sendline('admin') console.expect('assword:') console.sendline(self.switch_pwd) console.expect(defn.SWITCH_PROMPT) console.sendline('switchback') console.expect(defn.SWITCH_PROMPT) console.sendline('terminal length 0') console.expect(defn.SWITCH_PROMPT) console.sendline('dir') console.expect(defn.SWITCH_PROMPT) dirs = console.before if self.kick in dirs.split() and self.sys in dirs.split(): logging.info( "Found the Kickstart and System image in bootflash") console.close() return logging.info( "Did not find Kickstart and System image in bootflash") if i == 4: console.sendline('') console.expect('loader>.*') console.sendline('dir') console.expect('loader>.*') dirs = console.before if self.kick in dirs.split() and self.sys in dirs.split(): logging.info( "Found the Kickstart and System image in bootflash") console.close() return logging.info( "Did not find Kickstart and System image in bootflash") if i == 2 or i == 3: console.sendline('reload') console.expect('y/n') console.sendline('y') console.expect('loader>.*', 60) console.sendline('') i = console.expect([pexpect.TIMEOUT, pexpect.EOF, 'loader>.*']) if i == 0 or i == 1: logging.debug(str(console)) console.close() return if i == 2: console.sendline('dir') console.expect('loader>.*') imgs = n7kSwitch.get_images_in_switch(console.before) for im in imgs: match = re.match(r'n7.*kickstart([0-9A-Za-z\.]+)', im) if match: break console.sendline('boot %s' % im) console.expect(defn.SWITCH_PROMPT, 120) Switch.setip_in_boot(console, self.mgmt_ip) for img in imgs: console.sendline('delete bootflash:%s' % img) console.expect(defn.SWITCH_PROMPT) time.sleep(60) d_file = self.kick s_file = "%s/%s.kickstart.gbin" % (self.switch_name, self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) d_file = self.sys s_file = "%s/%s.system.gbin" % (self.switch_name, self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) d_file = "power_config" s_file = "%s/%s.run_power_config" % (self.switch_name, self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) s_file = "%s/%s.start_power_config" % (self.switch_name, self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) console.close() return
def copy_images_to_switch(self, log): """ This definition is to copy the right set of images to switch which has been used for sanities for other its not required so just return """ dir = '' logging.info("Copy the kick=%s and sys=%s images if not available to the switch",self.kick, self.sys) console = pexpect.spawn('telnet %s %s'%(self.console_ip,self.act_port)) console.logfile = log time.sleep(2) console.sendline('') i = console.expect([pexpect.TIMEOUT, pexpect.EOF, defn.SWITCH_LOGIN, defn.SWITCH_PROMPT, 'loader>.*'], 120) if i==0 or i==1: logging.debug(str(console)) console.close() return if i==2 or i==3: if i==2: console.sendline('admin') console.expect('assword:') console.sendline(self.switch_pwd) console.expect(defn.SWITCH_PROMPT) console.sendline('switchback') console.expect(defn.SWITCH_PROMPT) console.sendline('terminal length 0') console.expect(defn.SWITCH_PROMPT) console.sendline('dir') console.expect(defn.SWITCH_PROMPT) dirs = console.before if self.kick in dirs.split() and self.sys in dirs.split(): logging.info("Found the Kickstart and System image in bootflash") console.close() return logging.info("Did not find Kickstart and System image in bootflash") if i==4: console.sendline('') console.expect('loader>.*') console.sendline('dir') console.expect('loader>.*') dirs = console.before if self.kick in dirs.split() and self.sys in dirs.split(): logging.info("Found the Kickstart and System image in bootflash") console.close() return logging.info("Did not find Kickstart and System image in bootflash") if i==2 or i==3: console.sendline('reload') console.expect('y/n') console.sendline('y') console.expect('loader>.*', 60) console.sendline('') i = console.expect([pexpect.TIMEOUT, pexpect.EOF, 'loader>.*']) if i==0 or i==1: logging.debug(str(console)) console.close() return if i==2: console.sendline('dir') console.expect('loader>.*') imgs = n7kSwitch.get_images_in_switch(console.before) for im in imgs: match = re.match(r'n7.*kickstart([0-9A-Za-z\.]+)', im) if match: break console.sendline('boot %s' % im) console.expect(defn.SWITCH_PROMPT, 120) Switch.setip_in_boot(console,self.mgmt_ip) for img in imgs: console.sendline('delete bootflash:%s' % img) console.expect(defn.SWITCH_PROMPT) time.sleep(60) d_file = self.kick s_file = "%s/%s.kickstart.gbin"%(self.switch_name,self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) d_file = self.sys s_file = "%s/%s.system.gbin"%(self.switch_name,self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) d_file = "power_config" s_file = "%s/%s.run_power_config"%(self.switch_name,self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) s_file = "%s/%s.start_power_config"%(self.switch_name,self.switch_name) Switch.copy_files_to_switch(switch_cons=console, s_file=s_file, d_file=d_file) console.close() return