123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env python
- """Django's command-line utility for administrative tasks."""
- import os
- import sys
- import signal
- import socket
- from utils.directoryUtil import DirectoryUtil
- from common.appConfig import GetLogger
- def get_ip_address():
- """Get the IP address of the current machine."""
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- try:
- # This doesn't have to be reachable, just an address on the same network
- s.connect(('10.254.254.254', 1))
- ip_address = s.getsockname()[0]
- except Exception:
- ip_address = '127.0.0.1'
- finally:
- s.close()
- return ip_address
- def customSignalHandler(signal, frame):
- ip_address = get_ip_address()
- msg1=f'Custom signal handler: Cleanup operations can be done here.'
- msg2=f'The IP address of this machine is: {ip_address}'
- print(msg1)
- logger = GetLogger()
- logger.warning(msg1)
- logger.warning(msg2)
-
- sys.exit(0)
- def main():
- logDirectory="log"
- if not DirectoryUtil.check_directory_exists(logDirectory):
- DirectoryUtil.create_directory(logDirectory)
- """Run administrative tasks."""
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wtoaamapi.settings')
- try:
- from django.core.management import execute_from_command_line
- except ImportError as exc:
- raise ImportError(
- "Couldn't import Django. Are you sure it's installed and "
- "available on your PYTHONPATH environment variable? Did you "
- "forget to activate a virtual environment?"
- ) from exc
-
- # Register custom signal handlers
- signal.signal(signal.SIGINT, customSignalHandler) # Handle Ctrl-C
- signal.signal(signal.SIGTERM, customSignalHandler) # Handle kill command
- execute_from_command_line(sys.argv)
- if __name__ == '__main__':
- main()
|