def __init__(self, hostname, ipaddress, pwd, max_uptime=crawler_util.SEVEN_DAYS): HostControl.__init__(self, hostname, ipaddress, crawler_conf.USERNAME_MIKROTIK, pwd, max_uptime) self.host_make = crawler_util.HOST_MAKE_MIKROTIK self.version = None self.hardware = None
def __init__(self, hostname, ipaddress, pwd, max_uptime=crawler_util.SEVEN_DAYS): HostControl.__init__(self, hostname, ipaddress, crawler_conf.USERNAME_UBIQUITI, pwd, max_uptime) self.host_make = crawler_util.HOST_MAKE_UBIQUITI self.version = None self.hardware = None
def backup(self, backup_root): src_dir = '/tmp' src_file = 'system.cfg' dst_dir = HostControl.backup(self, backup_root) dst_file = '%s_%s.cfg' % (self.hostname, self.get_version()) self._safe_scp(src_dir, src_file, dst_dir, dst_file) return src_file
def backup(self, backup_root): dst_dir = HostControl.backup(self, backup_root) dst_file = '%s.cfg' % self.hostname src_dir = None src_file = self.get_config_filename() self._start_sftp_server() self._safe_sftp(src_dir, src_file, dst_dir, dst_file) return src_file
def get_hardware(self): if self.hardware == None: result = self.ssh_command('system resource print; quit') for i, line in enumerate(result): if "board-name" in line: self.hardware = line.split(':')[1].strip().strip('"') if self.hardware == None: raise HostControl.HostControlError( ('Error parsing system resource printout')) return self.hardware
def get_uptime(self): """This thing is a bear to parse""" result = self.ssh_command('system resource print; quit') line = result[0] str = line.split(':')[1].strip() parts = {'w': 0, 'd': 0, 'h': 0, 'm': 0, 's': 0} sum = 0 for i in range(len(str)): c = str[i] if c.isdigit(): sum = sum * 10 + int(c) elif c in parts.keys(): parts[c] = sum sum = 0 else: raise HostControl.HostControlError( ('Error parsing uptime string %s' % str)) weeks = parts['w'] days = parts['d'] + weeks * 7 hours = parts['h'] + days * 24 mins = parts['m'] + hours * 60 return parts['s'] + mins * 60
def reboot(self, tick): return HostControl.reboot(self, 'reboot', 10, tick)
def reboot(self, tick): return HostControl.reboot(self, 'system reboot ; beep', 10, tick)
def backup(self, backup_root): dst_dir = HostControl.backup(self, backup_root) fileb = self._backup_binary(dst_dir) filec = self._backup_config(dst_dir) return '%s+%s' % (fileb, filec)
def reboot(self, tick): """login and then transfer control to callback""" return HostControl.reboot(self, None, 10, tick, self.rebootCB)