コード例 #1
0
ファイル: oss.py プロジェクト: hh-h/ossdev
 def POST(self): # noqa
     ''' Возвращает список свободных портов на свитче '''
     i = web.input(ip='')
     ip = H.check_ip(i.ip)
     if not ip:
         msg = 'not ip "{0}"'.format(i.ip)
         print(msg)
         return dumps({
             'status' : Status.ERROR,
             'msg'    : msg
         })
     # получим список портов со свитча
     sw = Switch(swconf, ip)
     sw_ports = sw.get_local_lldp_ports()
     if not sw_ports:
         msg = 'switch {0} dont have lldp ports'
         print(msg)
         return dumps({
             'status': Status.EMPTY
         })
     ports = set(sw_ports)
     # получим список портов которые уже есть в базе
     db_ports = Topology().get_ports(ip)
     if db_ports:
         ports = ports - db_ports
     return dumps({
         'status': Status.SUCCESS,
         'data'  : sorted(ports)
     })
コード例 #2
0
ファイル: oss.py プロジェクト: hh-h/ossdev
 def POST(self): # noqa
     i = web.input(ip='')
     ip = H.check_ip(i.ip)
     if not ip:
         msg = 'not ip "{0}"'.format(i.ip)
         print(msg)
         return dumps({
             'status' : Status.ERROR,
             'msg'    : msg
         })
     sw = Switch(swconf, ip)
     return sw.get_snmp_all_ports_status()
コード例 #3
0
ファイル: oss.py プロジェクト: hh-h/ossdev
    def POST(self): # noqa
        i = web.input(ip='', port='', data='')

        if not i.ip or not i.port or not i.data:
            msg = 'wrong (empty) inputs'
            print(msg)
            return dumps({
                'status': Status.ERROR,
                'msg'   : msg
            })
        ip = H.check_ip(i.ip)
        if not ip:
            msg = 'wrong ip'
            print(msg)
            return dumps({
                'status': Status.ERROR,
                'msg'   : msg
            })
        # trigger must be 1 for up or 2 for down
        try:
            trigger = int(i.data)
            port = int(i.port)
        except ValueError:
            msg = 'wrong port or trigger'
            print(msg)
            return dumps({
                'status': Status.ERROR,
                'msg'   : msg
            })

        if trigger not in (0, 1):
            msg = 'wrong trigger {0}'.format(trigger)
            print(msg)
            return dumps({
                'status': Status.ERROR,
                'msg'   : msg
            })
        trigger, action = [1, 'поднять'] if trigger == 0 else [0, 'опустить']

        log.save_action(session.name, 'ports', 'Пытается {0} порт {1} на свитче {2}'.format(action, port, ip))

        sw = Switch(swconf, ip)
        return sw.change_port_status(port, trigger)
コード例 #4
0
ファイル: oss.py プロジェクト: hh-h/ossdev
    def POST(self): # noqa
        i = web.input(ip='', port='')
        ip = H.check_ip(i.ip)
        if not ip:
            msg = 'not ip "{0}"'.format(i.ip)
            print(msg)
            return dumps({
                'status' : Status.ERROR,
                'msg'    : msg
            })

        try:
            port = int(i.port)
        except ValueError:
            msg = 'port not int, port: "{0}"'.format(i.port)
            print(msg)
            return dumps({
                'status' : Status.ERROR,
                'msg'    : msg
            })

        sw = Switch(swconf, ip)
        return sw.get_snmp_port_status(port)