From 7fa76fad82888c74545f9df77033e3272da70749 Mon Sep 17 00:00:00 2001 From: Dobroslaw Zybort Date: Mon, 11 Sep 2017 11:12:38 +0200 Subject: [PATCH 1/2] More double quotes in sh files --- monasca-alarms/start.sh | 4 ++-- monasca-api-python/health-check.sh | 2 +- monasca-api-python/start.sh | 6 +++--- monasca-forwarder/start.sh | 2 +- monasca-log-api/health-check.sh | 2 +- monasca-log-api/start.sh | 2 +- monasca-log-metrics/start.sh | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/monasca-alarms/start.sh b/monasca-alarms/start.sh index 97c009d0b..995c69ff6 100755 --- a/monasca-alarms/start.sh +++ b/monasca-alarms/start.sh @@ -8,7 +8,7 @@ if [ -n "$MONASCA_WAIT_FOR_API" ]; then echo "Waiting for Monasca API to become available..." success="false" - for i in $(seq $MONASCA_API_WAIT_RETRIES); do + for i in $(seq "$MONASCA_API_WAIT_RETRIES"); do monasca alarm-definition-list --limit 1 if [ $? -eq 0 ]; then success="true" @@ -29,4 +29,4 @@ fi echo "Loading Definitions...." python /template.py /config/definitions.yml.j2 /config/definitions.yml -python monasca_alarm_definition.py --verbose --definitions-file /config/definitions.yml +python monasca_alarm_definition.py --verbose --definitions-file /config/definitions.yml diff --git a/monasca-api-python/health-check.sh b/monasca-api-python/health-check.sh index f56bc6c45..f35106c26 100755 --- a/monasca-api-python/health-check.sh +++ b/monasca-api-python/health-check.sh @@ -39,7 +39,7 @@ KEYSTONE_TOKEN=$(curl --include --silent --show-error --output - --header "Conte }' ) && \ curl --include --silent --show-error --output - --header "X-Auth-Token:${KEYSTONE_TOKEN}" \ - http://localhost:${MONASCA_CONTAINER_API_PORT} 2>&1 | \ + http://localhost:"${MONASCA_CONTAINER_API_PORT}" 2>&1 | \ awk ' BEGIN {status_code="0"; body=""; output=""} $1 ~ /^HTTP\// {status_line=$0; status_code=$2} diff --git a/monasca-api-python/start.sh b/monasca-api-python/start.sh index 7ec6d8f4c..bc978dc1d 100755 --- a/monasca-api-python/start.sh +++ b/monasca-api-python/start.sh @@ -14,7 +14,7 @@ KAFKA_WAIT_DELAY=${KAFKA_WAIT_DELAY:-"5"} if [ "$MYSQL_WAIT_RETRIES" != "0" ]; then echo "Waiting for MySQL to become available..." success="false" - for i in $(seq $MYSQL_WAIT_RETRIES); do + for i in $(seq "$MYSQL_WAIT_RETRIES"); do mysqladmin status \ --host="$MYSQL_HOST" \ --user="$MYSQL_USER" \ @@ -41,7 +41,7 @@ if [ -n "$KAFKA_WAIT_FOR_TOPICS" ]; then echo "Waiting for Kafka topics to become available..." success="false" - for i in $(seq $KAFKA_WAIT_RETRIES); do + for i in $(seq "$KAFKA_WAIT_RETRIES"); do python /kafka_wait_for_topics.py if [ $? -eq 0 ]; then success="true" @@ -89,7 +89,7 @@ gunicorn --capture-output \ -n monasca-api \ --worker-class="$GUNICORN_WORKER_CLASS" \ --worker-connections="$GUNICORN_WORKER_CONNECTIONS" \ - --backlog=$GUNICORN_BACKLOG \ + --backlog="$GUNICORN_BACKLOG" \ $access_arg \ --access-logformat "$ACCESS_LOG_FIELDS" \ --paste /etc/monasca/api-config.ini \ diff --git a/monasca-forwarder/start.sh b/monasca-forwarder/start.sh index 42178c5f9..43e6a3d68 100755 --- a/monasca-forwarder/start.sh +++ b/monasca-forwarder/start.sh @@ -8,7 +8,7 @@ if [ -n "$KAFKA_WAIT_FOR_TOPICS" ]; then echo "Waiting for Kafka topics to become available..." success="false" - for i in $(seq $KAFKA_WAIT_RETRIES); do + for i in $(seq "$KAFKA_WAIT_RETRIES"); do python /kafka_wait_for_topics.py if [ $? -eq 0 ]; then success="true" diff --git a/monasca-log-api/health-check.sh b/monasca-log-api/health-check.sh index 6f84d45c3..64998fc65 100755 --- a/monasca-log-api/health-check.sh +++ b/monasca-log-api/health-check.sh @@ -4,7 +4,7 @@ MONASCA_CONTAINER_LOG_API_PORT=${1:-5607} curl --include --silent --show-error --output - \ - http://localhost:${MONASCA_CONTAINER_LOG_API_PORT}/healthcheck 2>&1 | \ + http://localhost:"${MONASCA_CONTAINER_LOG_API_PORT}"/healthcheck 2>&1 | \ awk ' BEGIN {status_code="0"; body=""; output=""} $1 ~ /^HTTP\// {status_line=$0; status_code=$2} diff --git a/monasca-log-api/start.sh b/monasca-log-api/start.sh index bbd28e170..b10a3f1ec 100755 --- a/monasca-log-api/start.sh +++ b/monasca-log-api/start.sh @@ -13,7 +13,7 @@ if [ -n "$KAFKA_WAIT_FOR_TOPICS" ]; then echo "Waiting for Kafka topics to become available..." success="false" - for i in $(seq $KAFKA_WAIT_RETRIES); do + for i in $(seq "$KAFKA_WAIT_RETRIES"); do python /kafka_wait_for_topics.py if [ $? -eq 0 ]; then success="true" diff --git a/monasca-log-metrics/start.sh b/monasca-log-metrics/start.sh index cc157528c..e5f8cd13f 100755 --- a/monasca-log-metrics/start.sh +++ b/monasca-log-metrics/start.sh @@ -7,7 +7,7 @@ if [ -n "$KAFKA_WAIT_FOR_TOPICS" ]; then echo "Waiting for Kafka topics to become available..." success="false" - for i in $(seq $KAFKA_WAIT_RETRIES); do + for i in $(seq "$KAFKA_WAIT_RETRIES"); do python /kafka_wait_for_topics.py if [ $? -eq 0 ]; then success="true" From e78d913096e81edb8f8bfa7aeda172a3689f1a32 Mon Sep 17 00:00:00 2001 From: Dobroslaw Zybort Date: Mon, 11 Sep 2017 11:33:13 +0200 Subject: [PATCH 2/2] Fix some flake8 warns in monasca, part1 --- monasca-alarms/monasca_alarm_definition.py | 65 ++++++++++++-------- monasca-alarms/template.py | 13 ++-- monasca-api-python/kafka_wait_for_topics.py | 1 + monasca-api-python/template.py | 6 +- monasca-forwarder/kafka_wait_for_topics.py | 1 + monasca-forwarder/template.py | 12 ++-- monasca-log-api/kafka_wait_for_topics.py | 1 + monasca-log-api/template.py | 6 +- monasca-log-metrics/kafka_wait_for_topics.py | 1 + monasca-log-metrics/template.py | 6 +- 10 files changed, 71 insertions(+), 41 deletions(-) diff --git a/monasca-alarms/monasca_alarm_definition.py b/monasca-alarms/monasca_alarm_definition.py index 23f239ed0..0b8c08be5 100644 --- a/monasca-alarms/monasca_alarm_definition.py +++ b/monasca-alarms/monasca_alarm_definition.py @@ -1,5 +1,6 @@ #!/usr/bin/python -# +# coding=utf-8 + # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -14,10 +15,13 @@ # License for the specific language governing permissions and limitations # under the License. # + from __future__ import print_function ''' -Loads Notifications and Alarm Definitions into Monasca. These are configured via a yaml file which contains two -sections: notifications and alarm_definitions. Within the sections are the notifications and alarm definitions to be +Loads Notifications and Alarm Definitions into Monasca. These are configured +via a yaml file which contains two sections: +notifications and alarm_definitions. +Within the sections are the notifications and alarm definitions to be created, updated or deleted. For the possible arguments, see the argument parser definition. @@ -152,8 +156,9 @@ else: monascaclient_found = True + class MonascaLoadDefinitions(object): - """ Loads Notifications and Alarm Definitions into Monasca + """Loads Notifications and Alarm Definitions into Monasca """ def __init__(self, args): self._args = args @@ -162,13 +167,13 @@ def __init__(self, args): self._verbose = args['verbose'] def _keystone_auth(self): - """ Authenticate to Keystone and set self._token and self._api_url + """Authenticate to Keystone and set self._token and self._api_url """ if not self._args['keystone_token']: try: ks = ksclient.KSClient(**self._args) - except Exception, e: - raise Exception('Keystone KSClient Exception: %s' % e) + except Exception as err: + raise Exception('Keystone KSClient Exception: {}'.format(err)) self._token = ks.token if not self._args['monasca_api_url']: @@ -177,7 +182,8 @@ def _keystone_auth(self): self._api_url = self._args['monasca_api_url'] else: if self._args['monasca_api_url'] is None: - raise Exception('Error: When specifying keystone_token, monasca_api_url is required') + raise Exception('Error: When specifying keystone_token, ' + 'monasca_api_url is required') self._token = self._args['keystone_token'] self._api_url = self._args['monasca_api_url'] @@ -195,7 +201,8 @@ def run(self, data_file): with open(data_file) as f: yaml_text = f.read() except IOError: - raise Exception('Unable to open yaml alarm definitions: %s' % data_file) + raise Exception('Unable to open yaml alarm definitions: {}' + .format(data_file)) yaml_data = yaml.safe_load(yaml_text) @@ -203,17 +210,21 @@ def run(self, data_file): self._monasca = client.Client(self._args['api_version'], self._api_url, token=self._token) self._print_message('Using Monasca at {}'.format(self._api_url)) if 'notifications' not in yaml_data: - raise Exception('No notifications section in %s' % data_file) + raise Exception('No notifications section in {}'.format(data_file)) (processed, changed, notification_ids) = self._do_notifications(yaml_data['notifications']) - self._print_message('%d Notifications Processed %d Notifications Changed' % (processed, changed)) + self._print_message( + '{:d} Notifications Processed {:d} Notifications Changed' + .format(processed, changed)) if 'alarm_definitions' not in yaml_data: - raise Exception('No alarm_definitions section in %s' % data_file) + raise Exception('No alarm_definitions section in {}' + .format(data_file)) (processed, changed) = self.do_alarm_definitions(yaml_data['alarm_definitions'], notification_ids) - self._print_message('%d Alarm Definitions Processed %d Alarm Definitions Changed' % (processed, changed)) - + self._print_message( + '{:d} Alarm Definitions Processed {:d} Alarm Definitions Changed' + .format(processed, changed)) def _do_notifications(self, notifications): processed = 0 @@ -321,13 +332,13 @@ def _process_alarm_definition(self, definition, notification_ids): else: raise Exception(str(resp.status_code) + resp.text) else: # Only other option is state=present - + alarm_actions = self._map_notifications(definition.get('alarm_actions', []), notification_ids) ok_actions = self._map_notifications(definition.get('ok_actions', []), notification_ids) undetermined_actions = self._map_notifications(definition.get('undetermined_actions', []), notification_ids) def_kwargs = {'name': name, 'description': definition.get('description', ''), 'expression': expression, 'match_by': definition.get('match_by', []), 'severity': definition.get('severity', 'LOW').upper(), - 'alarm_actions': alarm_actions,'ok_actions': ok_actions, + 'alarm_actions': alarm_actions, 'ok_actions': ok_actions, 'undetermined_actions': undetermined_actions} if name in definitions.keys(): @@ -359,10 +370,11 @@ def _process_alarm_definition(self, definition, notification_ids): else: raise Exception(body) + def _get_parser(): parser = argparse.ArgumentParser( prog='monasca_alarm_definition', - #description=__doc__.strip(), + # description=__doc__.strip(), add_help=False, # formatter_class=HelpFormatter, formatter_class=lambda prog: argparse.HelpFormatter( @@ -514,18 +526,20 @@ def _get_parser(): return parser + def _env(*vars, **kwargs): """Search for the first defined of possibly many env vars Returns the first environment variable defined in vars, or returns the default defined in kwargs. """ - for v in vars: - value = os.environ.get(v) + for var in vars: + value = os.environ.get(var) if value: return value return kwargs.get('default', '') + def main(args=None): if args is None: args = sys.argv[1:] @@ -539,15 +553,15 @@ def main(args=None): if not args.os_username and not args.os_auth_token: raise Exception("You must provide a username via" - " either --os-username or env[OS_USERNAME]" - " or a token via --os-auth-token or" - " env[OS_AUTH_TOKEN]") + " either --os-username or env[OS_USERNAME]" + " or a token via --os-auth-token or" + " env[OS_AUTH_TOKEN]") if not args.os_password and not args.os_auth_token: raise Exception("You must provide a password via" - " either --os-password or env[OS_PASSWORD]" - " or a token via --os-auth-token or" - " env[OS_AUTH_TOKEN]") + " either --os-password or env[OS_PASSWORD]" + " or a token via --os-auth-token or" + " env[OS_AUTH_TOKEN]") kwargs = { 'username': args.os_username, @@ -578,5 +592,6 @@ def main(args=None): definition.run(args.definitions_file) + if __name__ == "__main__": main() diff --git a/monasca-alarms/template.py b/monasca-alarms/template.py index 67a2fde62..085930a9c 100755 --- a/monasca-alarms/template.py +++ b/monasca-alarms/template.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # @@ -13,6 +14,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. + from __future__ import print_function import os @@ -30,11 +32,12 @@ def main(): out_path = sys.argv[2] with open(in_path, 'r') as in_file, open(out_path, 'w') as out_file: - t = Template(in_file.read(), - keep_trailing_newline=True, - lstrip_blocks=True, - trim_blocks=True) - out_file.write(t.render(os.environ)) + tmle = Template(in_file.read(), + keep_trailing_newline=True, + lstrip_blocks=True, + trim_blocks=True) + out_file.write(tmle.render(os.environ)) + if __name__ == '__main__': main() diff --git a/monasca-api-python/kafka_wait_for_topics.py b/monasca-api-python/kafka_wait_for_topics.py index 7d6a7942a..e5c5b1c6b 100644 --- a/monasca-api-python/kafka_wait_for_topics.py +++ b/monasca-api-python/kafka_wait_for_topics.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # diff --git a/monasca-api-python/template.py b/monasca-api-python/template.py index fddbdd086..851f2a738 100755 --- a/monasca-api-python/template.py +++ b/monasca-api-python/template.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # @@ -30,8 +31,9 @@ def main(): out_path = sys.argv[2] with open(in_path, 'r') as in_file, open(out_path, 'w') as out_file: - t = Template(in_file.read()) - out_file.write(t.render(os.environ)) + tmle = Template(in_file.read()) + out_file.write(tmle.render(os.environ)) + if __name__ == '__main__': main() diff --git a/monasca-forwarder/kafka_wait_for_topics.py b/monasca-forwarder/kafka_wait_for_topics.py index 7d6a7942a..e5c5b1c6b 100644 --- a/monasca-forwarder/kafka_wait_for_topics.py +++ b/monasca-forwarder/kafka_wait_for_topics.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # diff --git a/monasca-forwarder/template.py b/monasca-forwarder/template.py index 67a2fde62..b4991cee0 100755 --- a/monasca-forwarder/template.py +++ b/monasca-forwarder/template.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # @@ -30,11 +31,12 @@ def main(): out_path = sys.argv[2] with open(in_path, 'r') as in_file, open(out_path, 'w') as out_file: - t = Template(in_file.read(), - keep_trailing_newline=True, - lstrip_blocks=True, - trim_blocks=True) - out_file.write(t.render(os.environ)) + tmle = Template(in_file.read(), + keep_trailing_newline=True, + lstrip_blocks=True, + trim_blocks=True) + out_file.write(tmle.render(os.environ)) + if __name__ == '__main__': main() diff --git a/monasca-log-api/kafka_wait_for_topics.py b/monasca-log-api/kafka_wait_for_topics.py index 7d6a7942a..e5c5b1c6b 100644 --- a/monasca-log-api/kafka_wait_for_topics.py +++ b/monasca-log-api/kafka_wait_for_topics.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # diff --git a/monasca-log-api/template.py b/monasca-log-api/template.py index e83ec2fcf..3f96b73a0 100755 --- a/monasca-log-api/template.py +++ b/monasca-log-api/template.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # @@ -31,8 +32,9 @@ def main(): out_path = sys.argv[2] with open(in_path, 'r') as in_file, open(out_path, 'w') as out_file: - t = Template(in_file.read()) - out_file.write(t.render(os.environ)) + tmle = Template(in_file.read()) + out_file.write(tmle.render(os.environ)) + if __name__ == '__main__': main() diff --git a/monasca-log-metrics/kafka_wait_for_topics.py b/monasca-log-metrics/kafka_wait_for_topics.py index 7d6a7942a..e5c5b1c6b 100644 --- a/monasca-log-metrics/kafka_wait_for_topics.py +++ b/monasca-log-metrics/kafka_wait_for_topics.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # diff --git a/monasca-log-metrics/template.py b/monasca-log-metrics/template.py index e83ec2fcf..3f96b73a0 100755 --- a/monasca-log-metrics/template.py +++ b/monasca-log-metrics/template.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding=utf-8 # (C) Copyright 2017 Hewlett Packard Enterprise Development LP # @@ -31,8 +32,9 @@ def main(): out_path = sys.argv[2] with open(in_path, 'r') as in_file, open(out_path, 'w') as out_file: - t = Template(in_file.read()) - out_file.write(t.render(os.environ)) + tmle = Template(in_file.read()) + out_file.write(tmle.render(os.environ)) + if __name__ == '__main__': main()