)]}'
{"etc/trove/trove-guestagent.conf.sample":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"dae2cfd6f5d7d07a395efe4d4db1fe098d36acc0","unresolved":false,"context_lines":[{"line_number":87,"context_line":"backup_chunk_size \u003d 65536"},{"line_number":88,"context_line":"backup_segment_max_size \u003d 2147483648"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[VERTICA]"},{"line_number":91,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":92,"context_line":"ignore_users \u003d os_admin"},{"line_number":93,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"7adec928_6a85ab58","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":8},"updated":"2014-05-19 15:12:49.000000000","message":"should be lowercase","commit_id":"9fda734a3ae97e2d78325eb829aa77d238fbe173"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"dae2cfd6f5d7d07a395efe4d4db1fe098d36acc0","unresolved":false,"context_lines":[{"line_number":91,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":92,"context_line":"ignore_users \u003d os_admin"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"[MYSQL]"},{"line_number":95,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":96,"context_line":"ignore_users \u003d os_admin"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"7adec928_aa7b3379","line":94,"range":{"start_line":94,"start_character":1,"end_line":94,"end_character":6},"updated":"2014-05-19 15:12:49.000000000","message":"should be lowercase","commit_id":"9fda734a3ae97e2d78325eb829aa77d238fbe173"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"dae2cfd6f5d7d07a395efe4d4db1fe098d36acc0","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"[MYSQL]"},{"line_number":95,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":96,"context_line":"ignore_users \u003d os_admin"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"7adec928_0adb477c","line":96,"range":{"start_line":96,"start_character":15,"end_line":96,"end_character":23},"updated":"2014-05-19 15:12:49.000000000","message":"os_admin, root","commit_id":"9fda734a3ae97e2d78325eb829aa77d238fbe173"}],"trove/common/cfg.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":334,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":335,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":336,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":337,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":338,"context_line":"]"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"# Cassandra"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_82638119","line":337,"updated":"2014-05-08 10:01:50.000000000","message":"Redis/Cassandra/MongoDB has no user/schemes operations, please re-write load if this attribute for different datastores, take a look how it\u0027s being done for root_on_create","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":334,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":335,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":336,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":337,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":338,"context_line":"]"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"# Cassandra"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c2bae6e0","line":337,"in_reply_to":"7adec928_82638119","updated":"2014-05-08 11:54:03.000000000","message":"ignore_users is read many times. Implementing like root_on_create will lead to code replication. Better is to assign it here in cfg.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":357,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":358,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d600,"},{"line_number":359,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":360,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":361,"context_line":"]"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"#Couchbase"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_62a75550","line":360,"updated":"2014-05-08 10:01:50.000000000","message":"Redis/Cassandra/MongoDB has no user/schemes operations, please re-write load if this attribute for different datastores, take a look how it\u0027s being done for root_on_create","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":357,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":358,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d600,"},{"line_number":359,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":360,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":361,"context_line":"]"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"#Couchbase"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a991fd53","line":360,"in_reply_to":"7adec928_62a75550","updated":"2014-05-13 11:55:50.000000000","message":"ignore_users is read many times. Implementing like root_on_create will lead to code replication. Better is to assign it here in cfg.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":382,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":383,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":384,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":385,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":386,"context_line":"]"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# MongoDB"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2687df6","line":385,"updated":"2014-05-08 10:01:50.000000000","message":"Redis/Cassandra/MongoDB has no user/schemes operations, please re-write load if this attribute for different datastores, take a look how it\u0027s being done for root_on_create","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":382,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":383,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":384,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":385,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":386,"context_line":"]"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# MongoDB"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c9a009a2","line":385,"in_reply_to":"7adec928_a2687df6","updated":"2014-05-13 11:55:50.000000000","message":"ignore_users is read many times. Implementing like root_on_create will lead to code replication. Better is to assign it here in cfg.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":405,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":406,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":407,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":408,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":409,"context_line":"]"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"# Vertica"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c26d8906","line":408,"updated":"2014-05-08 10:01:50.000000000","message":"Redis/Cassandra/MongoDB has no user/schemes operations, please re-write load if this attribute for different datastores, take a look how it\u0027s being done for root_on_create","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":405,"context_line":"               \"volumes if volume support is enabled.\"),"},{"line_number":406,"context_line":"    cfg.IntOpt(\u0027usage_timeout\u0027, default\u003d450,"},{"line_number":407,"context_line":"               help\u003d\u0027Timeout to wait for a guest to become active.\u0027),"},{"line_number":408,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027]),"},{"line_number":409,"context_line":"]"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"# Vertica"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_098af11a","line":408,"in_reply_to":"7adec928_c26d8906","updated":"2014-05-13 11:55:50.000000000","message":"ignore_users is read many times. Implementing like root_on_create will lead to code replication. Better is to assign it here in cfg.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    \u0027vertica\u0027, title\u003d\u0027Vertica options\u0027,"},{"line_number":414,"context_line":"    help\u003d\"Oslo option group designed for Vertica datastore\")"},{"line_number":415,"context_line":"vertica_opts \u003d ["},{"line_number":416,"context_line":"    cfg.ListOpt(\u0027tcp_ports\u0027, default\u003d[\"5433\"],"},{"line_number":417,"context_line":"                help\u003d\u0027List of TCP ports and/or port ranges to open\u0027"},{"line_number":418,"context_line":"                     \u0027 in the security group (only applicable \u0027"},{"line_number":419,"context_line":"                     \u0027if trove_security_groups_support is True)\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_22ff0d36","line":416,"updated":"2014-05-08 10:01:50.000000000","message":"this ports are not enough\n\nhttps://community.vertica.com/vertica/topics/on_what_port_does_vertica_database_runs_is_it_5433_or_any_other_kindly_confirm","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    \u0027vertica\u0027, title\u003d\u0027Vertica options\u0027,"},{"line_number":414,"context_line":"    help\u003d\"Oslo option group designed for Vertica datastore\")"},{"line_number":415,"context_line":"vertica_opts \u003d ["},{"line_number":416,"context_line":"    cfg.ListOpt(\u0027tcp_ports\u0027, default\u003d[\"5433\"],"},{"line_number":417,"context_line":"                help\u003d\u0027List of TCP ports and/or port ranges to open\u0027"},{"line_number":418,"context_line":"                     \u0027 in the security group (only applicable \u0027"},{"line_number":419,"context_line":"                     \u0027if trove_security_groups_support is True)\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7860e835","line":416,"in_reply_to":"7adec928_22ff0d36","updated":"2014-05-08 11:54:03.000000000","message":"This is well tested and working fine. Can you please share some use cases?","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/common/extensions.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        ext_mgr \u003d extensions.ExtensionManager(CONF.api_extensions_path)"},{"line_number":103,"context_line":"        # Load the datastore specific extention."},{"line_number":104,"context_line":"        # From datastore config group option \"extension_route\"."},{"line_number":105,"context_line":"        MANAGER \u003d \u0027mysql\u0027 if not CONF.datastore_manager\\"},{"line_number":106,"context_line":"            else CONF.datastore_manager"},{"line_number":107,"context_line":"        try:"},{"line_number":108,"context_line":"            datastore_ext_mgr_path \u003d CONF.get(MANAGER).extension_route"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_261eadbb","line":105,"updated":"2014-05-07 12:53:58.000000000","message":"please use python lines formatting, braces () instead if \\","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        ext_mgr \u003d extensions.ExtensionManager(CONF.api_extensions_path)"},{"line_number":103,"context_line":"        # Load the datastore specific extention."},{"line_number":104,"context_line":"        # From datastore config group option \"extension_route\"."},{"line_number":105,"context_line":"        MANAGER \u003d \u0027mysql\u0027 if not CONF.datastore_manager\\"},{"line_number":106,"context_line":"            else CONF.datastore_manager"},{"line_number":107,"context_line":"        try:"},{"line_number":108,"context_line":"            datastore_ext_mgr_path \u003d CONF.get(MANAGER).extension_route"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_824d4175","line":105,"updated":"2014-05-08 10:01:50.000000000","message":"please use python lines formatting, brackets () instead if \\","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/mysql/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":"MANAGER \u003d \u0027mysql\u0027 if not CONF.datastore_manager else CONF.datastore_manager"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def persisted_models():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_627e75b0","line":32,"updated":"2014-05-08 10:01:50.000000000","message":"when extensions are being loaded trove-api and taskmanager doesn\u0027t know anything about datastor_manager, this config attribute belongs to trove-guestagent","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":"MANAGER \u003d \u0027mysql\u0027 if not CONF.datastore_manager else CONF.datastore_manager"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def persisted_models():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_d85f3c71","line":32,"in_reply_to":"7adec928_627e75b0","updated":"2014-05-08 11:54:03.000000000","message":"Refer following patch:\nhttps://review.openstack.org/#/c/89804/","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":"MANAGER \u003d \u0027mysql\u0027 if not CONF.datastore_manager else CONF.datastore_manager"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def persisted_models():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_09911147","line":32,"in_reply_to":"7adec928_d85f3c71","updated":"2014-05-13 11:55:50.000000000","message":"datastore_manager is being added in trove-taskmanager.conf in image creation process.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/__init__.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Globallogic Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_667b55f5","line":1,"updated":"2014-05-07 12:53:58.000000000","message":"file should be  empty","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Globallogic Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c2574901","line":1,"updated":"2014-05-08 10:01:50.000000000","message":"file should be empty","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/common.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from trove.common import exception"},{"line_number":17,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def populate_validated_databases(dbs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_693966a3","line":17,"updated":"2014-05-07 12:53:58.000000000","message":"please do not mix guestagent code and server side","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from trove.common import exception"},{"line_number":17,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def populate_validated_databases(dbs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e25c4528","line":17,"updated":"2014-05-08 10:01:50.000000000","message":"please do not mix guestagent code and server side","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from trove.common import exception"},{"line_number":17,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def populate_validated_databases(dbs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_09067186","line":17,"in_reply_to":"7adec928_e25c4528","updated":"2014-05-13 11:55:50.000000000","message":"vertica_models.py is not a guestagent code it is being used by guestagent as well as extension and similar to trove/guestagent/db/models.py.\n\nCheck https://github.com/openstack/trove/blob/master/trove/extensions/mysql/common.py#L16","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.common.remote import create_guest_client"},{"line_number":24,"context_line":"from trove.db import get_db_api"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.guestagent.datastore.vertica.service import VerticaAppStatus"},{"line_number":27,"context_line":"from trove.instance import models as base_models"},{"line_number":28,"context_line":"from trove.openstack.common import log as logging"},{"line_number":29,"context_line":"from trove.openstack.common.gettextutils import _"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_a93fee85","line":26,"updated":"2014-05-07 12:53:58.000000000","message":"please do not mix guest code and server side","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.common.remote import create_guest_client"},{"line_number":24,"context_line":"from trove.db import get_db_api"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.guestagent.datastore.vertica.service import VerticaAppStatus"},{"line_number":27,"context_line":"from trove.instance import models as base_models"},{"line_number":28,"context_line":"from trove.openstack.common import log as logging"},{"line_number":29,"context_line":"from trove.openstack.common.gettextutils import _"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_02413139","line":26,"updated":"2014-05-08 10:01:50.000000000","message":"please do not mix guest code and server side","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.common.remote import create_guest_client"},{"line_number":24,"context_line":"from trove.db import get_db_api"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.guestagent.datastore.vertica.service import VerticaAppStatus"},{"line_number":27,"context_line":"from trove.instance import models as base_models"},{"line_number":28,"context_line":"from trove.openstack.common import log as logging"},{"line_number":29,"context_line":"from trove.openstack.common.gettextutils import _"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_69d615c7","line":26,"in_reply_to":"7adec928_02413139","updated":"2014-05-13 11:55:50.000000000","message":"vertica_models.py is not a guestagent code it is being used by guestagent as well as extension and similar to trove/guestagent/db/models.py.\nhttps://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L25","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"MANAGER \u003d \u0027vertica\u0027 if not CONF.datastore_manager else CONF.datastore_manager"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def persisted_models():"},{"line_number":37,"context_line":"    return {\u0027root_enabled_history\u0027: RootHistory}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7d261abc","line":36,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L34-L35 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    return {\u0027root_enabled_history\u0027: RootHistory}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def load_and_verify(context, instance_id):"},{"line_number":41,"context_line":"    # Load InstanceServiceStatus to verify if its running"},{"line_number":42,"context_line":"    instance \u003d base_models.Instance.load(context, instance_id)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bd09822e","line":40,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L38-L43 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Root(object):"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @classmethod"},{"line_number":54,"context_line":"    def load(cls, context, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7dfffa01","line":51,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L177-L201","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return root_user"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class RootHistory(object):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    _auto_generated_attrs \u003d [\u0027id\u0027]"},{"line_number":77,"context_line":"    _data_fields \u003d [\u0027instance_id\u0027, \u0027user\u0027, \u0027created\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_8231c10d","line":74,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L204-L231 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        return history.save()"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def load_via_context(cls, context, instance_id):"},{"line_number":105,"context_line":"    \"\"\"Creates guest and fetches pagination arguments from the context.\"\"\""},{"line_number":106,"context_line":"    load_and_verify(context, instance_id)"},{"line_number":107,"context_line":"    limit \u003d int(context.limit or cls.DEFAULT_LIMIT)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_622cb5ac","line":104,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference\nhttps://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L234-L242 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                marker\u003dcontext.marker, include_marker\u003dFalse)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class Schema(object):"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    _data_fields \u003d [\u0027name\u0027, \u0027collate\u0027, \u0027character_set\u0027]"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e217e54f","line":115,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L278-L307 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        create_guest_client(context, instance_id).delete_database(schema)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class Schemas(object):"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    DEFAULT_LIMIT \u003d CONF.databases_page_size"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_2209cd31","line":146,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L309-L333 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        return model_schemas, next_marker"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class Users(object):"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    DEFAULT_LIMIT \u003d CONF.users_page_size"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fd394ad9","line":173,"updated":"2014-05-08 10:01:50.000000000","message":"What\u0027s the difference https://github.com/openstack/trove/blob/master/trove/extensions/mysql/models.py#L245-L275 ??","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/routes/vertica.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def get_updated(self):"},{"line_number":42,"context_line":"        return \"2011-01-22T13:25:27-06:00\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_resources(self):"},{"line_number":45,"context_line":"        resources \u003d []"},{"line_number":46,"context_line":"        resource \u003d extensions.ResourceExtension("},{"line_number":47,"context_line":"            \u0027databases\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7d4d3a72","line":44,"updated":"2014-05-08 10:01:50.000000000","message":"Same resources as for mysql extension, please refactor code and reduce code duplication.\n\nhttps://github.com/openstack/trove/blob/master/trove/extensions/routes/mysql.py#L42-L77","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def get_updated(self):"},{"line_number":42,"context_line":"        return \"2011-01-22T13:25:27-06:00\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_resources(self):"},{"line_number":45,"context_line":"        resources \u003d []"},{"line_number":46,"context_line":"        resource \u003d extensions.ResourceExtension("},{"line_number":47,"context_line":"            \u0027databases\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c9c9e979","line":44,"in_reply_to":"7adec928_7d4d3a72","updated":"2014-05-13 11:55:50.000000000","message":"Routes is not a part of package as u notice here is no _init_.py.. its just a directory path holder to load datastore specific route for extension.\nplease understand the extension code change for clarity","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/service.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.extensions.vertica.common import populate_users"},{"line_number":23,"context_line":"from trove.extensions.vertica import models"},{"line_number":24,"context_line":"from trove.extensions.vertica import views"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from trove.openstack.common.gettextutils import _"},{"line_number":28,"context_line":"import trove.common.apischema as apischema"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_8965cab6","line":25,"updated":"2014-05-07 12:53:58.000000000","message":"do not mix guest code and server-side","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from trove.openstack.common.gettextutils import _"},{"line_number":28,"context_line":"import trove.common.apischema as apischema"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_c95b52f4","line":28,"updated":"2014-05-07 12:53:58.000000000","message":"please sort imports","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Globallogic Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7d745a9c","line":1,"updated":"2014-05-08 10:01:50.000000000","message":"Too many code duplication\n\nhttps://github.com/openstack/trove/blob/master/trove/extensions/mysql/service.py","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.extensions.vertica.common import populate_users"},{"line_number":23,"context_line":"from trove.extensions.vertica import models"},{"line_number":24,"context_line":"from trove.extensions.vertica import views"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from trove.openstack.common.gettextutils import _"},{"line_number":28,"context_line":"import trove.common.apischema as apischema"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_424b3959","line":25,"updated":"2014-05-08 10:01:50.000000000","message":"do not mix guest code and server-side","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.extensions.vertica.common import populate_users"},{"line_number":23,"context_line":"from trove.extensions.vertica import models"},{"line_number":24,"context_line":"from trove.extensions.vertica import views"},{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from trove.openstack.common.gettextutils import _"},{"line_number":28,"context_line":"import trove.common.apischema as apischema"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_89036141","line":25,"in_reply_to":"7adec928_424b3959","updated":"2014-05-13 11:55:50.000000000","message":"vertica_models.py is not a guestagent code it is being used by guestagent as well as extension and similar to trove/guestagent/db/models.py.\nCheck https://github.com/openstack/trove/blob/master/trove/extensions/mysql/service.py#L27","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from trove.openstack.common.gettextutils import _"},{"line_number":28,"context_line":"import trove.common.apischema as apischema"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_223e2db9","line":28,"updated":"2014-05-08 10:01:50.000000000","message":"please sort imports","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/extensions/vertica/views.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Globallogic Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_3d62d2d8","line":1,"updated":"2014-05-08 10:01:50.000000000","message":"Too many code duplication\n\nhttps://github.com/openstack/trove/blob/master/trove/extensions/mysql/views.py","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/guestagent/datastore/vertica/__init__.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":22,"context_line":"DATABASE \u003d \u0027vertica\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def _get_actual_vertica_status(query\u003d\u0027UP\u0027):"},{"line_number":26,"context_line":"    \"\"\""},{"line_number":27,"context_line":"    Borrowed method get_db_actual_status to make it"},{"line_number":28,"context_line":"    more custom as per review suggestion to gain performance"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_296afe80","line":25,"updated":"2014-05-07 12:53:58.000000000","message":"please move this method to VerticaStatus","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            root_helper\u003d\"sudo\")"},{"line_number":42,"context_line":"        if out.strip() \u003d\u003d DATABASE:"},{"line_number":43,"context_line":"            if query.strip() \u003d\u003d \"UP\":"},{"line_number":44,"context_line":"                LOG.info(\"Service Status is Running.\")"},{"line_number":45,"context_line":"                return trove_instance.ServiceStatuses.RUNNING"},{"line_number":46,"context_line":"            if query.strip() \u003d\u003d \"DOWN\":"},{"line_number":47,"context_line":"                LOG.info(\"Service Status is SHUTDOWN.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_496742b7","line":44,"updated":"2014-05-07 12:53:58.000000000","message":"_()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                LOG.info(\"Service Status is Running.\")"},{"line_number":45,"context_line":"                return trove_instance.ServiceStatuses.RUNNING"},{"line_number":46,"context_line":"            if query.strip() \u003d\u003d \"DOWN\":"},{"line_number":47,"context_line":"                LOG.info(\"Service Status is SHUTDOWN.\")"},{"line_number":48,"context_line":"                return trove_instance.ServiceStatuses.SHUTDOWN"},{"line_number":49,"context_line":"    except exception.ProcessExecutionError:"},{"line_number":50,"context_line":"        LOG.error(\"Process execution \")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_6907a6ca","line":47,"updated":"2014-05-07 12:53:58.000000000","message":"_()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"DATABASE \u003d \u0027vertica\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def _get_actual_vertica_status(query\u003d\u0027UP\u0027):"},{"line_number":26,"context_line":"    \"\"\""},{"line_number":27,"context_line":"    Borrowed method get_db_actual_status to make it"},{"line_number":28,"context_line":"    more custom as per review suggestion to gain performance"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_42b9792d","line":25,"updated":"2014-05-08 10:01:50.000000000","message":"this is a duplicate of \nhttps://review.openstack.org/#/c/91761/2/trove/guestagent/datastore/vertica/service.py\n\n_get_actual_db_status(self):","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"775a1ed240b670e00b9e00026986a1c148fb4815","unresolved":false,"context_lines":[{"line_number":22,"context_line":"DATABASE \u003d \u0027vertica\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def _get_actual_vertica_status(query\u003d\u0027UP\u0027):"},{"line_number":26,"context_line":"    \"\"\""},{"line_number":27,"context_line":"    Borrowed method get_db_actual_status to make it"},{"line_number":28,"context_line":"    more custom as per review suggestion to gain performance"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e98f85ca","line":25,"in_reply_to":"7adec928_42b9792d","updated":"2014-05-13 11:55:50.000000000","message":"The two methods are a bit different. This method is written to minimize instance building time. And gain performance. As it it called many times in different operations. Same is already mentioned in Doc string.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    try:"},{"line_number":32,"context_line":"        if query.strip() not in [\u0027UP\u0027, \u0027DOWN\u0027]:"},{"line_number":33,"context_line":"            raise Exception(\"Not implemented error\")"},{"line_number":34,"context_line":"        #Checking the status of vertica as per the query"},{"line_number":35,"context_line":"        out, err \u003d utils.execute("},{"line_number":36,"context_line":"            \"su\", \"-\","}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_02969194","line":33,"updated":"2014-05-08 10:01:50.000000000","message":"the only diff in two methods is this two lines","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            root_helper\u003d\"sudo\")"},{"line_number":42,"context_line":"        if out.strip() \u003d\u003d DATABASE:"},{"line_number":43,"context_line":"            if query.strip() \u003d\u003d \"UP\":"},{"line_number":44,"context_line":"                LOG.info(\"Service Status is Running.\")"},{"line_number":45,"context_line":"                return trove_instance.ServiceStatuses.RUNNING"},{"line_number":46,"context_line":"            if query.strip() \u003d\u003d \"DOWN\":"},{"line_number":47,"context_line":"                LOG.info(\"Service Status is SHUTDOWN.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2795d95","line":44,"updated":"2014-05-08 10:01:50.000000000","message":"_()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                LOG.info(\"Service Status is Running.\")"},{"line_number":45,"context_line":"                return trove_instance.ServiceStatuses.RUNNING"},{"line_number":46,"context_line":"            if query.strip() \u003d\u003d \"DOWN\":"},{"line_number":47,"context_line":"                LOG.info(\"Service Status is SHUTDOWN.\")"},{"line_number":48,"context_line":"                return trove_instance.ServiceStatuses.SHUTDOWN"},{"line_number":49,"context_line":"    except exception.ProcessExecutionError:"},{"line_number":50,"context_line":"        LOG.error(\"Process execution \")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c26e69c9","line":47,"updated":"2014-05-08 10:01:50.000000000","message":"_()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                LOG.info(\"Service Status is SHUTDOWN.\")"},{"line_number":48,"context_line":"                return trove_instance.ServiceStatuses.SHUTDOWN"},{"line_number":49,"context_line":"    except exception.ProcessExecutionError:"},{"line_number":50,"context_line":"        LOG.error(\"Process execution \")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e27365af","line":50,"updated":"2014-05-08 10:01:50.000000000","message":"_()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/guestagent/datastore/vertica/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            raise"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def restart(self, context):"},{"line_number":100,"context_line":"        app \u003d VerticaApp(VerticaAppStatus.get())"},{"line_number":101,"context_line":"        app.restart()"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_filesystem_stats(self, context, fs_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_868059c1","line":100,"updated":"2014-05-07 12:53:58.000000000","message":"please re-write whole class, no need to instantiate app object each time you need it,\nuse self.app","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7adec928_4255f9c4","updated":"2014-05-08 10:01:50.000000000","message":"Given class can be simplified Please re-write whole manager to use only one instance of the application and its status.\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/cassandra/manager.py\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/mongodb/manager.py","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                    LOG.debug(_(\"Mounted the volume.\"))"},{"line_number":77,"context_line":"                app.start_vertica()"},{"line_number":78,"context_line":"            if backup_info:"},{"line_number":79,"context_line":"                self._perform_restore(backup_info, context,"},{"line_number":80,"context_line":"                                      mount_point, app)"},{"line_number":81,"context_line":"            # Create an os_admin user with all admin privilege"},{"line_number":82,"context_line":"            app.secure(config_contents)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bd7c2274","line":79,"updated":"2014-05-08 10:01:50.000000000","message":"please remove two lines above, because your provisioning will fail if you pass the backup info due to raised exception.\n\njust ignore the backup_info and that\u0027s all","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                    LOG.debug(_(\"Mounted the volume.\"))"},{"line_number":77,"context_line":"                app.start_vertica()"},{"line_number":78,"context_line":"            if backup_info:"},{"line_number":79,"context_line":"                self._perform_restore(backup_info, context,"},{"line_number":80,"context_line":"                                      mount_point, app)"},{"line_number":81,"context_line":"            # Create an os_admin user with all admin privilege"},{"line_number":82,"context_line":"            app.secure(config_contents)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_829ffe5e","line":79,"in_reply_to":"7adec928_bd7c2274","updated":"2014-05-08 11:54:03.000000000","message":"Instance should not come active if someone try to take restore.\nAs it is not supported.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                self.create_database(context, databases)"},{"line_number":90,"context_line":"            if users:"},{"line_number":91,"context_line":"                self.create_user(context, users)"},{"line_number":92,"context_line":"            LOG.info(\u0027\"prepare\" call has finished.\u0027)"},{"line_number":93,"context_line":"        except Exception as e:"},{"line_number":94,"context_line":"            LOG.error(e)"},{"line_number":95,"context_line":"            VerticaAppStatus.get().set_status(rd_instance."}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_5d5f9e0e","line":92,"updated":"2014-05-08 10:01:50.000000000","message":"_()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/guestagent/datastore/vertica/service.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    _instance \u003d None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def __init__(self):"},{"line_number":122,"context_line":"        if self._instance is not None:"},{"line_number":123,"context_line":"            raise RuntimeError(\"Cannot instantiate twice.\")"},{"line_number":124,"context_line":"        self.status \u003d rd_models.InstanceServiceStatus("}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_a9a36efe","line":121,"updated":"2014-05-07 12:53:58.000000000","message":"no need to override __init__, it\u0027s already done by base class","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        \"\"\"Called after Vertica is installed or restarted."},{"line_number":139,"context_line":"        Updates the database with the actual Vertica status."},{"line_number":140,"context_line":"        \"\"\""},{"line_number":141,"context_line":"        LOG.info(\"Ending install_if_needed or restart.\")"},{"line_number":142,"context_line":"        self.restart_mode \u003d False"},{"line_number":143,"context_line":"        real_status \u003d self._get_actual_db_status()"},{"line_number":144,"context_line":"        LOG.info(\"Updating status to %s\" % real_status)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_c9a8b2dd","line":141,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        LOG.info(\"Ending install_if_needed or restart.\")"},{"line_number":142,"context_line":"        self.restart_mode \u003d False"},{"line_number":143,"context_line":"        real_status \u003d self._get_actual_db_status()"},{"line_number":144,"context_line":"        LOG.info(\"Updating status to %s\" % real_status)"},{"line_number":145,"context_line":"        self.set_status(real_status)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_e9b01645","line":144,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    @classmethod"},{"line_number":148,"context_line":"    def get(cls):"},{"line_number":149,"context_line":"        if not cls._instance:"},{"line_number":150,"context_line":"            cls._instance \u003d VerticaAppStatus()"},{"line_number":151,"context_line":"        return cls._instance"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _get_actual_db_status(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_29b75e3b","line":150,"updated":"2014-05-07 12:53:58.000000000","message":"this method is not needed","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                \"-\","},{"line_number":159,"context_line":"                \"dbadmin\","},{"line_number":160,"context_line":"                \"-c\","},{"line_number":161,"context_line":"                \"\"\"/opt/vertica/bin/adminTools -t show_active_db\"\"\","},{"line_number":162,"context_line":"                run_as_root\u003dTrue, root_helper\u003d\"sudo\")"},{"line_number":163,"context_line":"            CONNECTION_DICT \u003d get_conn_dict()"},{"line_number":164,"context_line":"            if out.strip() \u003d\u003d CONNECTION_DICT[\u0027database\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_e9fad6bb","line":161,"updated":"2014-05-07 12:53:58.000000000","message":"duplication of https://review.openstack.org/#/c/91761/1/trove/guestagent/datastore/vertica/__init__.py","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def set_status(self, status):"},{"line_number":213,"context_line":"        \"\"\"Use conductor to update the DB app status.\"\"\""},{"line_number":214,"context_line":"        LOG.debug(\"Casting set_status message to conductor.\")"},{"line_number":215,"context_line":"        ctxt \u003d context.TroveContext(user\u003dCONF.nova_proxy_admin_user,"},{"line_number":216,"context_line":"                                    auth_token\u003dCONF.nova_proxy_admin_pass)"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_6984065e","line":214,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        The database is update and the status is also returned."},{"line_number":228,"context_line":"        \"\"\""},{"line_number":229,"context_line":"        if self.is_vertica_installed and not self._is_vertica_restarting:"},{"line_number":230,"context_line":"            LOG.info(\"Determining status of Vertica app...\")"},{"line_number":231,"context_line":"            status \u003d self._get_actual_db_status()"},{"line_number":232,"context_line":"            self.set_status(status)"},{"line_number":233,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_49b4a234","line":230,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            status \u003d self._get_actual_db_status()"},{"line_number":232,"context_line":"            self.set_status(status)"},{"line_number":233,"context_line":"        else:"},{"line_number":234,"context_line":"            LOG.info(\"Vertica is not installed or is in restart mode, so for \""},{"line_number":235,"context_line":"                     \"now we\u0027ll skip determining the status of Vertica\""},{"line_number":236,"context_line":"                     \"on this box.\")"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_89894a77","line":234,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        while waited_time \u003c max_time:"},{"line_number":248,"context_line":"            time.sleep(WAIT_TIME)"},{"line_number":249,"context_line":"            waited_time +\u003d WAIT_TIME"},{"line_number":250,"context_line":"            LOG.info(\"Waiting for Vertica status to change to %s...\" % status)"},{"line_number":251,"context_line":"            actual_status \u003d self._get_actual_db_status()"},{"line_number":252,"context_line":"            LOG.info(\"Vertica status was %s after %d seconds.\""},{"line_number":253,"context_line":"                     % (actual_status, waited_time))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_a97a8e74","line":250,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            waited_time +\u003d WAIT_TIME"},{"line_number":250,"context_line":"            LOG.info(\"Waiting for Vertica status to change to %s...\" % status)"},{"line_number":251,"context_line":"            actual_status \u003d self._get_actual_db_status()"},{"line_number":252,"context_line":"            LOG.info(\"Vertica status was %s after %d seconds.\""},{"line_number":253,"context_line":"                     % (actual_status, waited_time))"},{"line_number":254,"context_line":"            if actual_status \u003d\u003d status:"},{"line_number":255,"context_line":"                if update_db:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_c97fd264","line":252,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _associate_dbs(self, user):"},{"line_number":298,"context_line":"        \"\"\"Internal. Given a VerticaUser, populate its databases attribute.\"\"\""},{"line_number":299,"context_line":"        LOG.debug(\"Associating dbs to user %s\" % (user.name))"},{"line_number":300,"context_line":"        with LocalSqlClient(get_engine(), use_flush\u003dFalse) as client:"},{"line_number":301,"context_line":"            q \u003d vertica_query.Query()"},{"line_number":302,"context_line":"            q.columns \u003d [\"grantee\", \"object_name\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_e997368e","line":299,"updated":"2014-05-07 12:53:58.000000000","message":"translation required _()","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"37eb7a7a3742ef85820cf739b4e5f9d52d0ee493","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        # it fails for first time"},{"line_number":652,"context_line":"        if pwd \u003d\u003d \u0027\u0027:"},{"line_number":653,"context_line":"            # Using vertica admintools to stop db."},{"line_number":654,"context_line":"            qs \u003d \"\"\"/opt/vertica/bin/adminTools -t stop_db -d %s\"\"\"\\"},{"line_number":655,"context_line":"                 % CONNECTION_DICT[\u0027database\u0027]"},{"line_number":656,"context_line":"        else:"},{"line_number":657,"context_line":"            qs \u003d \"\"\"/opt/vertica/bin/adminTools -t stop_db -d %s -p\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9bd40_498bc267","line":654,"updated":"2014-05-07 12:53:58.000000000","message":"please use pythonic formatting\n() instead of \\","commit_id":"b1675df8e2c30dff87f17a9d72d0f1762a363fce"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from trove.common import utils as utils"},{"line_number":27,"context_line":"from trove.common import context"},{"line_number":28,"context_line":"from trove.common import instance as trove_instance"},{"line_number":29,"context_line":"from trove.guestagent.datastore import vertica"},{"line_number":30,"context_line":"from trove.guestagent.datastore.vertica import vertica_query"},{"line_number":31,"context_line":"from trove.guestagent.db import vertica_models"},{"line_number":32,"context_line":"from trove.instance import models as rd_models"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bdf34209","line":29,"updated":"2014-05-08 10:01:50.000000000","message":"please improve importing","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def generate_random_password():"},{"line_number":46,"context_line":"    return passlib.utils.generate_password(size\u003dCONF.default_password_length)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_conn_dict(user\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ddcf2eaf","line":46,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of trove.common.utils.generate_random_password","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    if user \u003d\u003d ADMIN_USER_NAME:"},{"line_number":58,"context_line":"        CONNECTION_DICT[\u0027username\u0027] \u003d ADMIN_USER_NAME"},{"line_number":59,"context_line":"    return CONNECTION_DICT"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"INCLUDE_MARKER_OPERATORS \u003d {"},{"line_number":62,"context_line":"    True: \"\u003e\u003d\","}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7d5e1aeb","line":59,"updated":"2014-05-08 10:01:50.000000000","message":"please simplify this method\n\n\nCONNECTION_DICT \u003d {\n\t\t\t\u0027drivername\u0027: \u0027vertica+pyodbc\u0027,\n\t\t\t\u0027username\u0027: user if user else \u0027dbadmin\u0027,\n\t\t\t\u0027host\u0027: \u0027127.0.0.1\u0027,\t\n\t\t\t\u0027database\u0027: \u0027vertica\u0027\n}","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        **CONNECTION_DICT))"},{"line_number":95,"context_line":"    return ENGINE"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class VerticaAppStatus(object):"},{"line_number":99,"context_line":"    \"\"\""},{"line_number":100,"context_line":"    Answers the question \"what is the status of the Vertica application on"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a20a3dd0","line":97,"updated":"2014-05-08 10:01:50.000000000","message":"this class can be simplified\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/mongodb/service.py#L214-L229\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/cassandra/service.py#L193-L210","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    _instance \u003d None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def __init__(self):"},{"line_number":122,"context_line":"        if self._instance is not None:"},{"line_number":123,"context_line":"            raise RuntimeError(\"Cannot instantiate twice.\")"},{"line_number":124,"context_line":"        self.status \u003d rd_models.InstanceServiceStatus("}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e288c5e9","line":121,"updated":"2014-05-08 10:01:50.000000000","message":"no need to override __init__, it\u0027s already done by base class\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/service.py#L56-L62","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            status\u003dtrove_instance.ServiceStatuses.NEW)"},{"line_number":127,"context_line":"        self.restart_mode \u003d False"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def begin_vertica_install(self):"},{"line_number":130,"context_line":"        \"\"\"Called right before Vertica is prepared.\"\"\""},{"line_number":131,"context_line":"        self.set_status(trove_instance.ServiceStatuses.BUILDING)"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_42f2599b","line":129,"updated":"2014-05-08 10:01:50.000000000","message":"no need to override this method with the same logic\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/service.py#L72-L81","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        \"\"\"Called right before Vertica is prepared.\"\"\""},{"line_number":131,"context_line":"        self.set_status(trove_instance.ServiceStatuses.BUILDING)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def begin_vertica_restart(self):"},{"line_number":134,"context_line":"        \"\"\"Called before restarting Vertica.\"\"\""},{"line_number":135,"context_line":"        self.restart_mode \u003d True"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_822b81ea","line":133,"updated":"2014-05-08 10:01:50.000000000","message":"no need to override this method with the same logic\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/service.py#L68-L70","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\"Called before restarting Vertica.\"\"\""},{"line_number":135,"context_line":"        self.restart_mode \u003d True"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def end_install_or_restart(self):"},{"line_number":138,"context_line":"        \"\"\"Called after Vertica is installed or restarted."},{"line_number":139,"context_line":"        Updates the database with the actual Vertica status."},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e2036571","line":137,"updated":"2014-05-08 10:01:50.000000000","message":"no need to override this method with the same logic\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/service.py#L72-L81","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        \"\"\"Called after Vertica is installed or restarted."},{"line_number":139,"context_line":"        Updates the database with the actual Vertica status."},{"line_number":140,"context_line":"        \"\"\""},{"line_number":141,"context_line":"        LOG.info(\"Ending install_if_needed or restart.\")"},{"line_number":142,"context_line":"        self.restart_mode \u003d False"},{"line_number":143,"context_line":"        real_status \u003d self._get_actual_db_status()"},{"line_number":144,"context_line":"        LOG.info(\"Updating status to %s\" % real_status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_02205148","line":141,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        LOG.info(\"Ending install_if_needed or restart.\")"},{"line_number":142,"context_line":"        self.restart_mode \u003d False"},{"line_number":143,"context_line":"        real_status \u003d self._get_actual_db_status()"},{"line_number":144,"context_line":"        LOG.info(\"Updating status to %s\" % real_status)"},{"line_number":145,"context_line":"        self.set_status(real_status)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_421a5918","line":144,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    @classmethod"},{"line_number":148,"context_line":"    def get(cls):"},{"line_number":149,"context_line":"        if not cls._instance:"},{"line_number":150,"context_line":"            cls._instance \u003d VerticaAppStatus()"},{"line_number":151,"context_line":"        return cls._instance"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _get_actual_db_status(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2d87d54","line":150,"updated":"2014-05-08 10:01:50.000000000","message":"this method is not needed\n\nparent class logic already covers this case\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/datastore/service.py#L56-L62","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            cls._instance \u003d VerticaAppStatus()"},{"line_number":151,"context_line":"        return cls._instance"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _get_actual_db_status(self):"},{"line_number":154,"context_line":"        \"\"\"Get the status of dbaas and report it back.\"\"\""},{"line_number":155,"context_line":"        try:"},{"line_number":156,"context_line":"            out, err \u003d utils.execute("}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_22e46d0c","line":153,"updated":"2014-05-08 10:01:50.000000000","message":"duplication of https://review.openstack.org/#/c/91761/1/trove/guestagent/datastore/vertica/__init__.py\n\nplease keep it in one place","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def set_status(self, status):"},{"line_number":213,"context_line":"        \"\"\"Use conductor to update the DB app status.\"\"\""},{"line_number":214,"context_line":"        LOG.debug(\"Casting set_status message to conductor.\")"},{"line_number":215,"context_line":"        ctxt \u003d context.TroveContext(user\u003dCONF.nova_proxy_admin_user,"},{"line_number":216,"context_line":"                                    auth_token\u003dCONF.nova_proxy_admin_pass)"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_62ee75ee","line":214,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            \u0027service_status\u0027: status.description,"},{"line_number":220,"context_line":"        }"},{"line_number":221,"context_line":"        conductor_api.API(ctxt).heartbeat(CONF.guest_id, heartbeat)"},{"line_number":222,"context_line":"        LOG.debug(\"Successfully cast set_status.\")"},{"line_number":223,"context_line":"        self.status \u003d status"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def update(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_82baa1df","line":222,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        The database is update and the status is also returned."},{"line_number":228,"context_line":"        \"\"\""},{"line_number":229,"context_line":"        if self.is_vertica_installed and not self._is_vertica_restarting:"},{"line_number":230,"context_line":"            LOG.info(\"Determining status of Vertica app...\")"},{"line_number":231,"context_line":"            status \u003d self._get_actual_db_status()"},{"line_number":232,"context_line":"            self.set_status(status)"},{"line_number":233,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2bf9dcf","line":230,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            status \u003d self._get_actual_db_status()"},{"line_number":232,"context_line":"            self.set_status(status)"},{"line_number":233,"context_line":"        else:"},{"line_number":234,"context_line":"            LOG.info(\"Vertica is not installed or is in restart mode, so for \""},{"line_number":235,"context_line":"                     \"now we\u0027ll skip determining the status of Vertica\""},{"line_number":236,"context_line":"                     \"on this box.\")"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_22cb8d73","line":234,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        while waited_time \u003c max_time:"},{"line_number":248,"context_line":"            time.sleep(WAIT_TIME)"},{"line_number":249,"context_line":"            waited_time +\u003d WAIT_TIME"},{"line_number":250,"context_line":"            LOG.info(\"Waiting for Vertica status to change to %s...\" % status)"},{"line_number":251,"context_line":"            actual_status \u003d self._get_actual_db_status()"},{"line_number":252,"context_line":"            LOG.info(\"Vertica status was %s after %d seconds.\""},{"line_number":253,"context_line":"                     % (actual_status, waited_time))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_42c89974","line":250,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            waited_time +\u003d WAIT_TIME"},{"line_number":250,"context_line":"            LOG.info(\"Waiting for Vertica status to change to %s...\" % status)"},{"line_number":251,"context_line":"            actual_status \u003d self._get_actual_db_status()"},{"line_number":252,"context_line":"            LOG.info(\"Vertica status was %s after %d seconds.\""},{"line_number":253,"context_line":"                     % (actual_status, waited_time))"},{"line_number":254,"context_line":"            if actual_status \u003d\u003d status:"},{"line_number":255,"context_line":"                if update_db:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2a6bdbf","line":252,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _associate_dbs(self, user):"},{"line_number":298,"context_line":"        \"\"\"Internal. Given a VerticaUser, populate its databases attribute.\"\"\""},{"line_number":299,"context_line":"        LOG.debug(\"Associating dbs to user %s\" % (user.name))"},{"line_number":300,"context_line":"        with LocalSqlClient(get_engine(), use_flush\u003dFalse) as client:"},{"line_number":301,"context_line":"            q \u003d vertica_query.Query()"},{"line_number":302,"context_line":"            q.columns \u003d [\"grantee\", \"object_name\"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_0295b13f","line":299,"updated":"2014-05-08 10:01:50.000000000","message":"translation required _()","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def _write_temp_mycnf_with_admin_account(self, original_file_path,"},{"line_number":611,"context_line":"                                             user_name, password):"},{"line_number":612,"context_line":"        \"\"\"Write the user name and password to the vertica.cnf file.\"\"\""},{"line_number":613,"context_line":"        utils.execute_with_timeout(\"sudo\", \"chmod\", \"0777\", original_file_path)"},{"line_number":614,"context_line":"        verticacnf_file \u003d open(original_file_path, \u0027a\u0027)"},{"line_number":615,"context_line":"        if user_name \u003d\u003d ADMIN_USER_NAME:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c2990970","line":612,"updated":"2014-05-08 10:01:50.000000000","message":"755 is enough","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            verticacnf_file.write(\"admin_password\\t\\t\u003d %s\\n\" % password)"},{"line_number":618,"context_line":"        if user_name \u003d\u003d \"dbadmin\":"},{"line_number":619,"context_line":"            verticacnf_file.write(\"root_user\\t\\t\u003d %s\\n\" % user_name)"},{"line_number":620,"context_line":"            verticacnf_file.write(\"root_password\\t\\t\u003d %s\\n\" % password)"},{"line_number":621,"context_line":"        verticacnf_file.close()"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def _write_mycnf(self, admin_password, config_contents):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_22a0ed8f","line":620,"updated":"2014-05-08 10:01:50.000000000","message":"revert the previous rights","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        # it fails for first time"},{"line_number":652,"context_line":"        if pwd \u003d\u003d \u0027\u0027:"},{"line_number":653,"context_line":"            # Using vertica admintools to stop db."},{"line_number":654,"context_line":"            qs \u003d \"\"\"/opt/vertica/bin/adminTools -t stop_db -d %s\"\"\"\\"},{"line_number":655,"context_line":"                 % CONNECTION_DICT[\u0027database\u0027]"},{"line_number":656,"context_line":"        else:"},{"line_number":657,"context_line":"            qs \u003d \"\"\"/opt/vertica/bin/adminTools -t stop_db -d %s -p\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_02ca114f","line":654,"updated":"2014-05-08 10:01:50.000000000","message":"please use pythonic formatting () instead of \\","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":655,"context_line":"                 % CONNECTION_DICT[\u0027database\u0027]"},{"line_number":656,"context_line":"        else:"},{"line_number":657,"context_line":"            qs \u003d \"\"\"/opt/vertica/bin/adminTools -t stop_db -d %s -p\\"},{"line_number":658,"context_line":"                 %s\"\"\" % (CONNECTION_DICT[\u0027database\u0027], pwd)"},{"line_number":659,"context_line":"        for count in range(1, 3):"},{"line_number":660,"context_line":"            try:"},{"line_number":661,"context_line":"                utils.execute(\"su\", \"-\", \"dbadmin\", \"-c\", qs,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_42c41940","line":658,"updated":"2014-05-08 10:01:50.000000000","message":"same here","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/guestagent/datastore/vertica/vertica_query.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class Grant(sql_query.Grant):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @property"},{"line_number":34,"context_line":"    def _database(self):"},{"line_number":35,"context_line":"        if not self.database:"},{"line_number":36,"context_line":"            return \"*\""},{"line_number":37,"context_line":"        return \"%s\" % self.database"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_9d0a06d1","line":34,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/common/sql_query.py#L147-L150","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class Grant(sql_query.Grant):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @property"},{"line_number":34,"context_line":"    def _database(self):"},{"line_number":35,"context_line":"        if not self.database:"},{"line_number":36,"context_line":"            return \"*\""},{"line_number":37,"context_line":"        return \"%s\" % self.database"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_020a0e21","line":34,"in_reply_to":"7adec928_9d0a06d1","updated":"2014-05-08 11:54:03.000000000","message":"The (return \"`%s`\" % self.database) is different here.\nKindly make a diff","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        return \"%s\" % self.database"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @property"},{"line_number":40,"context_line":"    def _table(self):"},{"line_number":41,"context_line":"        if self.table:"},{"line_number":42,"context_line":"            return \"%s\" % self.table"},{"line_number":43,"context_line":"        return \"*\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bd0fc2e0","line":40,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/common/sql_query.py#L152-L156","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        return \"%s\" % self.database"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @property"},{"line_number":40,"context_line":"    def _table(self):"},{"line_number":41,"context_line":"        if self.table:"},{"line_number":42,"context_line":"            return \"%s\" % self.table"},{"line_number":43,"context_line":"        return \"*\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e2044217","line":40,"in_reply_to":"7adec928_bd0fc2e0","updated":"2014-05-08 11:54:03.000000000","message":"The (return \"\u0027%s\u0027\" % self.table) is different here.\nKindly make a diff","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"class Revoke(Grant, sql_query.Revoke):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @property"},{"line_number":65,"context_line":"    def _whom(self):"},{"line_number":66,"context_line":"        # User from whom to revoke permission."},{"line_number":67,"context_line":"        # Optionally, password, too."},{"line_number":68,"context_line":"        whom \u003d [(\u0027FROM \"%s\"\u0027 % self._user_host),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fdf86ac6","line":65,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/common/sql_query.py#L257-L265","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":62,"context_line":"class Revoke(Grant, sql_query.Revoke):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @property"},{"line_number":65,"context_line":"    def _whom(self):"},{"line_number":66,"context_line":"        # User from whom to revoke permission."},{"line_number":67,"context_line":"        # Optionally, password, too."},{"line_number":68,"context_line":"        whom \u003d [(\u0027FROM \"%s\"\u0027 % self._user_host),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_e2528212","line":65,"in_reply_to":"7adec928_fdf86ac6","updated":"2014-05-08 11:54:03.000000000","message":"Check the difference: \n        whom \u003d [(\"FROM %s\" % self._user_host),\n                self._identity,\n                ]","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/guestagent/db/vertica_models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VerticaDatabase(Base):"},{"line_number":26,"context_line":"    \"\"\"Represents a Database and its properties.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _ignore_dbs \u003d CONF.ignore_dbs"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    # Defaults"},{"line_number":31,"context_line":"    __charset__ \u003d \"utf8\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_dde2ce02","line":28,"updated":"2014-05-08 10:01:50.000000000","message":"_ignore_dbs is specific to datastore, so it doesn\u0027t work at current state","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":9122,"name":"Shalini khandelwal","email":"shalini.khandelwal@globallogic.com","username":"shalini"},"change_message_id":"dde842d5123bb8ff051220641d7853fc49dc56da","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VerticaDatabase(Base):"},{"line_number":26,"context_line":"    \"\"\"Represents a Database and its properties.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _ignore_dbs \u003d CONF.ignore_dbs"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    # Defaults"},{"line_number":31,"context_line":"    __charset__ \u003d \"utf8\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c2882625","line":28,"in_reply_to":"7adec928_dde2ce02","updated":"2014-05-08 11:54:03.000000000","message":"ignore_users is made datastore specific not ignore_db.","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    for items in collation_list:"},{"line_number":51,"context_line":"        collation[items] \u003d charset.keys()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self):"},{"line_number":54,"context_line":"        self._name \u003d None"},{"line_number":55,"context_line":"        self._collate \u003d None"},{"line_number":56,"context_line":"        self._character_set \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_dd2bae2e","line":53,"updated":"2014-05-08 10:01:50.000000000","message":"can be moved to Base class, because shared between each of the models","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._character_set \u003d []"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @property"},{"line_number":59,"context_line":"    def name(self):"},{"line_number":60,"context_line":"        return self._name"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _is_valid(self, value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fd1f8a07","line":59,"updated":"2014-05-08 10:01:50.000000000","message":"same","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def name(self):"},{"line_number":60,"context_line":"        return self._name"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _is_valid(self, value):"},{"line_number":63,"context_line":"        return value.lower() not in self._ignore_dbs"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @name.setter"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_3d1ad217","line":62,"updated":"2014-05-08 10:01:50.000000000","message":"same","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class ValidatedVerticaDatabase(VerticaDatabase):"},{"line_number":115,"context_line":"    @VerticaDatabase.name.setter"},{"line_number":116,"context_line":"    def name(self, value):"},{"line_number":117,"context_line":"        if any([not value,"},{"line_number":118,"context_line":"                not self._is_valid(value),"},{"line_number":119,"context_line":"                not self.dbname.match(value),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fd7b0a27","line":116,"updated":"2014-05-08 10:01:50.000000000","message":"Duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L335-L345","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        else:"},{"line_number":144,"context_line":"            return True"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _is_valid_user_name(self, value):"},{"line_number":147,"context_line":"        if (self._is_valid(value) and"},{"line_number":148,"context_line":"                value.lower() not in self._ignore_users):"},{"line_number":149,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bdb422f3","line":146,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L368-L372","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        return False"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    @property"},{"line_number":153,"context_line":"    def name(self):"},{"line_number":154,"context_line":"        return self._name"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @name.setter"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_3dc81274","line":153,"updated":"2014-05-08 10:01:50.000000000","message":"Duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L400-L402","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return self._name"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @name.setter"},{"line_number":157,"context_line":"    def name(self, value):"},{"line_number":158,"context_line":"        if not self._is_valid_user_name(value):"},{"line_number":159,"context_line":"            raise ValueError(\"\u0027%s\u0027 is not a valid user name.\" % value)"},{"line_number":160,"context_line":"        elif len(value) \u003e 16:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_1dcb5673","line":157,"updated":"2014-05-08 10:01:50.000000000","message":"Duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L404-L412","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            self._name \u003d value"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @property"},{"line_number":167,"context_line":"    def password(self):"},{"line_number":168,"context_line":"        return self._password"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    @password.setter"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_7da1baa8","line":167,"updated":"2014-05-08 10:01:50.000000000","message":"Duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L414-L416","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def password(self):"},{"line_number":168,"context_line":"        return self._password"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    @password.setter"},{"line_number":171,"context_line":"    def password(self, value):"},{"line_number":172,"context_line":"        if not self._is_valid(value):"},{"line_number":173,"context_line":"            raise ValueError(\"\u0027%s\u0027 is not a valid password.\" % value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ddb00ef7","line":170,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L418-L423","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            self._password \u003d value"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    @property"},{"line_number":178,"context_line":"    def databases(self):"},{"line_number":179,"context_line":"        return self._databases"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @databases.setter"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fd94ea45","line":178,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L425-L427","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    def databases(self):"},{"line_number":179,"context_line":"        return self._databases"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @databases.setter"},{"line_number":182,"context_line":"    def databases(self, value):"},{"line_number":183,"context_line":"        mydb \u003d ValidatedVerticaDatabase()"},{"line_number":184,"context_line":"        mydb.name \u003d value"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_1d927657","line":181,"updated":"2014-05-08 10:01:50.000000000","message":"duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L429-L433","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        self._databases.append(mydb.serialize())"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    @property"},{"line_number":188,"context_line":"    def host(self):"},{"line_number":189,"context_line":"        if self._host is None:"},{"line_number":190,"context_line":"            return \u0027%\u0027"},{"line_number":191,"context_line":"        return self._host"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_3d9f3261","line":188,"updated":"2014-05-08 10:01:50.000000000","message":"Duplicate of https://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L435-L439","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        return self._host"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    @host.setter"},{"line_number":194,"context_line":"    def host(self, value):"},{"line_number":195,"context_line":"        self._host \u003d value"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_9d8da634","line":194,"updated":"2014-05-08 10:01:50.000000000","message":"host should be validated\n\nhttps://github.com/openstack/trove/blob/master/trove/guestagent/db/models.py#L441-L446","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/templates/vertica/heat.template":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"Parameters:"},{"line_number":4,"context_line":"  Flavor:"},{"line_number":5,"context_line":"    Type: String"},{"line_number":6,"context_line":"    Default: m1.small"},{"line_number":7,"context_line":"  VolumeSize:"},{"line_number":8,"context_line":"    Type: Number"},{"line_number":9,"context_line":"    Default : \u00271\u0027"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7adec928_82c70112","line":6,"updated":"2014-05-08 10:01:50.000000000","message":"default is not needed\nhttps://github.com/openstack/trove/blob/master/trove/templates/mysql/heat.template#L4-L5","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Default: m1.small"},{"line_number":7,"context_line":"  VolumeSize:"},{"line_number":8,"context_line":"    Type: Number"},{"line_number":9,"context_line":"    Default : \u00271\u0027"},{"line_number":10,"context_line":"  InstanceId:"},{"line_number":11,"context_line":"    Type: String"},{"line_number":12,"context_line":"  ImageId:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7adec928_62e2f5a0","line":9,"updated":"2014-05-08 10:01:50.000000000","message":"Default also not needed because VolumeAttached resource already has default size that equals to 1Gb","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}],"trove/tests/unittests/guestagent/test_vertica_manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.guestagent import volume"},{"line_number":24,"context_line":"from trove.guestagent import pkg as pkg"},{"line_number":25,"context_line":"from trove.guestagent.volume import VolumeDevice"},{"line_number":26,"context_line":"import trove.guestagent.datastore.vertica.service as vertica_dbaas"},{"line_number":27,"context_line":"from trove.guestagent.datastore.vertica.manager import Manager \\"},{"line_number":28,"context_line":"    as Vertica_Manager"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_bde7c2e3","line":26,"updated":"2014-05-08 10:01:50.000000000","message":"please re-oreder the imports and follow the rules of imports\n\nThe first order:\n\nimport ...\n\nThe second order\n\nfrom .... import ...","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9f0ada1bf48150f01c5fe71bbdff6810e60a627b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from trove.guestagent import pkg as pkg"},{"line_number":25,"context_line":"from trove.guestagent.volume import VolumeDevice"},{"line_number":26,"context_line":"import trove.guestagent.datastore.vertica.service as vertica_dbaas"},{"line_number":27,"context_line":"from trove.guestagent.datastore.vertica.manager import Manager \\"},{"line_number":28,"context_line":"    as Vertica_Manager"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fdc94a5b","line":27,"updated":"2014-05-08 10:01:50.000000000","message":"use more pythonic way while lines formatting.\n\nuse () instead of \\\n\nalso thi import can simplified, no need to set alias for Manager claass, because Manager has only one meaning/value at current module","commit_id":"7ff69d1b8226f7635e2551a1d5a504f1744aeea4"}]}
