)]}'
{"trove/tests/__init__.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"566e88da3178a37e1ae7d88799ad27d911a18068","unresolved":false,"context_lines":[{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + (\u0027SSH_KEY_FILE\u0027 in os.environ and \u0027 -i \u0027+os.environ.get(\u0027SSH_KEY_FILE\u0027) or \"\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_8b5ef5e7","line":8,"updated":"2015-06-29 18:30:59.000000000","message":"I personally find this expression a bit confusing (it seems like three conditions rather than string concatenation) I think it may be better to use the following syntax instead:\n\n\u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\"","commit_id":"709d3b03cad223c4e01e5d994f1a2a8b4913553b"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"79bafe5317b62a25878e68770f4878fd9cb15098","unresolved":false,"context_lines":[{"line_number":4,"context_line":"PRE_INSTANCES \u003d \"dbaas.api.pre_instances\""},{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_46b53fcb","line":7,"updated":"2015-06-29 20:09:27.000000000","message":"Forgot to mention as well - the community frowns on using \u0027\\\u0027 to continue a line - the preferred method is using parenthesis.","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":14823,"name":"Pete MacKinnon","email":"pmackinn@redhat.com","username":"pmackinn"},"change_message_id":"3e8dd9efd3938148cd2c129d491e1cca08826422","unresolved":false,"context_lines":[{"line_number":4,"context_line":"PRE_INSTANCES \u003d \"dbaas.api.pre_instances\""},{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_c62cefad","line":7,"in_reply_to":"ba3cc151_46b53fcb","updated":"2015-07-06 18:48:13.000000000","message":"OK, there\u0027s other line continuations in the code but will stipulate.","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"780e87dd1d6bbe6f691d98b41ce2da4a95f8b963","unresolved":false,"context_lines":[{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_26827b01","line":8,"updated":"2015-06-29 20:07:50.000000000","message":"This will now fail if SSH_KEY_FILE is not present - you need brackets around the whole statement (starting with \u0027 -i \u0027).  It\u0027ll also fail pep8. ;)","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":14823,"name":"Pete MacKinnon","email":"pmackinn@redhat.com","username":"pmackinn"},"change_message_id":"3e8dd9efd3938148cd2c129d491e1cca08826422","unresolved":false,"context_lines":[{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_4649bf8a","line":8,"in_reply_to":"ba3cc151_26827b01","updated":"2015-07-06 18:48:13.000000000","message":"Strange...passed my pep8 check.","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1ecc4521e4d2002daa28d4671de4afac03f0db55","unresolved":false,"context_lines":[{"line_number":4,"context_line":"PRE_INSTANCES \u003d \"dbaas.api.pre_instances\""},{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_f95bd452","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":43},"updated":"2015-06-29 20:40:39.000000000","message":"How about this:\n\n  KEY_FILE \u003d os.environ.get(\u0027TROVE_TEST_SSH_KEY_FILE\u0027)\n  SSH_CMD \u003d (\u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \u0027\n             \u0027-o LogLevel\u003dquiet \u0027 + (\u0027 -i \u0027 + KEY_FILE if KEY_FILE else \u0027\u0027))\n\nNote that I changed the name of the env var - I\u0027m thinking that SSH_KEY_FILE is a little generic ...","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"24db6d96e2e2b287c68358935d06084d3fef9f8e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"PRE_INSTANCES \u003d \"dbaas.api.pre_instances\""},{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d \u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet \u0027 \\"},{"line_number":8,"context_line":"    + \u0027 -i \u0027 + os.environ.get(\u0027SSH_KEY_FILE\u0027) \\"},{"line_number":9,"context_line":"    if \u0027SSH_KEY_FILE\u0027 in os.environ else \"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_5ce98e19","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":43},"in_reply_to":"ba3cc151_f95bd452","updated":"2015-06-29 20:42:20.000000000","message":"Just noticed there\u0027s a double space now - the last line should be:\n\n               \u0027-o LogLevel\u003dquiet\u0027 + (\u0027 -i \u0027 + KEY_FILE if KEY_FILE else \u0027\u0027))","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"71e84603cd6b7159dbd6a192fe9fc90420f8ede5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"PRE_INSTANCES \u003d \"dbaas.api.pre_instances\""},{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d (\u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \u0027"},{"line_number":8,"context_line":"           + (\u0027-o LogLevel\u003dquiet -i \u0027"},{"line_number":9,"context_line":"              + os.environ.get(\u0027TROVE_TEST_SSH_KEY_FILE\u0027)"},{"line_number":10,"context_line":"              if \u0027TROVE_TEST_SSH_KEY_FILE\u0027 in os.environ else \"\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_e491c753","line":10,"range":{"start_line":7,"start_character":0,"end_line":10,"end_character":66},"updated":"2015-06-30 14:40:14.000000000","message":"I noticed that \u0027-o LogLevel\u003dquiet\u0027 is only added if there\u0027s a key file.  Is that what you wanted?\n\n  ubuntu:~/work\u003e python test_string_concat.py \n  ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \n\n  ubuntu:~/work\u003e TROVE_TEST_SSH_KEY_FILE\u003dmyfile.pem python test_string_concat.py \n  ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno -o LogLevel\u003dquiet -i myfile.pem","commit_id":"ae2d9ecf675b57ce8a487bb77ed094b3e42d1e2d"},{"author":{"_account_id":14823,"name":"Pete MacKinnon","email":"pmackinn@redhat.com","username":"pmackinn"},"change_message_id":"b71bb7ccc7c44e20183d776c23f4a419dea21892","unresolved":false,"context_lines":[{"line_number":7,"context_line":"SSH_CMD \u003d (\u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \u0027"},{"line_number":8,"context_line":"           + (\u0027-o LogLevel\u003dquiet -i \u0027"},{"line_number":9,"context_line":"              + os.environ.get(\u0027TROVE_TEST_SSH_KEY_FILE\u0027)"},{"line_number":10,"context_line":"              if \u0027TROVE_TEST_SSH_KEY_FILE\u0027 in os.environ else \"\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_844f9bbc","line":10,"in_reply_to":"ba3cc151_e491c753","updated":"2015-07-06 16:46:22.000000000","message":"I think it\u0027s fine since it maintains the previous function. I added that because I was a little paranoid about any warnings coming back and messing with stdout.","commit_id":"ae2d9ecf675b57ce8a487bb77ed094b3e42d1e2d"}],"trove/tests/util/server_connection.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1ecc4521e4d2002daa28d4671de4afac03f0db55","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.dbaas_admin \u003d util.create_dbaas_client(self.user)"},{"line_number":34,"context_line":"        self.instance \u003d self.dbaas_admin.management.show(self.instance_id)"},{"line_number":35,"context_line":"        self.ip_address \u003d self.instance.ip[0]"},{"line_number":36,"context_line":"        SSH_USER \u003d os.environ.get(\u0027SSH_USER\u0027)"},{"line_number":37,"context_line":"        if SSH_USER and \u0027@\u0027 not in self.ip_address:"},{"line_number":38,"context_line":"            self.ip_address \u003d SSH_USER + \u0027@\u0027 + self.ip_address"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_1c09c62c","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":43},"updated":"2015-06-29 20:40:39.000000000","message":"How about TROVE_TEST_SSH_USER?  SSH_USER is a bit generic.\n\n   SSH_USER \u003d os.environ.get(\u0027TROVE_TEST_SSH_USER\u0027)","commit_id":"adad68a861324e4e7424105201634b5f3e9eb2b1"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"6c544410607c05de51d51fbe042d3b647fbd26a8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from trove import tests"},{"line_number":18,"context_line":"from trove.tests import util"},{"line_number":19,"context_line":"from trove.tests.util.users import Requirements"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_ae2652b8","line":16,"updated":"2015-06-30 06:29:41.000000000","message":"os being a standard library should be a different import group.","commit_id":"378f0c7e6426c393b81ab0895d3b606fe3092e55"}]}
