)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"221dec328d3f59043f51fa928475968b706f8fde","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Authored-By: Doug Shelley \u003cdoug@parelastic.com\u003e"},{"line_number":19,"context_line":"Depends-On: Id22d18a84a4ac104ff8af09959e8eb2ae0102e97"},{"line_number":20,"context_line":"Closes-Bug: 1373668"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Conflicts:"},{"line_number":23,"context_line":"\ttrove/taskmanager/manager.py"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"baa201ad_77d57042","line":20,"updated":"2014-09-29 18:48:24.000000000","message":"If you stick a # then LP will flag the bug with the change set.","commit_id":"a9fcd5eae95641e9633942f16f3bc5fafabfe8fb"}],"trove/guestagent/api.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"44909688964e5f428788a047fd2d24c4069b3eaf","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        return self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":330,"context_line":"                          snapshot_info\u003dsnapshot_info)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def attach_replica(self, snapshot, replica_config\u003dNone):"},{"line_number":333,"context_line":"        LOG.debug(\"Configuring instance %s to replicate from %s.\","},{"line_number":334,"context_line":"                  self.id, snapshot.get(\u0027master\u0027).get(\u0027id\u0027))"},{"line_number":335,"context_line":"        self._cast(\"attach_replica\", snapshot\u003dsnapshot,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_9c267b67","line":332,"updated":"2014-09-29 18:12:25.000000000","message":"Changing the RPC API here will break upgrade scenarios  so that a new control plane will not be able to talk to an older guest. \n\nCan we keep the RPC API the same, and put in a comment?\n\nThanks!","commit_id":"a9fcd5eae95641e9633942f16f3bc5fafabfe8fb"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"221dec328d3f59043f51fa928475968b706f8fde","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        return self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":330,"context_line":"                          snapshot_info\u003dsnapshot_info)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def attach_replica(self, snapshot, replica_config\u003dNone):"},{"line_number":333,"context_line":"        LOG.debug(\"Configuring instance %s to replicate from %s.\","},{"line_number":334,"context_line":"                  self.id, snapshot.get(\u0027master\u0027).get(\u0027id\u0027))"},{"line_number":335,"context_line":"        self._cast(\"attach_replica\", snapshot\u003dsnapshot,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_b75d18ec","line":332,"in_reply_to":"baa201ad_9c267b67","updated":"2014-09-29 18:48:24.000000000","message":"Should be straightforward to add a new attach_replica () and have a stub attach_replication_slave that will call attach_replica thereby not break the RPC API and still deliver the intent of this fix","commit_id":"a9fcd5eae95641e9633942f16f3bc5fafabfe8fb"}],"trove/instance/models.py":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"71fb2c56ce6019d45367e5121a710d0f1e26bbf9","unresolved":false,"context_lines":[{"line_number":870,"context_line":"        self.validate_can_perform_action()"},{"line_number":871,"context_line":"        LOG.info(_(\"Detaching instance %s from its replication source.\")"},{"line_number":872,"context_line":"                 % self.id)"},{"line_number":873,"context_line":"        if not self.slave_of_id:"},{"line_number":874,"context_line":"            raise exception.BadRequest(_(\"Instance %s is not a replica.\")"},{"line_number":875,"context_line":"                                       % self.id)"},{"line_number":876,"context_line":"        task_api.API(self.context).detach_replica(self.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_52d19b21","line":873,"range":{"start_line":873,"start_character":20,"end_line":873,"end_character":31},"updated":"2014-09-05 02:01:10.000000000","message":"I think this needs to be:\nif not self.replica_of_id","commit_id":"f795ea7b9349911ab73e1f59d9981b974169f909"}],"trove/instance/service.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a4c75b8156ded1c3b6f50b480d1f6450af7daaa3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        nics \u003d body[\u0027instance\u0027].get(\u0027nics\u0027)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        replica_of_id \u003d body[\u0027instance\u0027].get("},{"line_number":222,"context_line":"            # check for \u0027replica\u0027, fall back to previous name \u0027slave\u0027"},{"line_number":223,"context_line":"            \u0027replica_of\u0027, body[\u0027instance\u0027].get(\u0027slave_of\u0027))"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        instance \u003d models.Instance.create(context, name, flavor_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da9df570_40dd93df","line":222,"updated":"2014-09-25 15:14:41.000000000","message":"could we get rid of this comment?","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"8f712e24987bb26888aaff3da7c139ffe7052df7","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        nics \u003d body[\u0027instance\u0027].get(\u0027nics\u0027)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        replica_of_id \u003d body[\u0027instance\u0027].get("},{"line_number":222,"context_line":"            # check for \u0027replica\u0027, fall back to previous name \u0027slave\u0027"},{"line_number":223,"context_line":"            \u0027replica_of\u0027, body[\u0027instance\u0027].get(\u0027slave_of\u0027))"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        instance \u003d models.Instance.create(context, name, flavor_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_7af3a60a","line":222,"in_reply_to":"da9df570_40dd93df","updated":"2014-09-29 14:57:43.000000000","message":"I don\u0027t think so - it is actually describing what is happening. I think it is material to indicate why \"slave_of\" is still there.","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"}],"trove/taskmanager/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a4c75b8156ded1c3b6f50b480d1f6450af7daaa3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                        root_password, nics, overrides, replica_of_id):"},{"line_number":92,"context_line":"        instance_tasks \u003d FreshInstanceTasks.load(context, instance_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        snapshot \u003d ("},{"line_number":95,"context_line":"            instance_tasks.get_replication_snapshot(context, replica_of_id))"},{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            instance_tasks.create_instance(flavor, image_id, databases, users,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da9df570_20a32f50","line":94,"updated":"2014-09-25 15:14:41.000000000","message":"can be better formatted:\n\n     snapshot \u003d (instance_tasks.get_replication_snapshot(\n                      context,\n                      replica_of_id))","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"8f712e24987bb26888aaff3da7c139ffe7052df7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                        root_password, nics, overrides, replica_of_id):"},{"line_number":92,"context_line":"        instance_tasks \u003d FreshInstanceTasks.load(context, instance_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        snapshot \u003d ("},{"line_number":95,"context_line":"            instance_tasks.get_replication_snapshot(context, replica_of_id))"},{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            instance_tasks.create_instance(flavor, image_id, databases, users,"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_7acac6a2","line":94,"in_reply_to":"da9df570_20a32f50","updated":"2014-09-29 14:57:43.000000000","message":"thanks - done","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"}],"trove/tests/unittests/instance/test_instance_views.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a4c75b8156ded1c3b6f50b480d1f6450af7daaa3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.instance.root_password \u003d \u0027iloveyou\u0027"},{"line_number":62,"context_line":"        self.instance.get_visible_ip_addresses \u003d lambda: [\"1.2.3.4\"]"},{"line_number":63,"context_line":"        self.instance.replica_of_id \u003d None"},{"line_number":64,"context_line":"        self.instance.replicas \u003d []"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def tearDown(self):"},{"line_number":67,"context_line":"        super(InstanceDetailViewTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":10,"id":"da9df570_a0a55f48","line":64,"updated":"2014-09-25 15:14:41.000000000","message":"should be \u0027replica_list\u0027","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"8f712e24987bb26888aaff3da7c139ffe7052df7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.instance.root_password \u003d \u0027iloveyou\u0027"},{"line_number":62,"context_line":"        self.instance.get_visible_ip_addresses \u003d lambda: [\"1.2.3.4\"]"},{"line_number":63,"context_line":"        self.instance.replica_of_id \u003d None"},{"line_number":64,"context_line":"        self.instance.replicas \u003d []"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def tearDown(self):"},{"line_number":67,"context_line":"        super(InstanceDetailViewTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":10,"id":"baa201ad_7cdd5e42","line":64,"in_reply_to":"da9df570_a0a55f48","updated":"2014-09-29 14:57:43.000000000","message":"replica_list is intended to be private to the model. \u0027replicas\u0027 is exposed as the public property for accessing the list.","commit_id":"abcc1b3c7b83b8e8cdbf395bff15e9bee0caa0d6"}]}
