)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8932,"name":"Telles Mota Vidal Nóbrega","email":"tellesnobrega@gmail.com","username":"tellesnobrega"},"change_message_id":"ce9dee34a8818fdc71a04d87e41323446949abde","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sonali-Goyal \u003csonaligoyal654321@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-05 11:15:15 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement Couchdb Configuration Groups"},{"line_number":8,"context_line":"Implements : blueprint couchdb-configuration-groups"},{"line_number":9,"context_line":"Change-Id: I61b451e566f4f4bacdb7d6f0b17e1df458f8a94a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"bab6814e_96a52cb7","line":7,"updated":"2016-05-18 03:16:34.000000000","message":"Please add some space between the title so the title is limited to the 50 lines.","commit_id":"b39373151acf1cac5bd98eb13508480d770febaf"}],"trove/guestagent/datastore/experimental/couchdb/manager.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"888d5946578f1e467bc3661c45c45b85446c3938","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                LOG.debug(\u0027Mounted the volume (%s).\u0027 % device_path)"},{"line_number":72,"context_line":"            self.app.start_db()"},{"line_number":73,"context_line":"        self.app.change_permissions()"},{"line_number":74,"context_line":"        self.app.make_host_reachable()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def stop_db(self, context, do_not_start_on_reboot\u003dFalse):"},{"line_number":77,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_fb220fa2","line":74,"range":{"start_line":74,"start_character":17,"end_line":74,"end_character":36},"updated":"2016-03-03 10:51:49.000000000","message":"make_host_reachable was removed in service.py","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"04bc438361e3d5f0586b7bb9a5f633b8e4b1635f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        LOG.debug(\"Stopping the CouchDB instance.\")"},{"line_number":83,"context_line":"        self.app.stop_db(do_not_start_on_reboot\u003ddo_not_start_on_reboot)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def reset_configuration(self, context, configuration):"},{"line_number":86,"context_line":"        self.app.reset_configuration(configuration)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def restart(self, context):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_011f6108","line":85,"updated":"2016-03-03 20:57:46.000000000","message":"This is already implemented in the base manager and could be removed from here.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"}],"trove/guestagent/datastore/experimental/couchdb/service.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            ConfigurationManager.DEFAULT_STRATEGY_OVERRIDES_SUB_DIR)"},{"line_number":64,"context_line":"        self.configuration_manager \u003d ConfigurationManager("},{"line_number":65,"context_line":"            COUCHDB_CONF,"},{"line_number":66,"context_line":"            \u0027couchdb\u0027, \u0027couchdb\u0027,"},{"line_number":67,"context_line":"            SafeIniCodec(default_value\u003d\u00271\u0027, comment_markers\u003d(\u0027#\u0027, \u0027;\u0027, \u0027!\u0027)),"},{"line_number":68,"context_line":"            requires_root\u003dTrue,"},{"line_number":69,"context_line":"            override_strategy\u003dOneFileOverrideStrategy(revision_dir))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_0c6ca2cc","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":32},"updated":"2016-02-01 16:34:00.000000000","message":"We may want to replace these (and other usages) in the file with a variable. It should make overriding easier.","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            system.SERVICE_CANDIDATES, self.state_change_wait_time)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def apply_initial_guestagent_configuration(self):"},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        Some of these settings may be overriden by user defined"},{"line_number":118,"context_line":"        configuration groups."},{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        updates \u003d {"},{"line_number":121,"context_line":"            \u0027bind_address\u0027: \u00270.0.0.0\u0027"},{"line_number":122,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_2c1f1e09","line":119,"range":{"start_line":116,"start_character":8,"end_line":119,"end_character":11},"updated":"2016-02-01 16:34:00.000000000","message":"I don\u0027t think the comment is relevant in this case - i.e. the bind address.","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"c00a710bc3e5a41e49cb357c070c0a5f720ad81e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.configuration_manager \u003d ConfigurationManager("},{"line_number":66,"context_line":"            COUCHDB_CONF,"},{"line_number":67,"context_line":"            \u0027couchdb\u0027, \u0027couchdb\u0027,"},{"line_number":68,"context_line":"            SafeIniCodec(default_value\u003d\u00271\u0027, comment_markers\u003d(\u0027#\u0027, \u0027;\u0027, \u0027!\u0027)),"},{"line_number":69,"context_line":"            requires_root\u003dTrue,"},{"line_number":70,"context_line":"            override_strategy\u003dOneFileOverrideStrategy(revision_dir))"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_dfc4db93","line":68,"range":{"start_line":68,"start_character":12,"end_line":68,"end_character":24},"updated":"2016-02-19 19:05:39.000000000","message":"Just \u0027IniCodec\u0027","commit_id":"c73660efff5cd05def502ddb6c934f71537bd338"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"c00a710bc3e5a41e49cb357c070c0a5f720ad81e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            system.SERVICE_CANDIDATES, self.state_change_wait_time)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def apply_initial_guestagent_configuration(self):"},{"line_number":117,"context_line":"        updates \u003d {"},{"line_number":118,"context_line":"            \u0027bind_address\u0027: \u00270.0.0.0\u0027,"},{"line_number":119,"context_line":"            \u0027database_dir\u0027: system.COUCHDB_DATABASE_DIR,"},{"line_number":120,"context_line":"            \u0027view_index_dir\u0027: system.COUCHDB_VIEW_INDEX_DIR,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_1f63e3dd","line":117,"updated":"2016-02-19 19:05:39.000000000","message":"Seems like you are missing the section here.","commit_id":"c73660efff5cd05def502ddb6c934f71537bd338"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13eb5e5c2b2d6dba433e7ad26afd576406c22bc1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import getpass"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":9,"id":"bae84128_4ce26030","line":15,"updated":"2016-02-23 14:18:22.000000000","message":"You are missing \"import os\" here.","commit_id":"73c939ce81f0281c0003e2abeff7b93d27eafb0c"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"43617e485f288578d5a2369327aefe69321f8750","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def apply_initial_guestagent_configuration(self):"},{"line_number":117,"context_line":"        updates \u003d {"},{"line_number":118,"context_line":"            \u0027bind_address\u0027: \u00270.0.0.0\u0027,"},{"line_number":119,"context_line":"            \u0027database_dir\u0027: system.COUCHDB_DATABASE_DIR,"},{"line_number":120,"context_line":"            \u0027view_index_dir\u0027: system.COUCHDB_VIEW_INDEX_DIR,"},{"line_number":121,"context_line":"            \u0027util_driver_dir\u0027: system.COUCHDB_UTIL_DRIVER_DIR,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bae84128_c71be2c8","line":118,"updated":"2016-02-23 16:26:04.000000000","message":"You will need to specify INI sections here. You can either write them in the nested form like:\n\n{\u0027httpd\u0027: {\u0027bind_address\u0027: \u00270.0.0.0\u0027, ...}, ...}\n\nor in fully qualified form and use the \u0027expand_dict\u0027 function.\n\nguestagent_utils.expand_dict({\u0027httpd.bind_address\u0027: \u00270.0.0.0\u0027, ...})","commit_id":"73c939ce81f0281c0003e2abeff7b93d27eafb0c"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"888d5946578f1e467bc3661c45c45b85446c3938","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    def update_overrides(self, context, overrides, remove\u003dFalse):"},{"line_number":131,"context_line":"        if overrides:"},{"line_number":132,"context_line":"            self.configuration_manager.apply_user_override("},{"line_number":133,"context_line":"                guestagent_utils.expand_dict(overrides))"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def remove_overrides(self):"},{"line_number":136,"context_line":"        self.configuration_manager.remove_user_override()"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_ed6c1837","line":133,"range":{"start_line":133,"start_character":16,"end_line":133,"end_character":32},"updated":"2016-03-03 10:51:49.000000000","message":"shouldn\u0027t this be utils.expand_dic instead?","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"04bc438361e3d5f0586b7bb9a5f633b8e4b1635f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self.apply_initial_guestagent_configuration()"},{"line_number":147,"context_line":"        self.start_db(True)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def reset_configuration(self, configuration):"},{"line_number":150,"context_line":"        LOG.debug(\"Resetting configuration.\")"},{"line_number":151,"context_line":"        config_contents \u003d configuration[\u0027config_contents\u0027]"},{"line_number":152,"context_line":"        self.configuration_manager.save_configuration(config_contents)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_21fd3db4","line":149,"updated":"2016-03-03 20:57:46.000000000","message":"This should no longer be needed here as it\u0027s already implemented the same way in the base Manager.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"}],"trove/guestagent/datastore/experimental/couchdb/system.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"888d5946578f1e467bc3661c45c45b85446c3938","unresolved":false,"context_lines":[{"line_number":20,"context_line":"TIME_OUT \u003d 1200"},{"line_number":21,"context_line":"COUCHDB_HTTPD_PORT \u003d \"5984\""},{"line_number":22,"context_line":"COUCHDB_SERVER_STATUS \u003d \"curl http://127.0.0.1:\" + COUCHDB_HTTPD_PORT"},{"line_number":23,"context_line":"COUCHDB_DATABASE_DIR \u003d \"/usr/local/var/lib/couchdb\""},{"line_number":24,"context_line":"COUCHDB_VIEW_INDEX_DIR \u003d \"/usr/local/var/lib/couchdb\""},{"line_number":25,"context_line":"COUCHDB_UTIL_DRIVER_DIR \u003d ("},{"line_number":26,"context_line":"    \"/usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_cd979c38","line":23,"updated":"2016-03-03 10:51:49.000000000","message":"If you look at the service.py file, the COUCHDB_LIB_DIR is the same as the COUCHDB_DATABASE_DIR and I believe it should be /var/lib/couchdb","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"7d7d805ba5f0f8ab76e3a713787256d992a8c560","unresolved":false,"context_lines":[{"line_number":20,"context_line":"TIME_OUT \u003d 1200"},{"line_number":21,"context_line":"COUCHDB_HTTPD_PORT \u003d \"5984\""},{"line_number":22,"context_line":"COUCHDB_SERVER_STATUS \u003d \"curl http://127.0.0.1:\" + COUCHDB_HTTPD_PORT"},{"line_number":23,"context_line":"COUCHDB_DATABASE_DIR \u003d \"/usr/local/var/lib/couchdb\""},{"line_number":24,"context_line":"COUCHDB_VIEW_INDEX_DIR \u003d \"/usr/local/var/lib/couchdb\""},{"line_number":25,"context_line":"COUCHDB_UTIL_DRIVER_DIR \u003d ("},{"line_number":26,"context_line":"    \"/usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib\")"},{"line_number":27,"context_line":"COUCHDB_LOG_FILE \u003d \"/usr/local/var/log/couchdb/couch.log\""},{"line_number":28,"context_line":"COUCHDB_JAVASCRIPT \u003d \"/usr/local/share/couchdb/server/main.js\""}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_1394a988","line":28,"range":{"start_line":23,"start_character":0,"end_line":28,"end_character":62},"updated":"2016-03-04 16:05:19.000000000","message":"I think these paths should be different. I tested on Ubuntu 14.04 and the paths appear to be like this:\n\n/usr/local/share/couchdb/server/main.js -\u003e /usr/share/couchdb/server/main.js\n/usr/local/var/lib/couchdb -\u003e /var/lib/couchdb\n/usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib -\u003e /var/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib\n/usr/local/var/log/couchdb/couch.log -\u003e /var/log/couchdb/couch.log","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"888d5946578f1e467bc3661c45c45b85446c3938","unresolved":false,"context_lines":[{"line_number":25,"context_line":"COUCHDB_UTIL_DRIVER_DIR \u003d ("},{"line_number":26,"context_line":"    \"/usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib\")"},{"line_number":27,"context_line":"COUCHDB_LOG_FILE \u003d \"/usr/local/var/log/couchdb/couch.log\""},{"line_number":28,"context_line":"COUCHDB_JAVASCRIPT \u003d \"/usr/local/share/couchdb/server/main.js\""}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_cd3f9c85","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":18},"updated":"2016-03-03 10:51:49.000000000","message":"Sonali, I dont believe the above 4 dirs (COUCHDB_JAVASCRIPT, COUCHDB_UTIL_DRIVER_DIR, COUCHDB_VIEW_INDEX_DIR, COUCHDB_LOG_FILE) need to be managed by the guestagent. They are not used or needed by the guestagent.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"04bc438361e3d5f0586b7bb9a5f633b8e4b1635f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"COUCHDB_UTIL_DRIVER_DIR \u003d ("},{"line_number":26,"context_line":"    \"/usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib\")"},{"line_number":27,"context_line":"COUCHDB_LOG_FILE \u003d \"/usr/local/var/log/couchdb/couch.log\""},{"line_number":28,"context_line":"COUCHDB_JAVASCRIPT \u003d \"/usr/local/share/couchdb/server/main.js\""}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_a1778d9e","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":18},"in_reply_to":"7af24918_cd3f9c85","updated":"2016-03-03 20:57:46.000000000","message":"My understanding is that the guest still needs to write them to the config file because they may be different on different operating systems. That\u0027s why they are here (eventually, the proper value would be looked up based on the underlying OS).","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"}],"trove/templates/couchdb/config.template":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[couchdb]"},{"line_number":2,"context_line":"database_dir \u003d /usr/local/var/lib/couchdb"},{"line_number":3,"context_line":"view_index_dir \u003d /usr/local/var/lib/couchdb"},{"line_number":4,"context_line":"util_driver_dir \u003d /usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib"},{"line_number":5,"context_line":"max_document_size \u003d 4294967296 ; 4 GB"},{"line_number":6,"context_line":"max_attachment_chunk_size \u003d 4294967296 ; 4GB"},{"line_number":7,"context_line":"os_process_timeout \u003d 5000 ; 5 seconds. for view and external servers."}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_471fd35a","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":73},"updated":"2016-02-01 16:34:00.000000000","message":"I don\u0027t think these should be exposed in the config template as the operator cannot really modify them without breaking the guest-agent (i.e. the operator does not have knowledge of the filesystem structure on the guest).\nThey may also be variable depending on the underlying OS. The templates are resolved before the guest\u0027s OS is known (in the API).\nThese paths (and other paths below) should be written in the guest-agent code where they can be easily overriden based on the OS.","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":2,"context_line":"database_dir \u003d /usr/local/var/lib/couchdb"},{"line_number":3,"context_line":"view_index_dir \u003d /usr/local/var/lib/couchdb"},{"line_number":4,"context_line":"util_driver_dir \u003d /usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib"},{"line_number":5,"context_line":"max_document_size \u003d 4294967296 ; 4 GB"},{"line_number":6,"context_line":"max_attachment_chunk_size \u003d 4294967296 ; 4GB"},{"line_number":7,"context_line":"os_process_timeout \u003d 5000 ; 5 seconds. for view and external servers."},{"line_number":8,"context_line":"max_dbs_open \u003d 100"},{"line_number":9,"context_line":"delayed_commits \u003d true"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_67b68ffa","line":6,"range":{"start_line":5,"start_character":0,"end_line":6,"end_character":44},"updated":"2016-02-01 16:34:00.000000000","message":"Are these values going to be constant irrespective of the underlying flavor?\nThe templates let you resolve the available RAM so that you can potentially make it relative to that.","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[httpd]"},{"line_number":14,"context_line":"port \u003d 5984"},{"line_number":15,"context_line":"bind_address \u003d 127.0.0.1"},{"line_number":16,"context_line":"authentication_handlers \u003d {couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth, default_authentication_handler}"},{"line_number":17,"context_line":"default_handler \u003d {couch_httpd_db, handle_request}"},{"line_number":18,"context_line":"WWW-Authenticate \u003d Basic realm\u003d\"administrator\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_07e1db2c","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":24},"updated":"2016-02-01 16:34:00.000000000","message":"This is overwritten in the guest. We may want to comment it out and note that any changes to this value will have no effect for that reason.","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":18,"context_line":"WWW-Authenticate \u003d Basic realm\u003d\"administrator\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[log]"},{"line_number":21,"context_line":"file \u003d /usr/local/var/log/couchdb/couch.log"},{"line_number":22,"context_line":"level \u003d info"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[couch_httpd_auth]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_273977d7","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":43},"updated":"2016-02-01 16:34:00.000000000","message":"ditto","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":27,"context_line":"require_valid_user \u003d false"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[query_servers]"},{"line_number":30,"context_line":"javascript \u003d /usr/local/bin/couchjs /usr/local/share/couchdb/server/main.js"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[query_server_config]"},{"line_number":33,"context_line":"reduce_limit \u003d true"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_e72eff8a","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":75},"updated":"2016-02-01 16:34:00.000000000","message":"ditto","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"}],"trove/templates/couchdb/validation-rules.json":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"81b6e9902a5ed36562995df27d0eb9c12d911367","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        {"},{"line_number":24,"context_line":"            \"name\": \"attachment_stream_buffer_size\","},{"line_number":25,"context_line":"            \"restart_required\": true,"},{"line_number":26,"context_line":"            \"type\": \"int\""},{"line_number":27,"context_line":"        },"},{"line_number":28,"context_line":"        {"},{"line_number":29,"context_line":"            \"name\": \" max_dbs_open\","}],"source_content_type":"application/json","patch_set":2,"id":"7a5de9d1_87070b81","line":26,"range":{"start_line":26,"start_character":21,"end_line":26,"end_character":24},"updated":"2016-02-01 16:34:00.000000000","message":"should be \u0027integer\u0027 (also see other occurrences below)","commit_id":"d920500f05fac31cee41b0e50df5f5240a721a88"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"d1ca29ed960ca03266c1c063f58defcea9e03810","unresolved":false,"context_lines":[{"line_number":349,"context_line":"            \"name\": \"compaction_daemon.min_file_size\","},{"line_number":350,"context_line":"            \"restart_required\": true,"},{"line_number":351,"context_line":"            \"type\": \"integer\""},{"line_number":352,"context_line":"        }"},{"line_number":353,"context_line":"        {"},{"line_number":354,"context_line":"            \"name\": \"couch_httpd_auth.use_users_db\","},{"line_number":355,"context_line":"            \"restart_required\": true,"},{"line_number":356,"context_line":"            \"type\": \"boolean\""}],"source_content_type":"application/json","patch_set":17,"id":"7af24918_97e0d3ce","line":353,"range":{"start_line":352,"start_character":8,"end_line":353,"end_character":9},"updated":"2016-03-03 21:41:45.000000000","message":"missing comma","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"}],"trove/tests/scenario/helpers/couchdb_helper.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"706ba03132f7da9677076e8d145e49fd22dbab81","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from trove.tests.scenario.helpers.test_helper import TestHelper"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"class CouchDBHelper(TestHelper):"},{"line_number":5,"context_line":"    def __init__(self, expected_override_name):"},{"line_number":6,"context_line":"        super(CouchDBHelper, self).__init__(expected_override_name)"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_21cfbab1","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":19},"updated":"2016-02-19 14:42:14.000000000","message":"This has to be CamelCase. The helper will be lookedup based on the capitalized datastore name - \"Couchdb\" - suffixed with \"Helper\" string. That\u0027s why it has to be \"CouchdbHelper\".","commit_id":"c73660efff5cd05def502ddb6c934f71537bd338"}],"trove/tests/unittests/guestagent/test_couchdb_manager.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"abcff5d96a7e732dba4b26b5e882da1378da69f1","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # verification/assertion"},{"line_number":118,"context_line":"        mock_status.begin_install.assert_any_call()"},{"line_number":119,"context_line":"        mock_app.install_if_needed.assert_any_call(packages)"},{"line_number":120,"context_line":"        mock_app.apply_initial_guestagent_configuration.assert_any_call()"},{"line_number":121,"context_line":"        mock_app.change_permissions.assert_any_call()"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_prepare_pkg(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_943b189c","line":120,"updated":"2016-03-02 16:08:35.000000000","message":"This gets called only if \u0027config_contents\u0027 is not None - see the PY27 failures.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"abcff5d96a7e732dba4b26b5e882da1378da69f1","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            configuration \u003d {\u0027config_contents\u0027: \u0027some junk\u0027}"},{"line_number":152,"context_line":"            self.manager.reset_configuration(self.context, configuration)"},{"line_number":153,"context_line":"        except Exception:"},{"line_number":154,"context_line":"            self.fail(\"reset_configuration raised exception unexpectedly.\")"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_rpc_ping(self):"},{"line_number":157,"context_line":"        output \u003d self.manager.rpc_ping(self.context)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_ef83a502","line":154,"updated":"2016-03-02 16:08:35.000000000","message":"This appears in PY27 logs. Unfortunately the message obfuscates the real cause. I\u0027d get rid of the try-except block here and let the exception bubble up. That way we can see what actually went wrong.\n\nI bet it\u0027s a missing mock on the configuration manager.\nYou can mock self.manager.app.configuration_manager.save_configuration:\n\nwith patch.object(self.manager.app.configuration_manager, \u0027save_configuration\u0027) as save_config_mock:\n    configuration \u003d {\u0027config_contents\u0027: \u0027some junk\u0027}\n    self.manager.reset_configuration(self.context, configuration)\n    save_config_mock.assert_called_once_with(\u0027some junk\u0027)","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"888d5946578f1e467bc3661c45c45b85446c3938","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            configuration \u003d {\u0027config_contents\u0027: \u0027some junk\u0027}"},{"line_number":152,"context_line":"            self.manager.reset_configuration(self.context, configuration)"},{"line_number":153,"context_line":"        except Exception:"},{"line_number":154,"context_line":"            self.fail(\"reset_configuration raised exception unexpectedly.\")"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_rpc_ping(self):"},{"line_number":157,"context_line":"        output \u003d self.manager.rpc_ping(self.context)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_f8f5f5ec","line":154,"in_reply_to":"7af24918_ef83a502","updated":"2016-03-03 10:51:49.000000000","message":"I think this test was written when reset_configuration was not implemented. This needs to be modified to reflect the newly implemented method. We also need to add a test for update_overrides method.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"04bc438361e3d5f0586b7bb9a5f633b8e4b1635f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            configuration \u003d {\u0027config_contents\u0027: \u0027some junk\u0027}"},{"line_number":152,"context_line":"            self.manager.reset_configuration(self.context, configuration)"},{"line_number":153,"context_line":"        except Exception:"},{"line_number":154,"context_line":"            self.fail(\"reset_configuration raised exception unexpectedly.\")"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_rpc_ping(self):"},{"line_number":157,"context_line":"        output \u003d self.manager.rpc_ping(self.context)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_41e20930","line":154,"in_reply_to":"7af24918_f8f5f5ec","updated":"2016-03-03 20:57:46.000000000","message":"It turns out the \u0027reset_configuration\u0027 method has already been implemented in the base Manager class. It no longer has to be overriden in this guest agent and tested here.","commit_id":"1401b90c4960f2f4c29519a794345529375dfb32"}]}
