main_functions.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. """
  4. 引入基本库
  5. os: 操作系统模块
  6. sys: 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。
  7. """
  8. import os
  9. import sys
  10. """
  11. 设置正确路径
  12. os.path.join(route1,route2,route3...): 链接字符串变为路径-> route1/route2/route3/...
  13. os.path.abspath(file): 获得当前文件的绝对路径
  14. os.path.split(route): 按照路径将文件名和路径分割开 [0]-> 第一个文件名
  15. os.path.realpath(__file__): 获得__file__的标准路径 __file__ -> 当前文件的完整绝对路径
  16. sys.path.insert(0, route)这样新添加的目录会优先于其他目录被import检查
  17. """
  18. PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
  19. sys.path.insert(0, PROJECT_ROOT)
  20. # 引入项目环境和日志
  21. from script.base import init_env, get_logger
  22. init_env(interactive=True)
  23. logger = get_logger(__name__)
  24. from apps.web.device.models import Device
  25. class DevUtils(object):
  26. # 通过logicalCode解注册
  27. @classmethod
  28. def un_reg_by_l(cls, l):
  29. d = Device.get_dev_by_logicalCode(l)
  30. assert d is not None, 'cache is not found, logicalCode=%s' % l
  31. status = Device.un_register(d)
  32. assert status, 'device un_register failed'
  33. Device.invalid_device_cache(d['devNo'])
  34. logger.info('logicalCode=%s has been un_registered.' % l)
  35. # 通过imei解注册
  36. @classmethod
  37. def un_reg_by_i(cls, i):
  38. d = Device.get_dev(i)
  39. assert d is not None, 'cache is not found, devNo=%s' % i
  40. status = Device.un_register(d)
  41. assert status, 'device un_register failed'
  42. Device.invalid_device_cache(d['devNo'])
  43. logger.info('devNo=%s has been un_registered.' % i)
  44. # 通过logicalCode列表解注册
  45. @classmethod
  46. def un_reg_by_ls(cls, arr):
  47. for _ in arr:
  48. try:
  49. d = Device.get_dev_by_logicalCode(_)
  50. Device.un_register(d)
  51. Device.invalid_device_cache(d['devNo'])
  52. except Exception, e:
  53. logger.error('device un_register failed. e=%s' % e)
  54. logger.info('logicalCode list=%s has been un_registered.' % arr)
  55. # 通过imei列表解注册
  56. @classmethod
  57. def un_reg_by_is(cls, arr):
  58. for _ in arr:
  59. try:
  60. d = Device.get_dev(_)
  61. Device.un_register(d)
  62. Device.invalid_device_cache(d['devNo'])
  63. except Exception, e:
  64. logger.error('device un_register failed. e=%s' % e)
  65. logger.info('devNo list=%s has been un_registered.' % arr)
  66. if __name__ == '__main__':
  67. # 使用的时候用类调用
  68. pass