)]}'
{"cinder/volume/drivers/datera.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"3b36e28bcd215e126454e328609db3eec862c7db","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                default\u003dFalse,"},{"line_number":59,"context_line":"                help\u003d\"ONLY FOR DEBUG/TESTING PURPOSES\\n\""},{"line_number":60,"context_line":"                     \"True to set replica_count to 1\")"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_42e2b304","line":61,"updated":"2016-08-08 22:50:01.000000000","message":"by removing these options entirely, this will break upgrade for deployments with your driver.","commit_id":"e01a02ead8d98ed19279b0fcf9231e97e94e10f3"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d604b48f15cc1f78e5017c2994cd60ba05a0c3b6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"from cinder.volume import qos_specs"},{"line_number":37,"context_line":"from cinder.volume import volume_types"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"LOG \u003d logging.getLogger()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"d_opts \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027datera_api_port\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_c9c37189","line":39,"updated":"2016-08-12 17:48:45.000000000","message":"why did you remove __name__ ?","commit_id":"4ab0f272f549cbcd66751296f669ddba0d2f52d8"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"7118ffdf62f1c9fd042f69116cc737ebd8918de3","unresolved":false,"context_lines":[{"line_number":683,"context_line":"                \u0027cinder_id\u0027: cinder_id,"},{"line_number":684,"context_line":"                \u0027extra_info\u0027: extra_info})"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        return results"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    def _is_manageable(self, app_inst):"},{"line_number":689,"context_line":"        if len(app_inst[\u0027storage_instances\u0027]) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_ce6d2906","line":686,"updated":"2016-08-15 17:28:23.000000000","message":"You might want to pass this into the crazy pagination/sorting helper thingy that the lvm driver uses (I did the same in my driver).","commit_id":"8b9c1d5f47299c69257531190c47d3ecd6690f9d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7b4d67924fc0ba87cf529335cbb11c646833b9ec","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    cfg.IntOpt(\u0027datera_num_replicas\u0027,"},{"line_number":50,"context_line":"               default\u003d\u00273\u0027,"},{"line_number":51,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":52,"context_line":"               help\u003d\u0027(DEPRECATED) Number of replicas to create of an inode.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027datera_503_timeout\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027120\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027Timeout for HTTP 503 retry messages\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_4f6b30b7","line":52,"updated":"2016-08-18 15:43:49.000000000","message":"Please use the deprecated_for_removal option:\n\nhttps://github.com/openstack/cinder/blob/0db18b8351255dfe5a8f0749aa5e0211d430848a/cinder/common/config.py#L96","commit_id":"ef3272330a4fd5333b3c2f01e08b9c1f1b121aee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7b4d67924fc0ba87cf529335cbb11c646833b9ec","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        existing_ref \u003d existing_ref[\u0027source-name\u0027]"},{"line_number":567,"context_line":"        if existing_ref.count(\":\") !\u003d 2:"},{"line_number":568,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":569,"context_line":"                \"existing_ref argument must be of this format:\""},{"line_number":570,"context_line":"                \"app_inst_name:storage_inst_name:vol_name\")"},{"line_number":571,"context_line":"        app_inst_name \u003d existing_ref.split(\":\")[0]"},{"line_number":572,"context_line":"        LOG.debug(\"Managing existing Datera volume %s.  Changing name to %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_6f66ecbb","line":569,"updated":"2016-08-18 15:43:49.000000000","message":"Exception should use _() translation for the message.","commit_id":"ef3272330a4fd5333b3c2f01e08b9c1f1b121aee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7b4d67924fc0ba87cf529335cbb11c646833b9ec","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        existing_ref \u003d existing_ref[\u0027source-name\u0027]"},{"line_number":595,"context_line":"        if existing_ref.count(\":\") !\u003d 2:"},{"line_number":596,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":597,"context_line":"                \"existing_ref argument must be of this format:\""},{"line_number":598,"context_line":"                \"app_inst_name:storage_inst_name:vol_name\")"},{"line_number":599,"context_line":"        app_inst_name, si_name, vol_name \u003d existing_ref.split(\":\")"},{"line_number":600,"context_line":"        app_inst \u003d self._issue_api_request("}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_4ffcd0b7","line":597,"updated":"2016-08-18 15:43:49.000000000","message":"Same.","commit_id":"ef3272330a4fd5333b3c2f01e08b9c1f1b121aee"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e412709e61025cecd722331a0c151015ea6cf756","unresolved":false,"context_lines":[{"line_number":570,"context_line":"                  \"app_inst_name:storage_inst_name:vol_name\"))"},{"line_number":571,"context_line":"        app_inst_name \u003d existing_ref.split(\":\")[0]"},{"line_number":572,"context_line":"        LOG.debug(\"Managing existing Datera volume %s.  Changing name to %s\","},{"line_number":573,"context_line":"                  existing_ref, _get_name(volume[\u0027id\u0027]))"},{"line_number":574,"context_line":"        data \u003d {\u0027name\u0027: _get_name(volume[\u0027id\u0027])}"},{"line_number":575,"context_line":"        self._issue_api_request(URL_TEMPLATES[\u0027ai_inst\u0027]().format("},{"line_number":576,"context_line":"            app_inst_name), method\u003d\u0027put\u0027, body\u003ddata)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_aa9f2b64","line":573,"updated":"2016-08-18 17:41:16.000000000","message":"Please use keyword parameters: \n\nhttp://docs.openstack.org/developer/hacking/#internationalization-i18n-strings","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e412709e61025cecd722331a0c151015ea6cf756","unresolved":false,"context_lines":[{"line_number":589,"context_line":"        existing_ref \u003d\u003d app_inst_name:storage_inst_name:vol_name"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"        :param volume:       Cinder volume to manage"},{"line_number":592,"context_line":"        :param existing_ref: Driver-specific information used to identify a"},{"line_number":593,"context_line":"        \"\"\""},{"line_number":594,"context_line":"        existing_ref \u003d existing_ref[\u0027source-name\u0027]"},{"line_number":595,"context_line":"        if existing_ref.count(\":\") !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_ca854708","line":592,"updated":"2016-08-18 17:41:16.000000000","message":"Unfinished sentence.","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e412709e61025cecd722331a0c151015ea6cf756","unresolved":false,"context_lines":[{"line_number":674,"context_line":"                vol_name \u003d vol[\u0027name\u0027]"},{"line_number":675,"context_line":"                size \u003d vol[\u0027size\u0027]"},{"line_number":676,"context_line":"                reference \u003d {\"source-name\": \"{}:{}:{}\".format("},{"line_number":677,"context_line":"                    ai_name, si_name, vol_name)}"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"            results.append({"},{"line_number":680,"context_line":"                \u0027reference\u0027: reference,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_cdcd61b9","line":677,"updated":"2016-08-18 17:41:16.000000000","message":"What about volumes not managed but also not safe_to_manage?  Can you find out \"reason_not_safe\"?","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"},{"author":{"_account_id":20721,"name":"Matt Smith (_alastor_)","email":"mss@datera.io","username":"alastor"},"change_message_id":"60c38b588841e8e9860ad3ef648995307047b31c","unresolved":false,"context_lines":[{"line_number":674,"context_line":"                vol_name \u003d vol[\u0027name\u0027]"},{"line_number":675,"context_line":"                size \u003d vol[\u0027size\u0027]"},{"line_number":676,"context_line":"                reference \u003d {\"source-name\": \"{}:{}:{}\".format("},{"line_number":677,"context_line":"                    ai_name, si_name, vol_name)}"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"            results.append({"},{"line_number":680,"context_line":"                \u0027reference\u0027: reference,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_781fc9b7","line":677,"in_reply_to":"3ac371cc_cdcd61b9","updated":"2016-08-18 18:11:08.000000000","message":"For this version management was not able to come to a consensus as to what should be safe to manage and what shouldn\u0027t on the back-end.  This will be addressed in the next version of the driver. :)","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e412709e61025cecd722331a0c151015ea6cf756","unresolved":false,"context_lines":[{"line_number":963,"context_line":""},{"line_number":964,"context_line":"    def _si_poll(self, volume, policies):"},{"line_number":965,"context_line":"        # Initial 4 second sleep required for some Datera versions"},{"line_number":966,"context_line":"        time.sleep(DEFAULT_SI_SLEEP)"},{"line_number":967,"context_line":"        TIMEOUT \u003d 10"},{"line_number":968,"context_line":"        retry \u003d 0"},{"line_number":969,"context_line":"        check_url \u003d URL_TEMPLATES[\u0027si_inst\u0027]("}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_aa772b07","line":966,"updated":"2016-08-18 17:41:16.000000000","message":"Suggest use eventlet.sleep.","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e412709e61025cecd722331a0c151015ea6cf756","unresolved":false,"context_lines":[{"line_number":975,"context_line":"            if si[\u0027op_state\u0027] \u003d\u003d \u0027available\u0027:"},{"line_number":976,"context_line":"                poll \u003d False"},{"line_number":977,"context_line":"            else:"},{"line_number":978,"context_line":"                time.sleep(1)"},{"line_number":979,"context_line":"        if retry \u003e\u003d TIMEOUT:"},{"line_number":980,"context_line":"            raise exception.VolumeDriverException("},{"line_number":981,"context_line":"                message\u003d_(\u0027Resource not ready.\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_ea6be3ef","line":978,"updated":"2016-08-18 17:41:16.000000000","message":"Same","commit_id":"21bedeac5bfa13dba30fd6c110a59c9c5ddd3314"}],"releasenotes/notes/datera-2.2-driver-update-28b97aa2aaf333b6.yaml":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"7118ffdf62f1c9fd042f69116cc737ebd8918de3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Capabilites List"},{"line_number":4,"context_line":"  - Extended Volume-Type Support"},{"line_number":5,"context_line":"  - Naming convention change"},{"line_number":6,"context_line":"  - Volume Manage/Unmanage support"},{"line_number":7,"context_line":"  - BoolOpt datera_debug_override_num_replicas was added"},{"line_number":8,"context_line":"deprecations:"},{"line_number":9,"context_line":"  - datera_num_replicas IntOpt was changed to a VolumeType"},{"line_number":10,"context_line":"    Extra Spec -- DF:replica_count"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3ac371cc_0e40e1a4","line":7,"range":{"start_line":3,"start_character":2,"end_line":7,"end_character":56},"updated":"2016-08-15 17:28:23.000000000","message":"Unfortunately all of these entries are taken out of context of the patch, which means for each one you probably want to add something like \"... for Datera Volume Drivers\"","commit_id":"8b9c1d5f47299c69257531190c47d3ecd6690f9d"}]}
