)]}'
{"cinder/volume/drivers/dell/dell_storagecenter_api.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e03fec72da9d3cf9de3cb53ed9428dd8b78d9f2b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        self.config \u003d config"},{"line_number":163,"context_line":"        # Now that active_backend_id is set on failover."},{"line_number":164,"context_line":"        # Use that if set.  Mark the backend as failed over."},{"line_number":165,"context_line":"        self.active_backend_id \u003d active_backend_id"},{"line_number":166,"context_line":"        self.ssn \u003d self.config.dell_sc_ssn"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def open_connection(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_70c96e78","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":50},"updated":"2016-03-01 22:27:17.000000000","message":"careful here... just remember that this can be None.","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"421a497e32ed886d22502dd905894894d54256f5","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        self.config \u003d config"},{"line_number":163,"context_line":"        # Now that active_backend_id is set on failover."},{"line_number":164,"context_line":"        # Use that if set.  Mark the backend as failed over."},{"line_number":165,"context_line":"        self.active_backend_id \u003d active_backend_id"},{"line_number":166,"context_line":"        self.ssn \u003d self.config.dell_sc_ssn"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def open_connection(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_d325ecab","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":50},"in_reply_to":"7af24918_70c96e78","updated":"2016-03-01 22:53:55.000000000","message":"I\u0027m counting on it being None when we aren\u0027t failed over.","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e03fec72da9d3cf9de3cb53ed9428dd8b78d9f2b","unresolved":false,"context_lines":[{"line_number":1746,"context_line":"        return None"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    def manage_replay(self, screplay, replayid):"},{"line_number":1749,"context_line":"        \"\"\"Basically renames the screplay and sets it to never expire."},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"        :param screplay: DellSC object."},{"line_number":1752,"context_line":"        :param replayid: New name for replay."}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_107aaa24","line":1749,"range":{"start_line":1749,"start_character":0,"end_line":1749,"end_character":70},"updated":"2016-03-01 22:27:17.000000000","message":"Sure... ok, if you say so :)","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"421a497e32ed886d22502dd905894894d54256f5","unresolved":false,"context_lines":[{"line_number":1746,"context_line":"        return None"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    def manage_replay(self, screplay, replayid):"},{"line_number":1749,"context_line":"        \"\"\"Basically renames the screplay and sets it to never expire."},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"        :param screplay: DellSC object."},{"line_number":1752,"context_line":"        :param replayid: New name for replay."}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_734cd870","line":1749,"range":{"start_line":1749,"start_character":0,"end_line":1749,"end_character":70},"in_reply_to":"7af24918_107aaa24","updated":"2016-03-01 22:53:55.000000000","message":"Seems to be doing that.","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"}],"cinder/volume/drivers/dell/dell_storagecenter_common.py":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"652ca852acd8ecb99889155a321f031f71dcc427","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"            _(\u0027replication_failover failed. \u0027"},{"line_number":1063,"context_line":"              \u0027Backend not configured for failover\u0027)))"},{"line_number":1064,"context_line":""},{"line_number":1065,"context_line":"    def get_replication_updates(self, context):"},{"line_number":1066,"context_line":"        # No idea what to do with this."},{"line_number":1067,"context_line":"        return []"},{"line_number":1068,"context_line":""},{"line_number":1069,"context_line":"    def _get_unmanaged_replay(self, api, volume_name, existing_ref):"},{"line_number":1070,"context_line":"        replay_name \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_f0d4d320","line":1067,"range":{"start_line":1065,"start_character":4,"end_line":1067,"end_character":17},"updated":"2016-02-29 23:33:09.000000000","message":"This can be deleted now that https://github.com/openstack/cinder/commit/2ed92b09d53efb252afef59c4f453b4f836d5968 landed","commit_id":"8c4647f56a1d7c57ce876b26597371b10021c19e"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"27295138a15baa94149c41c8843518931e68f5e3","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                freespacegb \u003d self._bytes_to_gb(freespace)"},{"line_number":579,"context_line":"                data[\u0027free_capacity_gb\u0027] \u003d freespacegb"},{"line_number":580,"context_line":"            data[\u0027QoS_support\u0027] \u003d False"},{"line_number":581,"context_line":"            data[\u0027replication_enabled\u0027] \u003d self.replication_enabled"},{"line_number":582,"context_line":"            if self.replication_enabled:"},{"line_number":583,"context_line":"                data[\u0027replication_type\u0027] \u003d [\u0027async\u0027, \u0027sync\u0027]"},{"line_number":584,"context_line":"                data[\u0027replication_count\u0027] \u003d len(self.backends)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            self._stats \u003d data"},{"line_number":587,"context_line":"            LOG.debug(\u0027Total cap %(total)s Free cap %(free)s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_297958fd","line":584,"range":{"start_line":581,"start_character":12,"end_line":584,"end_character":62},"updated":"2016-03-01 16:43:45.000000000","message":"In place of list_replication_targets, you can report the available targets as a stat, replication_targets. Then when you do \u0027cinder get-capabilities \u003chost\u003e\u0027 you will be able to see the available targets.","commit_id":"1433ba52430dc420e95d1c84cf21ac2d4997afdd"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"671c1428c94eb2b849abb228ab03b8d4504f90b1","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                freespacegb \u003d self._bytes_to_gb(freespace)"},{"line_number":579,"context_line":"                data[\u0027free_capacity_gb\u0027] \u003d freespacegb"},{"line_number":580,"context_line":"            data[\u0027QoS_support\u0027] \u003d False"},{"line_number":581,"context_line":"            data[\u0027replication_enabled\u0027] \u003d self.replication_enabled"},{"line_number":582,"context_line":"            if self.replication_enabled:"},{"line_number":583,"context_line":"                data[\u0027replication_type\u0027] \u003d [\u0027async\u0027, \u0027sync\u0027]"},{"line_number":584,"context_line":"                data[\u0027replication_count\u0027] \u003d len(self.backends)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            self._stats \u003d data"},{"line_number":587,"context_line":"            LOG.debug(\u0027Total cap %(total)s Free cap %(free)s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_ac02963c","line":584,"range":{"start_line":581,"start_character":12,"end_line":584,"end_character":62},"in_reply_to":"7af24918_297958fd","updated":"2016-03-01 17:00:15.000000000","message":"Done","commit_id":"1433ba52430dc420e95d1c84cf21ac2d4997afdd"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e03fec72da9d3cf9de3cb53ed9428dd8b78d9f2b","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                freespacegb \u003d self._bytes_to_gb(freespace)"},{"line_number":579,"context_line":"                data[\u0027free_capacity_gb\u0027] \u003d freespacegb"},{"line_number":580,"context_line":"            data[\u0027QoS_support\u0027] \u003d False"},{"line_number":581,"context_line":"            data[\u0027replication_enabled\u0027] \u003d self.replication_enabled"},{"line_number":582,"context_line":"            if self.replication_enabled:"},{"line_number":583,"context_line":"                data[\u0027replication_type\u0027] \u003d [\u0027async\u0027, \u0027sync\u0027]"},{"line_number":584,"context_line":"                data[\u0027replication_count\u0027] \u003d len(self.backends)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_90099a98","line":581,"range":{"start_line":581,"start_character":0,"end_line":581,"end_character":66},"updated":"2016-03-01 22:27:17.000000000","message":"ahhh!  There you are!","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e03fec72da9d3cf9de3cb53ed9428dd8b78d9f2b","unresolved":false,"context_lines":[{"line_number":1057,"context_line":"                        else:"},{"line_number":1058,"context_line":"                            # Not a replicated volume. Try to unmap it."},{"line_number":1059,"context_line":"                            scvolume \u003d api.find_volume(volume[\u0027id\u0027])"},{"line_number":1060,"context_line":"                            api.remove_mappings(scvolume)"},{"line_number":1061,"context_line":"                    # this is it."},{"line_number":1062,"context_line":"                    return destssn, volume_updates"},{"line_number":1063,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_90651a47","line":1060,"range":{"start_line":1060,"start_character":0,"end_line":1060,"end_character":57},"updated":"2016-03-01 22:27:17.000000000","message":"You should probably provide an update to put the volume in error state when it\u0027s not replicated (failing over) because you\u0027re getting ready to switch over and make it unavailable for users.","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"421a497e32ed886d22502dd905894894d54256f5","unresolved":false,"context_lines":[{"line_number":1057,"context_line":"                        else:"},{"line_number":1058,"context_line":"                            # Not a replicated volume. Try to unmap it."},{"line_number":1059,"context_line":"                            scvolume \u003d api.find_volume(volume[\u0027id\u0027])"},{"line_number":1060,"context_line":"                            api.remove_mappings(scvolume)"},{"line_number":1061,"context_line":"                    # this is it."},{"line_number":1062,"context_line":"                    return destssn, volume_updates"},{"line_number":1063,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_337d301d","line":1060,"range":{"start_line":1060,"start_character":0,"end_line":1060,"end_character":57},"in_reply_to":"7af24918_90651a47","updated":"2016-03-01 22:53:55.000000000","message":"Done","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e03fec72da9d3cf9de3cb53ed9428dd8b78d9f2b","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                existing_ref\u003dexisting_ref, reason\u003dmsg)"},{"line_number":1098,"context_line":"        return screplay"},{"line_number":1099,"context_line":""},{"line_number":1100,"context_line":"    def manage_existing_snapshot(self, snapshot, existing_ref):"},{"line_number":1101,"context_line":"        \"\"\"Brings an existing backend storage object under Cinder management."},{"line_number":1102,"context_line":""},{"line_number":1103,"context_line":"        existing_ref is passed straight through from the API request\u0027s"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_30036644","line":1100,"range":{"start_line":1100,"start_character":0,"end_line":1100,"end_character":63},"updated":"2016-03-01 22:27:17.000000000","message":"Not completely clear on the need for the manage changes that follow here.","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"421a497e32ed886d22502dd905894894d54256f5","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                existing_ref\u003dexisting_ref, reason\u003dmsg)"},{"line_number":1098,"context_line":"        return screplay"},{"line_number":1099,"context_line":""},{"line_number":1100,"context_line":"    def manage_existing_snapshot(self, snapshot, existing_ref):"},{"line_number":1101,"context_line":"        \"\"\"Brings an existing backend storage object under Cinder management."},{"line_number":1102,"context_line":""},{"line_number":1103,"context_line":"        existing_ref is passed straight through from the API request\u0027s"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_b3182086","line":1100,"range":{"start_line":1100,"start_character":0,"end_line":1100,"end_character":63},"in_reply_to":"7af24918_30036644","updated":"2016-03-01 22:53:55.000000000","message":"I coded support for managing snapshots ages ago.  I don\u0027t think anyone put support in the cinder client for them but I got tired of them just hanging around.  So added here.  ManageableSnapshotsVD, or similar...","commit_id":"f57c722e9c32741ddc2dd0b0e266fbc072e923bc"}]}
