)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":11,"context_line":"default config file can be used to pass"},{"line_number":12,"context_line":"the connection arguments.  When host is"},{"line_number":13,"context_line":"localhost, unix_socket is needed by the"},{"line_number":14,"context_line":"pymysql connect call.  Host cannot be"},{"line_number":15,"context_line":"localhost when using SSL options for"},{"line_number":16,"context_line":"the connection."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9abb7d3a_151db40f","line":14,"range":{"start_line":14,"start_character":28,"end_line":14,"end_character":34},"updated":"2016-05-27 06:19:01.000000000","message":"do you check for this in the detection plugin?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"}],"docs/Plugins.md":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"\tuser: root"},{"line_number":1031,"context_line":"\tpassword: pass"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"Values under instance can be passed in as arguments."},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"```"},{"line_number":1036,"context_line":"init_config:"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"9abb7d3a_f56d90cd","line":1033,"range":{"start_line":1033,"start_character":7,"end_line":1033,"end_character":12},"updated":"2016-05-27 06:19:01.000000000","message":"should we say instance variables can be passed via command line?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"\tuser: root"},{"line_number":1031,"context_line":"\tpassword: pass"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"Values under instance can be passed in as arguments."},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"```"},{"line_number":1036,"context_line":"init_config:"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"9abb7d3a_c0e4f53c","line":1033,"range":{"start_line":1033,"start_character":7,"end_line":1033,"end_character":12},"in_reply_to":"9abb7d3a_f56d90cd","updated":"2016-05-27 15:04:55.000000000","message":"yes good idea","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"  sock: null"},{"line_number":1045,"context_line":"  ssl_ca: null"},{"line_number":1046,"context_line":"  ssl_cert: null"},{"line_number":1047,"context_line":"  ssl_key: null"},{"line_number":1048,"context_line":"  user: root"},{"line_number":1049,"context_line":"```"},{"line_number":1050,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"9abb7d3a_1565b4e0","line":1047,"range":{"start_line":1047,"start_character":11,"end_line":1047,"end_character":15},"updated":"2016-05-27 06:19:01.000000000","message":"instead of null should we not have it here and then another instance with an example of it being set so it shows examples of both?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"  sock: null"},{"line_number":1045,"context_line":"  ssl_ca: null"},{"line_number":1046,"context_line":"  ssl_cert: null"},{"line_number":1047,"context_line":"  ssl_key: null"},{"line_number":1048,"context_line":"  user: root"},{"line_number":1049,"context_line":"```"},{"line_number":1050,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"9abb7d3a_40cf65b0","line":1047,"range":{"start_line":1047,"start_character":11,"end_line":1047,"end_character":15},"in_reply_to":"9abb7d3a_1565b4e0","updated":"2016-05-27 15:04:55.000000000","message":"ok","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"}],"monasca_agent/collector/checks_d/mysql.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import os"},{"line_number":4,"context_line":"import re"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_75b9a02e","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":28},"updated":"2016-05-27 06:19:01.000000000","message":"copyright","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        db \u003d self._connect(host, port, mysql_sock, user, password, defaults_file)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":87,"context_line":"        self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_750360b9","line":85,"range":{"start_line":85,"start_character":27,"end_line":85,"end_character":28},"updated":"2016-05-27 06:19:01.000000000","message":"what if connection is not ssl what is the behavior here?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        db \u003d self._connect(host, port, mysql_sock, user, password, defaults_file)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":87,"context_line":"        self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_00639db2","line":85,"range":{"start_line":85,"start_character":27,"end_line":85,"end_character":28},"in_reply_to":"9abb7d3a_750360b9","updated":"2016-05-27 15:04:55.000000000","message":"It prints an empty string.  I could check if an ssl option is set before checking for the variable.  If ssl is set it returns the cipher type.","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"646fcf279dd20e5bedb8c294ff4a18e7e7fe1694","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        if len(self.ssl_options) \u003e 0:"},{"line_number":87,"context_line":"            ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":88,"context_line":"            self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Metric collection"},{"line_number":91,"context_line":"        self._collect_metrics(host, db, dimensions, options)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_4b74a19b","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":62},"updated":"2016-05-27 16:47:44.000000000","message":"so you do not do anything with the ssl_cipher besides just log it? Should we put in the method then? The logging. And call it log_ssl_cipher. Also what is the value of this since all we are doing it logging it","commit_id":"c9eedfb74668d3d512f49580f2bdb55be3bffbeb"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"1289d4953e3d7d966ae175bfe276b2f760eaf58f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        if len(self.ssl_options) \u003e 0:"},{"line_number":87,"context_line":"            ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":88,"context_line":"            self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Metric collection"},{"line_number":91,"context_line":"        self._collect_metrics(host, db, dimensions, options)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_8b44c974","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":62},"in_reply_to":"9abb7d3a_0bf3b99f","updated":"2016-05-27 17:01:06.000000000","message":"If SSL is really working it will print the ssl_cipher (DHE-RSA-AES256-SHA).  If SSL didn\u0027t work it will print empty string for the ssl_cipher.  Are you saying you would rather see something else, like true false and not show the ssl_cipher value?","commit_id":"c9eedfb74668d3d512f49580f2bdb55be3bffbeb"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"aa6ddbf90d2471836aed62bd07152348d3c49c3d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        if len(self.ssl_options) \u003e 0:"},{"line_number":87,"context_line":"            ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":88,"context_line":"            self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Metric collection"},{"line_number":91,"context_line":"        self._collect_metrics(host, db, dimensions, options)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_0bf3b99f","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":62},"in_reply_to":"9abb7d3a_2bbf9dd1","updated":"2016-05-27 16:55:08.000000000","message":"so what happens in the case the ssl connection does not work what is the behavior of this plugin?","commit_id":"c9eedfb74668d3d512f49580f2bdb55be3bffbeb"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"0b282279dd7099a830aa8e22d0155e89effc7eef","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # verify connection is SSL"},{"line_number":86,"context_line":"        if len(self.ssl_options) \u003e 0:"},{"line_number":87,"context_line":"            ssl_cipher \u003d self._get_ssl_cipher(db)"},{"line_number":88,"context_line":"            self.log.debug(\"ssl_cipher \u003d {}\".format(ssl_cipher))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Metric collection"},{"line_number":91,"context_line":"        self._collect_metrics(host, db, dimensions, options)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_2bbf9dd1","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":62},"in_reply_to":"9abb7d3a_4b74a19b","updated":"2016-05-27 16:51:15.000000000","message":"I needed this to tell if the ssl connection really worked from the python connect call.  I think this is very clear.  the _get_ssl_cipher is doing the db query.  Then we log.  Do we really need another method to wrap 2 lines?","commit_id":"c9eedfb74668d3d512f49580f2bdb55be3bffbeb"}],"monasca_setup/detection/plugins/mysql.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        [client]"},{"line_number":29,"context_line":"            user \u003d root"},{"line_number":30,"context_line":"            password \u003d yourpassword"},{"line_number":31,"context_line":"            host"},{"line_number":32,"context_line":"            socket"},{"line_number":33,"context_line":"            ssl_ca \u003d \u0027/etc/ssl/certs/ca-certificates.crt\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_75f1a0cd","line":31,"range":{"start_line":31,"start_character":12,"end_line":31,"end_character":16},"updated":"2016-05-27 06:19:01.000000000","message":"did you mean to not have equals on this and the next line?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        [client]"},{"line_number":29,"context_line":"            user \u003d root"},{"line_number":30,"context_line":"            password \u003d yourpassword"},{"line_number":31,"context_line":"            host"},{"line_number":32,"context_line":"            socket"},{"line_number":33,"context_line":"            ssl_ca \u003d \u0027/etc/ssl/certs/ca-certificates.crt\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_e0adb989","line":31,"range":{"start_line":31,"start_character":12,"end_line":31,"end_character":16},"in_reply_to":"9abb7d3a_75f1a0cd","updated":"2016-05-27 15:04:55.000000000","message":"will look at the .my.cnf (when my system comes up and use the exact syntax.","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        \"\"\"Read the configuration setting member variables as appropriate."},{"line_number":72,"context_line":"        :param config_file: The filename of the configuration to read and parse"},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        # Read mysql_conf to extract the needed variables."},{"line_number":75,"context_line":"        log.info(\"\\tUsing client credentials from {}\".format(config_file))"},{"line_number":76,"context_line":"        client_section \u003d False"},{"line_number":77,"context_line":"        self.user \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_f50e30e4","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":25},"updated":"2016-05-27 06:19:01.000000000","message":"seems like a redundant comment","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        \"\"\"Read the configuration setting member variables as appropriate."},{"line_number":72,"context_line":"        :param config_file: The filename of the configuration to read and parse"},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        # Read mysql_conf to extract the needed variables."},{"line_number":75,"context_line":"        log.info(\"\\tUsing client credentials from {}\".format(config_file))"},{"line_number":76,"context_line":"        client_section \u003d False"},{"line_number":77,"context_line":"        self.user \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_00bb9dc5","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":25},"in_reply_to":"9abb7d3a_f50e30e4","updated":"2016-05-27 15:04:55.000000000","message":"will remove","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                  \u0027ssl_key\u0027: self.ssl_key, \u0027ssl_cert\u0027: self.ssl_cert}]}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        except pymysql.MySQLError as e:"},{"line_number":132,"context_line":"            exception_msg \u003d \u0027Could not connect to mysql. {}\u0027.format(e)"},{"line_number":133,"context_line":"            log.exception(exception_msg)"},{"line_number":134,"context_line":"            raise Exception(exception_msg)"},{"line_number":135,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_5569fc8a","line":132,"range":{"start_line":132,"start_character":55,"end_line":132,"end_character":56},"updated":"2016-05-27 06:19:01.000000000","message":"maybe add in the log message not configuring the mysql check plugin. What do you think?","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                  \u0027ssl_key\u0027: self.ssl_key, \u0027ssl_cert\u0027: self.ssl_cert}]}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        except pymysql.MySQLError as e:"},{"line_number":132,"context_line":"            exception_msg \u003d \u0027Could not connect to mysql. {}\u0027.format(e)"},{"line_number":133,"context_line":"            log.exception(exception_msg)"},{"line_number":134,"context_line":"            raise Exception(exception_msg)"},{"line_number":135,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_c0d87520","line":132,"range":{"start_line":132,"start_character":55,"end_line":132,"end_character":56},"in_reply_to":"9abb7d3a_5569fc8a","updated":"2016-05-27 15:04:55.000000000","message":"I do catch the import error - see the try above.  I actually tested it out, the exception tells  you cannot import pymysql - since I improved exception output:)","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"574f5005959e6e3e6156166a761168b888b4c419","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return config"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def dependencies_installed(self):"},{"line_number":143,"context_line":"        try:"},{"line_number":144,"context_line":"            import pymysql"},{"line_number":145,"context_line":"        except ImportError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_156f7493","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":30},"updated":"2016-05-27 06:19:01.000000000","message":"you do not call this anymore or catch the import error above.","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"},{"author":{"_account_id":12133,"name":"Cindy O\u0027Neill","email":"cindy.o-neill@hpe.com","username":"oneilcin"},"change_message_id":"48f1a4d990d44910bfbad4d39b15a2ad73272257","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return config"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def dependencies_installed(self):"},{"line_number":143,"context_line":"        try:"},{"line_number":144,"context_line":"            import pymysql"},{"line_number":145,"context_line":"        except ImportError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_401125ac","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":30},"in_reply_to":"9abb7d3a_156f7493","updated":"2016-05-27 15:04:55.000000000","message":"We could do this call earlier in the code, but the exception is aleady caught, so just an extra check.","commit_id":"ac4f81eeee43c8cd697d71311aee0562c877d661"}]}
