Add nice startup banners to both daemons
Add nicer easy-to-find (yay ASCII art) banners for the startup printouts of both the node and API daemons. Also adds the safe loader to pvcnoded to prevent hassle messages and a version string in the API daemon file.
This commit is contained in:
		| @@ -26,10 +26,31 @@ import pvcapid.flaskapi as pvc_api | |||||||
| # Entrypoint | # Entrypoint | ||||||
| ########################################################## | ########################################################## | ||||||
|  |  | ||||||
|  | # Version string for startup output | ||||||
|  | version = '0.9.11' | ||||||
|  |  | ||||||
| if pvc_api.config['ssl_enabled']: | if pvc_api.config['ssl_enabled']: | ||||||
|     context = (pvc_api.config['ssl_cert_file'], pvc_api.config['ssl_key_file']) |     context = (pvc_api.config['ssl_cert_file'], pvc_api.config['ssl_key_file']) | ||||||
| else: | else: | ||||||
|     context = None |     context = None | ||||||
|  |  | ||||||
| print('Starting PVC API daemon at {}:{} with SSL={}, Authentication={}'.format(pvc_api.config['listen_address'], pvc_api.config['listen_port'], pvc_api.config['ssl_enabled'], pvc_api.config['auth_enabled'])) | # Print our startup messages | ||||||
|  | print('') | ||||||
|  | print('|--------------------------------------------------|') | ||||||
|  | print('|           ########  ##     ##  ######            |') | ||||||
|  | print('|           ##     ## ##     ## ##    ##           |') | ||||||
|  | print('|           ##     ## ##     ## ##                 |') | ||||||
|  | print('|           ########  ##     ## ##                 |') | ||||||
|  | print('|           ##         ##   ##  ##                 |') | ||||||
|  | print('|           ##          ## ##   ##    ##           |') | ||||||
|  | print('|           ##           ###     ######            |') | ||||||
|  | print('|--------------------------------------------------|') | ||||||
|  | print('| Parallel Virtual Cluster API daemon v{0: <11} |'.format(version)) | ||||||
|  | print('| API version: v{0: <34} |'.format(pvc_api.API_VERSION)) | ||||||
|  | print('| Listen: {0}:{1: <32} |'.format(pvc_api.config['listen_address'], pvc_api.config['listen_port'])) | ||||||
|  | print('| SSL: {0: <43} |'.format(str(pvc_api.config['ssl_enabled']))) | ||||||
|  | print('| Authentication: {0: <32} |'.format(str(pvc_api.config['auth_enabled']))) | ||||||
|  | print('|--------------------------------------------------|') | ||||||
|  | print('') | ||||||
|  |  | ||||||
| pvc_api.app.run(pvc_api.config['listen_address'], pvc_api.config['listen_port'], threaded=True, ssl_context=context) | pvc_api.app.run(pvc_api.config['listen_address'], pvc_api.config['listen_port'], threaded=True, ssl_context=context) | ||||||
|   | |||||||
| @@ -52,16 +52,16 @@ def strtobool(stringv): | |||||||
|  |  | ||||||
| # Parse the configuration file | # Parse the configuration file | ||||||
| try: | try: | ||||||
|     pvc_config_file = os.environ['PVC_CONFIG_FILE'] |     pvcapid_config_file = os.environ['PVC_CONFIG_FILE'] | ||||||
| except Exception: | except Exception: | ||||||
|     print('Error: The "PVC_CONFIG_FILE" environment variable must be set before starting pvcapid.') |     print('Error: The "PVC_CONFIG_FILE" environment variable must be set before starting pvcapid.') | ||||||
|     exit(1) |     exit(1) | ||||||
|  |  | ||||||
| print('Starting PVC API daemon') | print('Loading configuration from file "{}"'.format(pvcapid_config_file)) | ||||||
|  |  | ||||||
| # Read in the config | # Read in the config | ||||||
| try: | try: | ||||||
|     with open(pvc_config_file, 'r') as cfgfile: |     with open(pvcapid_config_file, 'r') as cfgfile: | ||||||
|         o_config = yaml.load(cfgfile, Loader=yaml.BaseLoader) |         o_config = yaml.load(cfgfile, Loader=yaml.BaseLoader) | ||||||
| except Exception as e: | except Exception as e: | ||||||
|     print('ERROR: Failed to parse configuration file: {}'.format(e)) |     print('ERROR: Failed to parse configuration file: {}'.format(e)) | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ $EDITOR ${changelog_file} | |||||||
| changelog="$( cat ${changelog_file} | grep -v '^#' | sed 's/^*/  */' )" | changelog="$( cat ${changelog_file} | grep -v '^#' | sed 's/^*/  */' )" | ||||||
|  |  | ||||||
| sed -i "s,version = '${current_version}',version = '${new_version}'," node-daemon/pvcnoded/Daemon.py | sed -i "s,version = '${current_version}',version = '${new_version}'," node-daemon/pvcnoded/Daemon.py | ||||||
|  | sed -i "s,version = '${current_version}',version = '${new_version}'," api-daemon/pvcapid/Daemon.py | ||||||
|  |  | ||||||
| readme_tmpdir=$( mktemp -d ) | readme_tmpdir=$( mktemp -d ) | ||||||
| cp README.md ${readme_tmpdir}/ | cp README.md ${readme_tmpdir}/ | ||||||
|   | |||||||
| @@ -134,7 +134,7 @@ def readConfig(pvcnoded_config_file, myhostname): | |||||||
|  |  | ||||||
|     with open(pvcnoded_config_file, 'r') as cfgfile: |     with open(pvcnoded_config_file, 'r') as cfgfile: | ||||||
|         try: |         try: | ||||||
|             o_config = yaml.load(cfgfile) |             o_config = yaml.load(cfgfile, Loader=yaml.SafeLoader) | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|             print('ERROR: Failed to parse configuration file: {}'.format(e)) |             print('ERROR: Failed to parse configuration file: {}'.format(e)) | ||||||
|             exit(1) |             exit(1) | ||||||
| @@ -331,16 +331,29 @@ if not os.path.exists(config['log_directory']): | |||||||
| logger = log.Logger(config) | logger = log.Logger(config) | ||||||
|  |  | ||||||
| # Print our startup messages | # Print our startup messages | ||||||
| logger.out('Parallel Virtual Cluster node daemon v{}'.format(version)) | logger.out('') | ||||||
| logger.out('FQDN: {}'.format(myfqdn)) | logger.out('|--------------------------------------------------|') | ||||||
| logger.out('Host: {}'.format(myhostname)) | logger.out('|           ########  ##     ##  ######            |') | ||||||
| logger.out('ID: {}'.format(mynodeid)) | logger.out('|           ##     ## ##     ## ##    ##           |') | ||||||
| logger.out('IPMI hostname: {}'.format(config['ipmi_hostname'])) | logger.out('|           ##     ## ##     ## ##                 |') | ||||||
| logger.out('Machine details:') | logger.out('|           ########  ##     ## ##                 |') | ||||||
| logger.out('  CPUs: {}'.format(staticdata[0])) | logger.out('|           ##         ##   ##  ##                 |') | ||||||
| logger.out('  Arch: {}'.format(staticdata[3])) | logger.out('|           ##          ## ##   ##    ##           |') | ||||||
| logger.out('  OS: {}'.format(staticdata[2])) | logger.out('|           ##           ###     ######            |') | ||||||
| logger.out('  Kernel: {}'.format(staticdata[1])) | logger.out('|--------------------------------------------------|') | ||||||
|  | logger.out('| Parallel Virtual Cluster node daemon v{0: <10} |'.format(version)) | ||||||
|  | logger.out('| FQDN: {0: <42} |'.format(myfqdn)) | ||||||
|  | logger.out('| Host: {0: <42} |'.format(myhostname)) | ||||||
|  | logger.out('| ID: {0: <44} |'.format(mynodeid)) | ||||||
|  | logger.out('| IPMI hostname: {0: <33} |'.format(config['ipmi_hostname'])) | ||||||
|  | logger.out('| Machine details:                                 |') | ||||||
|  | logger.out('|   CPUs: {0: <40} |'.format(staticdata[0])) | ||||||
|  | logger.out('|   Arch: {0: <40} |'.format(staticdata[3])) | ||||||
|  | logger.out('|   OS: {0: <42} |'.format(staticdata[2])) | ||||||
|  | logger.out('|   Kernel: {0: <38} |'.format(staticdata[1])) | ||||||
|  | logger.out('|--------------------------------------------------|') | ||||||
|  | logger.out('') | ||||||
|  |  | ||||||
| logger.out('Starting pvcnoded on host {}'.format(myfqdn), state='s') | logger.out('Starting pvcnoded on host {}'.format(myfqdn), state='s') | ||||||
|  |  | ||||||
| # Define some colours for future messages if applicable | # Define some colours for future messages if applicable | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user