123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- # coding=utf-8
- import sys
- from pprint import pprint
- from base import init_env
- init_env(interactive = True)
- from apps.web.device.models import Device
- from apps.web.management.models import Manager
- from apps.web.agent.models import Agent
- from apps.web.dealer.models import Dealer
- def check_error(devCache, errorPorts):
- for port in errorPorts:
- if port in devCache and isinstance(devCache[port], dict) and "status" in devCache:
- return True
- else:
- return False
- def clear_error_port(devNo, errorPorts):
- for port in errorPorts:
- Device.clear_port_control_cache(devNo, port)
- def main(flag, errorPorts):
- print "start"
- MANAGER_NAME = "15268825119"
- manager = Manager.objects.filter(username=MANAGER_NAME).first()
- if manager is None:
- raise Exception("no manager")
- agents = Agent.objects.filter(managerId=str(manager.id)).all()
- if not agents:
- raise Exception("no agent")
- agentIds = [str(item.id) for item in agents]
- print "agentIds:"
- pprint(agentIds)
- print "start search dealers"
- dealers = Dealer.objects.filter(agentId__in=agentIds).all()
- if not dealers:
- raise Exception("no dealer")
- dealerIds = [str(item.id) for item in dealers]
- print "start search devices"
- devices = Device.objects.filter(ownerId__in=dealerIds).all()
- if not devices:
- raise Exception("no devices")
- errorDevices = list()
- for dev in devices:
- devCache = Device.get_dev_control_cache(dev.devNo)
- if check_error(devCache, errorPorts):
- errorDevices.append({dev.devNo: devCache})
- print len(errorDevices)
- if flag == "clear":
- makeSure = raw_input("Ready to clear post %s, please enter 'yes' to make sure" % errorPorts)
- if makeSure == "make sure":
- for devNo in errorDevices.keys():
- clear_error_port(devNo, errorPorts)
- else:
- print "error port num is %s" % len(errorPorts)
- if __name__ == '__main__':
- print u"python port_check.py check/clear port1 port2......"
- flag = sys.argv[1]
- errorPorts = sys.argv[2:]
- main(flag, errorPorts)
|