manage.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python
  2. """Django's command-line utility for administrative tasks."""
  3. import os
  4. import sys
  5. import signal
  6. import socket
  7. from utils.directoryUtil import DirectoryUtil
  8. from common.appConfig import GetLogger
  9. def get_ip_address():
  10. """Get the IP address of the current machine."""
  11. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  12. try:
  13. # This doesn't have to be reachable, just an address on the same network
  14. s.connect(('10.254.254.254', 1))
  15. ip_address = s.getsockname()[0]
  16. except Exception:
  17. ip_address = '127.0.0.1'
  18. finally:
  19. s.close()
  20. return ip_address
  21. def customSignalHandler(signal, frame):
  22. ip_address = get_ip_address()
  23. msg1=f'Custom signal handler: Cleanup operations can be done here.'
  24. msg2=f'The IP address of this machine is: {ip_address}'
  25. print(msg1)
  26. logger = GetLogger()
  27. logger.warning(msg1)
  28. logger.warning(msg2)
  29. sys.exit(0)
  30. def main():
  31. logDirectory="log"
  32. if not DirectoryUtil.check_directory_exists(logDirectory):
  33. DirectoryUtil.create_directory(logDirectory)
  34. """Run administrative tasks."""
  35. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wtoaamapi.settings')
  36. try:
  37. from django.core.management import execute_from_command_line
  38. except ImportError as exc:
  39. raise ImportError(
  40. "Couldn't import Django. Are you sure it's installed and "
  41. "available on your PYTHONPATH environment variable? Did you "
  42. "forget to activate a virtual environment?"
  43. ) from exc
  44. # Register custom signal handlers
  45. signal.signal(signal.SIGINT, customSignalHandler) # Handle Ctrl-C
  46. signal.signal(signal.SIGTERM, customSignalHandler) # Handle kill command
  47. execute_from_command_line(sys.argv)
  48. if __name__ == '__main__':
  49. main()