)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e4b661f64705907016c90bcf52fb7463364a48d9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adriano Rosso \u003cadriano.rosso@fit-tecnologia.org.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-25 10:51:37 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Deprecating XML config file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently HNAS drivers use an external XML configuration file."},{"line_number":10,"context_line":"This patch will deprecate this file and get all the configurations"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"9abb7d3a_3702ee0b","line":7,"updated":"2016-05-31 13:46:50.000000000","message":"It may also be nice to prefix the summary with HNAS:","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adriano Rosso \u003cadriano.rosso@fit-tecnologia.org.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-25 10:51:37 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Deprecating XML config file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently HNAS drivers use an external XML configuration file."},{"line_number":10,"context_line":"This patch will deprecate this file and get all the configurations"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"7aa08908_68f878e6","line":7,"in_reply_to":"9abb7d3a_3702ee0b","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"69bffee011b4f78eca9fdc7306c30429b1cff983","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Co-Authored-By: Alyson Rosa \u003calyson.rodrigues.rosa@gmail.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":"Depends-On: I1b5d5155306c39c528af4037a5f54cf3d4dc1ffa"},{"line_number":17,"context_line":"Change-Id: I00f4ae5ccd99f8f5da12e687ef0dc9cdb1717b3b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"9ad45d7e_41b2fae5","line":16,"updated":"2016-08-11 19:14:51.000000000","message":"It was already merged, I think you can remove this if you  upload another ps.","commit_id":"3f292f024e451fa29dbd123142802e71b98a4cc0"}],"cinder/tests/unit/test_hitachi_hnas_backend.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"bab6814e_9b43736c","updated":"2016-05-24 12:38:23.000000000","message":"We don\u0027t need to modify that file, right? Keeping changes as small as possible is making them easier to review.","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"bab6814e_68ca2b51","in_reply_to":"bab6814e_9b43736c","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"}],"cinder/tests/unit/test_hitachi_hnas_iscsi.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    def test_manage_existing(self):"},{"line_number":552,"context_line":"        self.volume.volume_type \u003d self.volume_type"},{"line_number":553,"context_line":"        existing_vol_ref \u003d {\u0027source-name\u0027: \u0027fs2/volume-cinder\u0027}"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        metadata \u003d {\u0027service_label\u0027: \u0027default\u0027}"},{"line_number":556,"context_line":"        version_info \u003d {\u0027mac\u0027: \u002783-68-96-AA-DA-5D\u0027}"},{"line_number":557,"context_line":"        expected_out \u003d {"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_5b30eb07","line":554,"updated":"2016-05-24 12:38:23.000000000","message":"Same with newlines in this file.","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    def test_manage_existing(self):"},{"line_number":552,"context_line":"        self.volume.volume_type \u003d self.volume_type"},{"line_number":553,"context_line":"        existing_vol_ref \u003d {\u0027source-name\u0027: \u0027fs2/volume-cinder\u0027}"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        metadata \u003d {\u0027service_label\u0027: \u0027default\u0027}"},{"line_number":556,"context_line":"        version_info \u003d {\u0027mac\u0027: \u002783-68-96-AA-DA-5D\u0027}"},{"line_number":557,"context_line":"        expected_out \u003d {"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_48680722","line":554,"in_reply_to":"bab6814e_5b30eb07","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"}],"cinder/tests/unit/test_hitachi_hnas_utils.py":[{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"297f864c91559f2c34379b781eed9bbe8e30ec67","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027fs\u0027: {\u0027silver\u0027: \u0027silver\u0027,"},{"line_number":48,"context_line":"           \u0027easy-stack\u0027: \u0027easy-stack\u0027},"},{"line_number":49,"context_line":"    \u0027ssh_port\u0027: \u002722\u0027,"},{"line_number":50,"context_line":"    \u0027chap_enabled\u0027: None,"},{"line_number":51,"context_line":"    \u0027cluster_admin_ip0\u0027: None,"},{"line_number":52,"context_line":"    \u0027ssh_private_key\u0027: None,"},{"line_number":53,"context_line":"    \u0027mgmt_ip0\u0027: \u0027172.24.44.15\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"dab17558_e25a8b4f","line":50,"range":{"start_line":50,"start_character":4,"end_line":50,"end_character":25},"updated":"2016-05-09 18:07:23.000000000","message":"Now, it should be \u0027True\u0027 by default.","commit_id":"2b0b2035f4c20d80195bf15d3e23caac58540b4c"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"4b8fcbe8abe478f6f16c5600db708f69bd9e10e2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027fs\u0027: {\u0027silver\u0027: \u0027silver\u0027,"},{"line_number":48,"context_line":"           \u0027easy-stack\u0027: \u0027easy-stack\u0027},"},{"line_number":49,"context_line":"    \u0027ssh_port\u0027: \u002722\u0027,"},{"line_number":50,"context_line":"    \u0027chap_enabled\u0027: None,"},{"line_number":51,"context_line":"    \u0027cluster_admin_ip0\u0027: None,"},{"line_number":52,"context_line":"    \u0027ssh_private_key\u0027: None,"},{"line_number":53,"context_line":"    \u0027mgmt_ip0\u0027: \u0027172.24.44.15\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"dab17558_a9ae7f95","line":50,"range":{"start_line":50,"start_character":4,"end_line":50,"end_character":25},"in_reply_to":"dab17558_e25a8b4f","updated":"2016-05-10 12:06:34.000000000","message":"Done","commit_id":"2b0b2035f4c20d80195bf15d3e23caac58540b4c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5ecadc3604fb42abbf4ed158741a92f6aac2e486","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def setUp(self):"},{"line_number":163,"context_line":"        super(HNASUtilsTest, self).setUp()"},{"line_number":164,"context_line":"        CONF.hnas_username \u003d \u0027supervisor\u0027"},{"line_number":165,"context_line":"        CONF.hnas_password \u003d \u0027supervisor\u0027"},{"line_number":166,"context_line":"        CONF.hnas_mgmt_ip0 \u003d \u0027172.24.44.15\u0027"},{"line_number":167,"context_line":"        CONF.hnas_svc0_volume_type \u003d \u0027default\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_14f516ec","line":164,"updated":"2016-07-12 10:12:51.000000000","message":"Please, do not change global config in tests. You have to use mocks instead","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"167d556b553a16ce2a2ed0625b28155db6eced82","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def setUp(self):"},{"line_number":163,"context_line":"        super(HNASUtilsTest, self).setUp()"},{"line_number":164,"context_line":"        CONF.hnas_username \u003d \u0027supervisor\u0027"},{"line_number":165,"context_line":"        CONF.hnas_password \u003d \u0027supervisor\u0027"},{"line_number":166,"context_line":"        CONF.hnas_mgmt_ip0 \u003d \u0027172.24.44.15\u0027"},{"line_number":167,"context_line":"        CONF.hnas_svc0_volume_type \u003d \u0027default\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_8c1a03c5","line":164,"in_reply_to":"1aa78d24_14f516ec","updated":"2016-07-14 20:23:27.000000000","message":"Done","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"}],"cinder/volume/drivers/hitachi/hnas_iscsi.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from cinder.volume import utils"},{"line_number":34,"context_line":"from cinder.volume import volume_types"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"HNAS_ISCSI_VERSION \u003d \u00275.1.0\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_e2464fbe","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":27},"updated":"2016-03-21 17:49:38.000000000","message":"5.0.0","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from cinder.volume import utils"},{"line_number":34,"context_line":"from cinder.volume import volume_types"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"HNAS_ISCSI_VERSION \u003d \u00275.1.0\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_3f68fa86","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":27},"in_reply_to":"fa0719c6_e2464fbe","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"iSCSI_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hds_hnas_iscsi_config_file\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_iscsi_conf.xml\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Configuration file for HNAS iSCSI cinder plugin\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027hnas_iscsi_mgmt_ip0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_c226ab15","line":41,"range":{"start_line":41,"start_character":16,"end_line":41,"end_character":42},"updated":"2016-03-21 17:49:38.000000000","message":"hnas_config_file","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"iSCSI_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hds_hnas_iscsi_config_file\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_iscsi_conf.xml\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Configuration file for HNAS iSCSI cinder plugin\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027hnas_iscsi_mgmt_ip0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_7fda724d","line":41,"range":{"start_line":41,"start_character":16,"end_line":41,"end_character":42},"in_reply_to":"fa0719c6_c226ab15","updated":"2016-03-28 19:44:24.000000000","message":"hds_hnas_iscsi_config_file\" is the original name of this parameter. I\u0027ve changed this in the previous patches, but then I realized that it would break drivers configuration while upgrading","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    Version 5.0.0: Code cleaning up"},{"line_number":115,"context_line":"                   New communication interface between the driver and HNAS"},{"line_number":116,"context_line":"                   Updated to use versioned objects"},{"line_number":117,"context_line":"    Version 5.1.0: Deprecated XML config file"},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_dcf981ca","line":117,"range":{"start_line":117,"start_character":12,"end_line":117,"end_character":17},"updated":"2016-03-21 17:49:38.000000000","message":"Lets use only one version change per release.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    Version 5.0.0: Code cleaning up"},{"line_number":115,"context_line":"                   New communication interface between the driver and HNAS"},{"line_number":116,"context_line":"                   Updated to use versioned objects"},{"line_number":117,"context_line":"    Version 5.1.0: Deprecated XML config file"},{"line_number":118,"context_line":"    \"\"\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_5ff04ec9","line":117,"range":{"start_line":117,"start_character":12,"end_line":117,"end_character":17},"in_reply_to":"fa0719c6_dcf981ca","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"cd94e51456e489d61f1bf04fb263c2fd10199654","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                   Removed the option to use local SSC (ssh_enabled\u003dFalse)"},{"line_number":82,"context_line":"                   Updated to use versioned objects"},{"line_number":83,"context_line":"                   Changed the class name to HNASISCSIDriver"},{"line_number":84,"context_line":"                   Deprecated XML config file"},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a1531f4_54e28ca0","line":84,"updated":"2016-04-15 08:29:48.000000000","message":"Should we increase driver version?","commit_id":"4a25529a27d3151d8f299d0b954fafd581945008"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"101ceb666ddc6f202b25f610d5985bcd248c9513","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                   Removed the option to use local SSC (ssh_enabled\u003dFalse)"},{"line_number":82,"context_line":"                   Updated to use versioned objects"},{"line_number":83,"context_line":"                   Changed the class name to HNASISCSIDriver"},{"line_number":84,"context_line":"                   Deprecated XML config file"},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_f3bab1bf","line":84,"in_reply_to":"3a1531f4_54e28ca0","updated":"2016-04-15 20:32:37.000000000","message":"We decide to use only 1 version per release and not update this in every bug fix or feature implemented anymore.","commit_id":"4a25529a27d3151d8f299d0b954fafd581945008"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"297f864c91559f2c34379b781eed9bbe8e30ec67","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    \u0027plugin. This is not needed if you fill all \u0027"},{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d \u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"},{"line_number":49,"context_line":"                    \u0027iSCSI target or not.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_svc0_iscsi_ip\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"dab17558_426ef795","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":24},"updated":"2016-05-09 18:07:23.000000000","message":"I think this space between kw/parameter is breaking pep8.","commit_id":"2b0b2035f4c20d80195bf15d3e23caac58540b4c"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"4b8fcbe8abe478f6f16c5600db708f69bd9e10e2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    \u0027plugin. This is not needed if you fill all \u0027"},{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d \u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"},{"line_number":49,"context_line":"                    \u0027iSCSI target or not.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_svc0_iscsi_ip\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"dab17558_89657b1f","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":24},"in_reply_to":"dab17558_426ef795","updated":"2016-05-10 12:06:34.000000000","message":"Done","commit_id":"2b0b2035f4c20d80195bf15d3e23caac58540b4c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"iSCSI_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hds_hnas_iscsi_config_file\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_iscsi_conf.xml\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Legacy configuration file for HNAS iSCSI Cinder \u0027"},{"line_number":44,"context_line":"                    \u0027plugin. This is not needed if you fill all \u0027"},{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_4651320e","line":45,"range":{"start_line":41,"start_character":0,"end_line":45,"end_character":52},"updated":"2016-05-24 12:38:23.000000000","message":"Please mark it with deprecated_for_removal\u003dTrue [1].\n\n[1] http://docs.openstack.org/developer/oslo.config/opts.html#oslo_config.cfg.Opt","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"iSCSI_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hds_hnas_iscsi_config_file\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_iscsi_conf.xml\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Legacy configuration file for HNAS iSCSI Cinder \u0027"},{"line_number":44,"context_line":"                    \u0027plugin. This is not needed if you fill all \u0027"},{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_cb019106","line":45,"range":{"start_line":41,"start_character":0,"end_line":45,"end_character":52},"in_reply_to":"bab6814e_4651320e","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"},{"line_number":49,"context_line":"                    \u0027iSCSI target or not.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_svc0_iscsi_ip\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Service 0 iSCSI IP\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_06b60a3d","line":48,"updated":"2016-05-24 12:38:23.000000000","message":"space missing?","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027configuration on cinder.conf\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027hnas_chap_enabled\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027True\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027Whether the chap authentication is enabled in the\u0027"},{"line_number":49,"context_line":"                    \u0027iSCSI target or not.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_svc0_iscsi_ip\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Service 0 iSCSI IP\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_4b0e4133","line":48,"in_reply_to":"bab6814e_06b60a3d","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            self.configuration.append_config_values("},{"line_number":107,"context_line":"                hnas_utils.drivers_common_opts)"},{"line_number":108,"context_line":"            self.configuration.append_config_values(iSCSI_OPTS)"},{"line_number":109,"context_line":"            self.config \u003d {}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            # Trying to get HNAS configuration from cinder.conf"},{"line_number":112,"context_line":"            self.config \u003d hnas_utils.read_cinder_conf("}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_f7d066f8","line":109,"updated":"2016-05-31 13:46:07.000000000","message":"This should be inited to {} before this if block.  Please move it up to the top.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            self.configuration.append_config_values("},{"line_number":107,"context_line":"                hnas_utils.drivers_common_opts)"},{"line_number":108,"context_line":"            self.configuration.append_config_values(iSCSI_OPTS)"},{"line_number":109,"context_line":"            self.config \u003d {}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            # Trying to get HNAS configuration from cinder.conf"},{"line_number":112,"context_line":"            self.config \u003d hnas_utils.read_cinder_conf("}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_488f7c23","line":109,"in_reply_to":"9abb7d3a_f7d066f8","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"}],"cinder/volume/drivers/hitachi/hnas_nfs.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"NFS_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_5c8f3123","line":47,"range":{"start_line":47,"start_character":16,"end_line":47,"end_character":39},"updated":"2016-03-21 17:49:38.000000000","message":"hnas_nfs_config_file","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"NFS_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_0c02350b","line":47,"range":{"start_line":47,"start_character":16,"end_line":47,"end_character":39},"in_reply_to":"fa0719c6_5c8f3123","updated":"2016-03-28 19:44:24.000000000","message":"\"hds_hnas_nfs_config_file\" is the original name of this parameter. I\u0027ve changed this in the previous patches, but then I realized that it would break drivers configuration while upgrading.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":46,"context_line":"NFS_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_273179a3","line":49,"range":{"start_line":49,"start_character":21,"end_line":49,"end_character":66},"updated":"2016-03-21 17:49:38.000000000","message":"\u0027Legacy configuration file for HNAS NFS Cinder plugin. This is not needed if you fill all configuration on cinder.conf\u0027","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":46,"context_line":"NFS_OPTS \u003d ["},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_071ccebf","line":49,"range":{"start_line":49,"start_character":21,"end_line":49,"end_character":66},"in_reply_to":"fa0719c6_273179a3","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_876e85c7","line":51,"range":{"start_line":51,"start_character":21,"end_line":51,"end_character":75},"updated":"2016-03-21 17:49:38.000000000","message":"\u0027Management IP address of HNAS. This can be any IP in the admin address on HNAS or the SMU IP.\u0027","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":48,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_c78816c8","line":51,"range":{"start_line":51,"start_character":21,"end_line":51,"end_character":75},"in_reply_to":"fa0719c6_876e85c7","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_1cfdb93a","line":52,"updated":"2016-03-21 17:49:38.000000000","message":"Can you try to use: required\u003dTrue? Will reduce the code to checking that.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               help\u003d\u0027Configuration file for HNAS NFS cinder plugin\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_dff1fe02","line":52,"in_reply_to":"fa0719c6_1cfdb93a","updated":"2016-03-28 19:44:24.000000000","message":"I tested the suggestion and it didn\u0027t work as expected. So, the parameters are all being checked in the hnas_utils.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_7f25c7a9","line":53,"range":{"start_line":53,"start_character":16,"end_line":53,"end_character":28},"updated":"2016-03-21 17:49:38.000000000","message":"This is very misleading. Can make the user think that this is related to some NFS command.\nhnas_nfs_cmd -\u003e hnas_ssc_cmd","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_mgmt_ip0\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027Management Port 0 IP address. Should be the IP address \u0027"},{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_ffa20298","line":53,"range":{"start_line":53,"start_character":16,"end_line":53,"end_character":28},"in_reply_to":"fa0719c6_7f25c7a9","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"},{"line_number":57,"context_line":"               help\u003d\u0027HNAS username\u0027),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_password\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_27e219d6","line":55,"range":{"start_line":55,"start_character":21,"end_line":55,"end_character":22},"updated":"2016-03-21 17:49:38.000000000","message":"Space","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                    \u0027of the \"Admin\" EVS.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cmd\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"},{"line_number":57,"context_line":"               help\u003d\u0027HNAS username\u0027),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_password\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_f2419aaa","line":55,"range":{"start_line":55,"start_character":21,"end_line":55,"end_character":22},"in_reply_to":"fa0719c6_27e219d6","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"},{"line_number":57,"context_line":"               help\u003d\u0027HNAS username\u0027),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_password\u0027,"},{"line_number":59,"context_line":"               help\u003d\u0027HNAS password\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_27097996","line":57,"range":{"start_line":57,"start_character":26,"end_line":57,"end_character":34},"updated":"2016-03-21 17:49:38.000000000","message":"username.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027 Command to communicate to HNAS array. \u0027),"},{"line_number":56,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_username\u0027,"},{"line_number":57,"context_line":"               help\u003d\u0027HNAS username\u0027),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_password\u0027,"},{"line_number":59,"context_line":"               help\u003d\u0027HNAS password\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_920f7e87","line":57,"range":{"start_line":57,"start_character":26,"end_line":57,"end_character":34},"in_reply_to":"fa0719c6_27097996","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               help\u003d\u0027HNAS password\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"},{"line_number":61,"context_line":"               default\u003dFalse,"},{"line_number":62,"context_line":"               help\u003d\u0027 Enables SSH authentication between Block Storage \u0027"},{"line_number":63,"context_line":"                    \u0027host and the SMU. \u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_port\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_e71dc1be","line":62,"range":{"start_line":62,"start_character":21,"end_line":62,"end_character":22},"updated":"2016-03-21 17:49:38.000000000","message":"space","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               help\u003d\u0027HNAS password\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"},{"line_number":61,"context_line":"               default\u003dFalse,"},{"line_number":62,"context_line":"               help\u003d\u0027 Enables SSH authentication between Block Storage \u0027"},{"line_number":63,"context_line":"                    \u0027host and the SMU. \u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_port\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_b258c28b","line":62,"range":{"start_line":62,"start_character":21,"end_line":62,"end_character":22},"in_reply_to":"fa0719c6_e71dc1be","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"},{"line_number":61,"context_line":"               default\u003dFalse,"},{"line_number":62,"context_line":"               help\u003d\u0027 Enables SSH authentication between Block Storage \u0027"},{"line_number":63,"context_line":"                    \u0027host and the SMU. \u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_port\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"},{"line_number":66,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_private_key\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_a7510965","line":63,"range":{"start_line":63,"start_character":26,"end_line":63,"end_character":37},"updated":"2016-03-21 17:49:38.000000000","message":"...and HNAS the SMU.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_enabled\u0027,"},{"line_number":61,"context_line":"               default\u003dFalse,"},{"line_number":62,"context_line":"               help\u003d\u0027 Enables SSH authentication between Block Storage \u0027"},{"line_number":63,"context_line":"                    \u0027host and the SMU. \u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_port\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"},{"line_number":66,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_private_key\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_925dbe7b","line":63,"range":{"start_line":63,"start_character":26,"end_line":63,"end_character":37},"in_reply_to":"fa0719c6_a7510965","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_private_key\u0027,"},{"line_number":67,"context_line":"               help\u003d\u0027Path to the SSH private key used to authenticate \u0027"},{"line_number":68,"context_line":"                    \u0027in HNAS SMU.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_volume_type\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027NFS volume type\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_47958de2","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":36},"updated":"2016-03-21 17:49:38.000000000","message":"Each svc should have a volume type.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_ssh_private_key\u0027,"},{"line_number":67,"context_line":"               help\u003d\u0027Path to the SSH private key used to authenticate \u0027"},{"line_number":68,"context_line":"                    \u0027in HNAS SMU.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_volume_type\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027NFS volume type\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_8dae3f96","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":36},"in_reply_to":"fa0719c6_47958de2","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":70,"context_line":"               help\u003d\u0027NFS volume type\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"},{"line_number":73,"context_line":"               help\u003d\u0027The IP of the HNAS cluster admin.\u0027),"},{"line_number":74,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_volume_type\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Service 0 volume type\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_hdp\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_4763cd1a","line":73,"range":{"start_line":73,"start_character":21,"end_line":73,"end_character":55},"updated":"2016-03-21 17:49:38.000000000","message":"The IP of the HNAS cluster admin. Required only for HNAS multi-cluster setups.","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":70,"context_line":"               help\u003d\u0027NFS volume type\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"},{"line_number":73,"context_line":"               help\u003d\u0027The IP of the HNAS cluster admin.\u0027),"},{"line_number":74,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_volume_type\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Service 0 volume type\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_hdp\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_cdc9575b","line":73,"range":{"start_line":73,"start_character":21,"end_line":73,"end_character":55},"in_reply_to":"fa0719c6_4763cd1a","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"},{"line_number":73,"context_line":"               help\u003d\u0027The IP of the HNAS cluster admin.\u0027),"},{"line_number":74,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_volume_type\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Service 0 volume type\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_hdp\u0027,"},{"line_number":77,"context_line":"               help\u003d\u0027Service 0 HDP\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_a210d74f","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":41},"updated":"2016-03-21 17:49:38.000000000","message":"hnas_svc0_volume_type","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_cluster_admin_ip0\u0027,"},{"line_number":72,"context_line":"               default\u003dNone,"},{"line_number":73,"context_line":"               help\u003d\u0027The IP of the HNAS cluster admin.\u0027),"},{"line_number":74,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_volume_type\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Service 0 volume type\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027hnas_nfs_svc0_hdp\u0027,"},{"line_number":77,"context_line":"               help\u003d\u0027Service 0 HDP\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_0df86f48","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":41},"in_reply_to":"fa0719c6_a210d74f","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"NFS_OPTS \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Legacy configuration file for HNAS NFS Cinder plugin. \u0027"},{"line_number":48,"context_line":"                    \u0027This is not needed if you fill all configuration on \u0027"},{"line_number":49,"context_line":"                    \u0027cinder.conf\u0027)"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_06bbaa0f","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":34},"updated":"2016-05-24 12:38:23.000000000","message":"Same here, please add deprecated_for_removal\u003dTrue.","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"NFS_OPTS \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hds_hnas_nfs_config_file\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/opt/hds/hnas/cinder_nfs_conf.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Legacy configuration file for HNAS NFS Cinder plugin. \u0027"},{"line_number":48,"context_line":"                    \u0027This is not needed if you fill all configuration on \u0027"},{"line_number":49,"context_line":"                    \u0027cinder.conf\u0027)"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_eb4c5578","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":34},"in_reply_to":"bab6814e_06bbaa0f","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"}],"cinder/volume/drivers/hitachi/hnas_utils.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    :param config_opts: Configuration object that contains the information"},{"line_number":201,"context_line":"    needed by HNAS driver"},{"line_number":202,"context_line":"    :param dv_type: The type of the driver (NFS, iSCSI...)"},{"line_number":203,"context_line":"    :returns: Dictionary with the driver configuration"},{"line_number":204,"context_line":"    \"\"\""},{"line_number":205,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_44b74839","line":202,"range":{"start_line":202,"start_character":43,"end_line":202,"end_character":58},"updated":"2016-03-21 17:49:38.000000000","message":"(nfs or iscsi)","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    :param config_opts: Configuration object that contains the information"},{"line_number":201,"context_line":"    needed by HNAS driver"},{"line_number":202,"context_line":"    :param dv_type: The type of the driver (NFS, iSCSI...)"},{"line_number":203,"context_line":"    :returns: Dictionary with the driver configuration"},{"line_number":204,"context_line":"    \"\"\""},{"line_number":205,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_bf3ecad7","line":202,"range":{"start_line":202,"start_character":43,"end_line":202,"end_character":58},"in_reply_to":"fa0719c6_44b74839","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        if config[param] is not None:"},{"line_number":225,"context_line":"            break"},{"line_number":226,"context_line":"    else:"},{"line_number":227,"context_line":"        return"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    # Getting the optional parameters from cinder.conf"},{"line_number":230,"context_line":"    config[\u0027ssh_enabled\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_a40584c3","line":227,"range":{"start_line":227,"start_character":8,"end_line":227,"end_character":14},"updated":"2016-03-21 17:49:38.000000000","message":"return None","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        if config[param] is not None:"},{"line_number":225,"context_line":"            break"},{"line_number":226,"context_line":"    else:"},{"line_number":227,"context_line":"        return"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    # Getting the optional parameters from cinder.conf"},{"line_number":230,"context_line":"    config[\u0027ssh_enabled\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_42c4f15d","line":227,"range":{"start_line":227,"start_character":8,"end_line":227,"end_character":14},"in_reply_to":"fa0719c6_a40584c3","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"},{"line_number":259,"context_line":"            config[\u0027hdp\u0027][svc_hdp] \u003d svc_hdp"},{"line_number":260,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027hdp\u0027] \u003d svc_hdp"},{"line_number":261,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d ("},{"line_number":262,"context_line":"                svc_vol_type)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":265,"context_line":"                svc_ip \u003d (config_opts.safe_get("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_e4b49cf3","line":262,"range":{"start_line":261,"start_character":62,"end_line":262,"end_character":29},"updated":"2016-03-21 17:49:38.000000000","message":"Why you are defining this as a tuple?","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"},{"line_number":259,"context_line":"            config[\u0027hdp\u0027][svc_hdp] \u003d svc_hdp"},{"line_number":260,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027hdp\u0027] \u003d svc_hdp"},{"line_number":261,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d ("},{"line_number":262,"context_line":"                svc_vol_type)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":265,"context_line":"                svc_ip \u003d (config_opts.safe_get("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_c2f641f8","line":262,"range":{"start_line":261,"start_character":62,"end_line":262,"end_character":29},"in_reply_to":"fa0719c6_e4b49cf3","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":265,"context_line":"                svc_ip \u003d (config_opts.safe_get("},{"line_number":266,"context_line":"                    \u0027hnas_\u0027 + dv_type + \u0027_svc\u0027 + idx + \u0027_iscsi_ip\u0027))"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_a4a104ac","line":267,"updated":"2016-03-21 17:49:38.000000000","message":"Unneeded blank line","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":265,"context_line":"                svc_ip \u003d (config_opts.safe_get("},{"line_number":266,"context_line":"                    \u0027hnas_\u0027 + dv_type + \u0027_svc\u0027 + idx + \u0027_iscsi_ip\u0027))"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_02ddd96e","line":267,"in_reply_to":"fa0719c6_a4a104ac","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"988bfd78773584092d974e263c8477ef51b7e257","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"},{"line_number":279,"context_line":"            config[\u0027hdp\u0027][svc_hdp] \u003d svc_hdp"},{"line_number":280,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027hdp\u0027] \u003d svc_hdp"},{"line_number":281,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d ("},{"line_number":282,"context_line":"                svc_vol_type)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":285,"context_line":"                svc_ip \u003d (config_opts.safe_get("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_04c8b054","line":282,"range":{"start_line":281,"start_character":62,"end_line":282,"end_character":29},"updated":"2016-03-21 17:49:38.000000000","message":"Why you are defining this as a tuple?","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"7ae0884c717e3fc0bca63963226bbbd4360bc073","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"},{"line_number":279,"context_line":"            config[\u0027hdp\u0027][svc_hdp] \u003d svc_hdp"},{"line_number":280,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027hdp\u0027] \u003d svc_hdp"},{"line_number":281,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d ("},{"line_number":282,"context_line":"                svc_vol_type)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":285,"context_line":"                svc_ip \u003d (config_opts.safe_get("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_c244811c","line":282,"range":{"start_line":281,"start_character":62,"end_line":282,"end_character":29},"in_reply_to":"fa0719c6_04c8b054","updated":"2016-03-28 19:44:24.000000000","message":"Done","commit_id":"8b8628d26bfcd2657e3530bceebf7879eaafbd86"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1ee702bcd565bea330d131810faa92458ad94268","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    cfg.StrOpt(\u0027hnas_svc2_hdp\u0027, help\u003d\u0027Service 2 HDP\u0027),"},{"line_number":66,"context_line":"    cfg.StrOpt(\u0027hnas_svc3_volume_type\u0027, help\u003d\u0027Service 3 volume type\u0027),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027hnas_svc3_hdp\u0027, help\u003d\u0027Service 3 HDP\u0027)"},{"line_number":68,"context_line":"    ]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"CONF \u003d cfg.CONF"},{"line_number":71,"context_line":"CONF.register_opts(drivers_common_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_1f21ec9f","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":5},"updated":"2016-04-05 16:54:48.000000000","message":"Bracket indentation!","commit_id":"84509d9899b35b7f9c9c93753f2bd7cc7dcd1cb9"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"0844ab47543711aec4ba7a65ec622fed3b977f53","unresolved":false,"context_lines":[{"line_number":41,"context_line":"MAX_HNAS_ISCSI_TARGETS \u003d 32"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"drivers_common_opts \u003d ["},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027hnas_mgmt_ip0\u0027, help\u003d\u0027Management IP address of HNAS. This can \u0027"},{"line_number":45,"context_line":"                                     \u0027be any IP in \u0027"},{"line_number":46,"context_line":"                                     \u0027the admin address on HNAS or the SMU \u0027"},{"line_number":47,"context_line":"                                     \u0027IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_1393a8a4","line":44,"range":{"start_line":44,"start_character":31,"end_line":44,"end_character":32},"updated":"2016-04-18 20:09:48.000000000","message":"\\n ...same for other options bellow. Keep the options in separate lines.","commit_id":"2c9622c6d102a86d7df25c61261892313ac6f6d7"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"da4db026b9dc5e64033b38a6d6a47e7e82b0eb73","unresolved":false,"context_lines":[{"line_number":41,"context_line":"MAX_HNAS_ISCSI_TARGETS \u003d 32"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"drivers_common_opts \u003d ["},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027hnas_mgmt_ip0\u0027, help\u003d\u0027Management IP address of HNAS. This can \u0027"},{"line_number":45,"context_line":"                                     \u0027be any IP in \u0027"},{"line_number":46,"context_line":"                                     \u0027the admin address on HNAS or the SMU \u0027"},{"line_number":47,"context_line":"                                     \u0027IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_72f11601","line":44,"range":{"start_line":44,"start_character":31,"end_line":44,"end_character":32},"in_reply_to":"1a122d0e_1393a8a4","updated":"2016-04-19 12:42:59.000000000","message":"Done","commit_id":"2c9622c6d102a86d7df25c61261892313ac6f6d7"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ed6872cac680fcae77923f0714363188a3dc0c41","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":317,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        # It\u0027s mandatory to have at least 1 pool configured (svc_0)"},{"line_number":320,"context_line":"        if (idx \u003d\u003d \u00270\u0027 or svc_vol_type is not None or"},{"line_number":321,"context_line":"                svc_hdp is not None):"},{"line_number":322,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_e2c04fe2","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":67},"updated":"2016-04-29 13:37:20.000000000","message":"What happens if this mandatory parameter is not configured? I don\u0027t see any error message.","commit_id":"6c9cae81b5caa93213f7d66cbff4ccdc52cff9e5"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"aa4851de02f90f59cded1a60791905937311a972","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":317,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        # It\u0027s mandatory to have at least 1 pool configured (svc_0)"},{"line_number":320,"context_line":"        if (idx \u003d\u003d \u00270\u0027 or svc_vol_type is not None or"},{"line_number":321,"context_line":"                svc_hdp is not None):"},{"line_number":322,"context_line":"            config[\u0027services\u0027][svc_vol_type] \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_0401bf04","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":67},"in_reply_to":"1a122d0e_e2c04fe2","updated":"2016-05-03 17:40:32.000000000","message":"An exception will be raised on function \"_check_conf_params\" in this case:\n\nif config[\u0027services\u0027][vol_type][\u0027volume_type\u0027] is None:\n        msg \u003d (_(\"The config parameter \"\n                 \"hnas_svc%(idx)s_volume_type is not set \"\n                 \"in the cinder.conf. Note that you need to \"\n                 \"have at least one pool configured.\") %\n               {\u0027idx\u0027: idx})\n        raise exception.InvalidParameterValue(err\u003dmsg)","commit_id":"6c9cae81b5caa93213f7d66cbff4ccdc52cff9e5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b64388a77ad825210f704c0ac678cf848b3cfe1b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import os"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from xml.etree import ElementTree as ETree"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_04ef641e","line":23,"updated":"2016-05-11 16:38:57.000000000","message":"This should be at line 28, grouped with other external imports.\n\nSee http://docs.openstack.org/developer/hacking/#import-order-template for info.","commit_id":"835566340c5bb72b63f9bff9e070b94284ff9ce2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b64388a77ad825210f704c0ac678cf848b3cfe1b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from xml.etree import ElementTree as ETree"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_e4e6a042","line":25,"updated":"2016-05-11 16:38:57.000000000","message":"Same","commit_id":"835566340c5bb72b63f9bff9e070b94284ff9ce2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b64388a77ad825210f704c0ac678cf848b3cfe1b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI, _LW"},{"line_number":31,"context_line":"from cinder.volume import volume_types"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from oslo_config import cfg"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_e4b8602c","line":33,"updated":"2016-05-11 16:38:57.000000000","message":"This should be at line 26, grouped w/ oslo_log.","commit_id":"835566340c5bb72b63f9bff9e070b94284ff9ce2"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    \u0027the SMU IP.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hnas_ssc_cmd\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Command to communicate to HNAS array. \u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_26550ec6","line":47,"range":{"start_line":47,"start_character":58,"end_line":47,"end_character":59},"updated":"2016-05-24 12:38:23.000000000","message":"Not really needed space.","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    \u0027the SMU IP.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hnas_ssc_cmd\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Command to communicate to HNAS array. \u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_8b8b0968","line":47,"range":{"start_line":47,"start_character":58,"end_line":47,"end_character":59},"in_reply_to":"bab6814e_26550ec6","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_private_key\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027Path to the SSH private key used to \u0027"},{"line_number":57,"context_line":"                    \u0027authenticate in HNAS SMU.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_0600caa9","line":54,"range":{"start_line":54,"start_character":37,"end_line":54,"end_character":39},"updated":"2016-05-24 12:38:23.000000000","message":"s/to/for","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used to SSH authentication.\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_private_key\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027Path to the SSH private key used to \u0027"},{"line_number":57,"context_line":"                    \u0027authenticate in HNAS SMU.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_6bdd0570","line":54,"range":{"start_line":54,"start_character":37,"end_line":54,"end_character":39},"in_reply_to":"bab6814e_0600caa9","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_volume_type\u0027))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_86bafa6c","line":311,"range":{"start_line":311,"start_character":20,"end_line":311,"end_character":35},"updated":"2016-05-24 12:38:23.000000000","message":"Please use % operator for string formatting.","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_volume_type\u0027))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_eebbc373","line":311,"range":{"start_line":311,"start_character":20,"end_line":311,"end_character":35},"in_reply_to":"bab6814e_86bafa6c","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_volume_type\u0027))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        # It\u0027s mandatory to have at least 1 pool configured (svc_0)"},{"line_number":317,"context_line":"        if (idx \u003d\u003d \u00270\u0027 or svc_vol_type is not None or"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_e6af8629","line":314,"range":{"start_line":314,"start_character":19,"end_line":314,"end_character":34},"updated":"2016-05-24 12:38:23.000000000","message":"ditto","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_volume_type\u0027))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc\u0027 + idx + \u0027_hdp\u0027))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        # It\u0027s mandatory to have at least 1 pool configured (svc_0)"},{"line_number":317,"context_line":"        if (idx \u003d\u003d \u00270\u0027 or svc_vol_type is not None or"}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_cebebf63","line":314,"range":{"start_line":314,"start_character":19,"end_line":314,"end_character":34},"in_reply_to":"bab6814e_e6af8629","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d svc_vol_type"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":325,"context_line":"                svc_ip \u003d (config_opts.safe_get(\u0027hnas_svc\u0027 + idx + \u0027_iscsi_ip\u0027))"},{"line_number":326,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_a66c5e09","line":325,"range":{"start_line":325,"start_character":53,"end_line":325,"end_character":70},"updated":"2016-05-24 12:38:23.000000000","message":"ditto","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027volume_type\u0027] \u003d svc_vol_type"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"            if dv_type \u003d\u003d \u0027iscsi\u0027:"},{"line_number":325,"context_line":"                svc_ip \u003d (config_opts.safe_get(\u0027hnas_svc\u0027 + idx + \u0027_iscsi_ip\u0027))"},{"line_number":326,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_0eb9e779","line":325,"range":{"start_line":325,"start_character":53,"end_line":325,"end_character":70},"in_reply_to":"bab6814e_a66c5e09","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"203155daf68d44b5c96a906a6f7ff43356c4568c","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("},{"line_number":329,"context_line":"                \u0027svc_\u0027 + idx)"},{"line_number":330,"context_line":"            # Checking to ensure that the pools configurations are complete"},{"line_number":331,"context_line":"            _check_conf_params(config, svc_vol_type, dv_type, idx)"},{"line_number":332,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_86715ae3","line":329,"range":{"start_line":329,"start_character":19,"end_line":329,"end_character":26},"updated":"2016-05-24 12:38:23.000000000","message":"ditto","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c221786c0a868efe87c63ae1bc80cbd0929f3772","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                config[\u0027services\u0027][svc_vol_type][\u0027iscsi_ip\u0027] \u003d svc_ip"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            config[\u0027services\u0027][svc_vol_type][\u0027label\u0027] \u003d ("},{"line_number":329,"context_line":"                \u0027svc_\u0027 + idx)"},{"line_number":330,"context_line":"            # Checking to ensure that the pools configurations are complete"},{"line_number":331,"context_line":"            _check_conf_params(config, svc_vol_type, dv_type, idx)"},{"line_number":332,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"bab6814e_6eb0738c","line":329,"range":{"start_line":329,"start_character":19,"end_line":329,"end_character":26},"in_reply_to":"bab6814e_86715ae3","updated":"2016-05-25 14:01:38.000000000","message":"Done","commit_id":"7846b2a5ede5955679af3c377cbe0c80d7ca41b3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":38,"context_line":"MAX_HNAS_ISCSI_TARGETS \u003d 32"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"drivers_common_opts \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hnas_mgmt_ip0\u0027,"},{"line_number":42,"context_line":"               help\u003d\u0027Management IP address of HNAS. This can \u0027"},{"line_number":43,"context_line":"                    \u0027be any IP in the admin address on HNAS or \u0027"},{"line_number":44,"context_line":"                    \u0027the SMU IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_177a4abd","line":41,"updated":"2016-05-31 13:46:07.000000000","message":"Does this have to be an IP address or can it be a hostname too?","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":38,"context_line":"MAX_HNAS_ISCSI_TARGETS \u003d 32"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"drivers_common_opts \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027hnas_mgmt_ip0\u0027,"},{"line_number":42,"context_line":"               help\u003d\u0027Management IP address of HNAS. This can \u0027"},{"line_number":43,"context_line":"                    \u0027be any IP in the admin address on HNAS or \u0027"},{"line_number":44,"context_line":"                    \u0027the SMU IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_c8540c56","line":41,"in_reply_to":"9abb7d3a_177a4abd","updated":"2016-06-06 12:29:31.000000000","message":"Only IP address. Changed the format to IPOpt then.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used for SSH authentication.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_37a66e53","line":51,"updated":"2016-05-31 13:46:07.000000000","message":"Should have secret\u003dTrue for the password field.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"},{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used for SSH authentication.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_a851c064","line":51,"in_reply_to":"9abb7d3a_37a66e53","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used for SSH authentication.\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_private_key\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027Path to the SSH private key used to \u0027"},{"line_number":57,"context_line":"                    \u0027authenticate in HNAS SMU.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_17b36a99","line":54,"updated":"2016-05-31 13:46:07.000000000","message":"Should be a PortOpt, not StrOpt.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027HNAS password.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_port\u0027,"},{"line_number":53,"context_line":"               default\u003d\u002722\u0027,"},{"line_number":54,"context_line":"               help\u003d\u0027Port to be used for SSH authentication.\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027hnas_ssh_private_key\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027Path to the SSH private key used to \u0027"},{"line_number":57,"context_line":"                    \u0027authenticate in HNAS SMU.\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_084f34be","line":54,"in_reply_to":"9abb7d3a_17b36a99","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        msg \u003d (_(\"Credentials configuration parameters \""},{"line_number":102,"context_line":"                 \"missing: you need to set hnas_password \""},{"line_number":103,"context_line":"                 \"or hnas_%(tp)s_ssh_private_key \""},{"line_number":104,"context_line":"                 \"in the cinder.conf.\"))"},{"line_number":105,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    if config[\u0027mgmt_ip0\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_571fb2b6","line":104,"updated":"2016-05-31 13:46:07.000000000","message":"What is %(tp)s?  Broken format string?","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        msg \u003d (_(\"Credentials configuration parameters \""},{"line_number":102,"context_line":"                 \"missing: you need to set hnas_password \""},{"line_number":103,"context_line":"                 \"or hnas_%(tp)s_ssh_private_key \""},{"line_number":104,"context_line":"                 \"in the cinder.conf.\"))"},{"line_number":105,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    if config[\u0027mgmt_ip0\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_08abb41e","line":104,"in_reply_to":"9abb7d3a_571fb2b6","updated":"2016-06-06 12:29:31.000000000","message":"Right! It made sense in a previous implementation and I forgot to erase it.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d313e4e63b2e085e9c40658013661398bedb9a70","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    if not os.access(xml_config_file, os.R_OK):"},{"line_number":179,"context_line":"        msg \u003d (_(\"Can\u0027t find HNAS configurations on cinder.conf neither \""},{"line_number":180,"context_line":"                 \"on the path %(xml)s.\") % {\u0027xml\u0027: xml_config_file})"},{"line_number":181,"context_line":"        raise exception.NotFound(message\u003dmsg)"},{"line_number":182,"context_line":"    else:"},{"line_number":183,"context_line":"        LOG.warning(_LW(\"This XML configuration file %(xml)s is deprecated. \""},{"line_number":184,"context_line":"                        \"Please, move all the configurations to the \""}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_97f0fa68","line":181,"updated":"2016-05-31 13:46:07.000000000","message":"NotFound is an API exception and shouldn\u0027t be used here.  Use ConfigNotFound.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    if not os.access(xml_config_file, os.R_OK):"},{"line_number":179,"context_line":"        msg \u003d (_(\"Can\u0027t find HNAS configurations on cinder.conf neither \""},{"line_number":180,"context_line":"                 \"on the path %(xml)s.\") % {\u0027xml\u0027: xml_config_file})"},{"line_number":181,"context_line":"        raise exception.NotFound(message\u003dmsg)"},{"line_number":182,"context_line":"    else:"},{"line_number":183,"context_line":"        LOG.warning(_LW(\"This XML configuration file %(xml)s is deprecated. \""},{"line_number":184,"context_line":"                        \"Please, move all the configurations to the \""}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_6817d851","line":181,"in_reply_to":"9abb7d3a_97f0fa68","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"a0668bbc280f6d12c61bba8a8cc61b40fd96bd6f","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    config[\u0027ssh_private_key\u0027] \u003d ("},{"line_number":305,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_private_key\u0027))"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    # It\u0027s possible to have up to 4 pools configured."},{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc%(idx)s_volume_type\u0027 % {\u0027idx\u0027: idx}))"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_d9d0becb","line":308,"range":{"start_line":307,"start_character":4,"end_line":308,"end_character":25},"updated":"2016-06-01 12:27:48.000000000","message":"Since it can have 4 pools configured, you should use range(0,4). The \u0027stop\u0027 parameter is not included in the list.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    config[\u0027ssh_private_key\u0027] \u003d ("},{"line_number":305,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_private_key\u0027))"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    # It\u0027s possible to have up to 4 pools configured."},{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc%(idx)s_volume_type\u0027 % {\u0027idx\u0027: idx}))"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_2304d113","line":308,"range":{"start_line":307,"start_character":4,"end_line":308,"end_character":25},"in_reply_to":"9abb7d3a_d9d0becb","updated":"2016-06-06 12:29:31.000000000","message":"Done","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"620a156dd47cda0cecb5f7304dfb212338c7c17a","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc%(idx)s_volume_type\u0027 % {\u0027idx\u0027: idx}))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc%(idx)s_hdp\u0027 % {\u0027idx\u0027: idx}))"}],"source_content_type":"text/x-python","patch_set":21,"id":"9abb7d3a_18b75287","line":311,"range":{"start_line":311,"start_character":0,"end_line":311,"end_character":58},"updated":"2016-05-30 13:32:21.000000000","message":"Could be just:\n\n            \u0027hnas_svc%i_volume_type\u0027 % idx))\n\nBut it\u0027s okay either way of course.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1068e2df4db2dd4949257b8c028bfd5d896a12df","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    for i in range(0, 3):"},{"line_number":309,"context_line":"        idx \u003d six.text_type(i)"},{"line_number":310,"context_line":"        svc_vol_type \u003d (config_opts.safe_get("},{"line_number":311,"context_line":"            \u0027hnas_svc%(idx)s_volume_type\u0027 % {\u0027idx\u0027: idx}))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        svc_hdp \u003d (config_opts.safe_get("},{"line_number":314,"context_line":"            \u0027hnas_svc%(idx)s_hdp\u0027 % {\u0027idx\u0027: idx}))"}],"source_content_type":"text/x-python","patch_set":21,"id":"7aa08908_43791dfc","line":311,"range":{"start_line":311,"start_character":0,"end_line":311,"end_character":58},"in_reply_to":"9abb7d3a_18b75287","updated":"2016-06-06 12:29:31.000000000","message":"We are trying to keep a standard by always using this format in the driver.","commit_id":"3461f20690ecd9c009cddbe854ea68c1b7dc5a55"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1fae2c1c865bfd01dbef25027c0b7c3ee3aecb0c","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                        \"cinder.conf file. If you keep both configuration \""},{"line_number":187,"context_line":"                        \"files, the options set on cinder.conf will be \""},{"line_number":188,"context_line":"                        \"used.\")"},{"line_number":189,"context_line":"                    % {\u0027xml\u0027: xml_config_file})"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    try:"},{"line_number":192,"context_line":"        root \u003d ETree.parse(xml_config_file).getroot()"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aa08908_b9712a47","line":189,"range":{"start_line":189,"start_character":20,"end_line":189,"end_character":22},"updated":"2016-06-15 15:05:20.000000000","message":"Please change % to ,","commit_id":"8f6fb5c59899d28c182b94a9d237fb3b7bedb728"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"cfb03a9c548a9939995cf26a171d07c182a28e1e","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                        \"cinder.conf file. If you keep both configuration \""},{"line_number":187,"context_line":"                        \"files, the options set on cinder.conf will be \""},{"line_number":188,"context_line":"                        \"used.\")"},{"line_number":189,"context_line":"                    % {\u0027xml\u0027: xml_config_file})"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    try:"},{"line_number":192,"context_line":"        root \u003d ETree.parse(xml_config_file).getroot()"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aa08908_b461ef3a","line":189,"range":{"start_line":189,"start_character":20,"end_line":189,"end_character":22},"in_reply_to":"7aa08908_b9712a47","updated":"2016-06-16 17:35:41.000000000","message":"Done","commit_id":"8f6fb5c59899d28c182b94a9d237fb3b7bedb728"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5ecadc3604fb42abbf4ed158741a92f6aac2e486","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    # Validating the inputs on cinder.conf"},{"line_number":95,"context_line":"    if config[\u0027username\u0027] is None:"},{"line_number":96,"context_line":"        msg \u003d (_(\"The config parameter hnas_username \""},{"line_number":97,"context_line":"                 \"is not set in the cinder.conf.\"))"},{"line_number":98,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_b92cfbac","line":95,"updated":"2016-07-12 10:12:51.000000000","message":"nit: these \u0027if\u0027 statements could be replaced with for loop but it could be done later","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"167d556b553a16ce2a2ed0625b28155db6eced82","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    # Validating the inputs on cinder.conf"},{"line_number":95,"context_line":"    if config[\u0027username\u0027] is None:"},{"line_number":96,"context_line":"        msg \u003d (_(\"The config parameter hnas_username \""},{"line_number":97,"context_line":"                 \"is not set in the cinder.conf.\"))"},{"line_number":98,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_15296fe6","line":95,"in_reply_to":"1aa78d24_b92cfbac","updated":"2016-07-14 20:23:27.000000000","message":"Ok. We\u0027ll keep this in our TODO list.","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5ecadc3604fb42abbf4ed158741a92f6aac2e486","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        return None"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    # Getting the optional parameters from cinder.conf"},{"line_number":297,"context_line":"    config[\u0027hnas_cmd\u0027] \u003d ("},{"line_number":298,"context_line":"        config_opts.safe_get(\u0027hnas_ssc_cmd\u0027))"},{"line_number":299,"context_line":"    config[\u0027chap_enabled\u0027] \u003d ("},{"line_number":300,"context_line":"        config_opts.safe_get(\u0027hnas_chap_enabled\u0027))"},{"line_number":301,"context_line":"    config[\u0027ssh_port\u0027] \u003d ("},{"line_number":302,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_port\u0027))"},{"line_number":303,"context_line":"    config[\u0027cluster_admin_ip0\u0027] \u003d ("},{"line_number":304,"context_line":"        config_opts.safe_get(\u0027hnas_cluster_admin_ip0\u0027))"},{"line_number":305,"context_line":"    config[\u0027ssh_private_key\u0027] \u003d ("},{"line_number":306,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_private_key\u0027))"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    # It\u0027s possible to have up to 4 pools configured."},{"line_number":309,"context_line":"    for i in range(0, 4):"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_d4526e12","line":306,"range":{"start_line":297,"start_character":4,"end_line":306,"end_character":53},"updated":"2016-07-12 10:12:51.000000000","message":"it could be replaced with:\nfor otp in [\u0027hnas_ssc_cmd\u0027, \u0027hnas_chap_enabled\u0027,\n            \u0027hnas_ssh_port\u0027, \u0027hnas_cluster_admin_ip0\u0027, \u0027hnas_ssh_private_key\u0027]:\n    config[opt] \u003d config_opts.safe_get(opt)","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"167d556b553a16ce2a2ed0625b28155db6eced82","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        return None"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    # Getting the optional parameters from cinder.conf"},{"line_number":297,"context_line":"    config[\u0027hnas_cmd\u0027] \u003d ("},{"line_number":298,"context_line":"        config_opts.safe_get(\u0027hnas_ssc_cmd\u0027))"},{"line_number":299,"context_line":"    config[\u0027chap_enabled\u0027] \u003d ("},{"line_number":300,"context_line":"        config_opts.safe_get(\u0027hnas_chap_enabled\u0027))"},{"line_number":301,"context_line":"    config[\u0027ssh_port\u0027] \u003d ("},{"line_number":302,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_port\u0027))"},{"line_number":303,"context_line":"    config[\u0027cluster_admin_ip0\u0027] \u003d ("},{"line_number":304,"context_line":"        config_opts.safe_get(\u0027hnas_cluster_admin_ip0\u0027))"},{"line_number":305,"context_line":"    config[\u0027ssh_private_key\u0027] \u003d ("},{"line_number":306,"context_line":"        config_opts.safe_get(\u0027hnas_ssh_private_key\u0027))"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    # It\u0027s possible to have up to 4 pools configured."},{"line_number":309,"context_line":"    for i in range(0, 4):"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_958a7f19","line":306,"range":{"start_line":297,"start_character":4,"end_line":306,"end_character":53},"in_reply_to":"1aa78d24_d4526e12","updated":"2016-07-14 20:23:27.000000000","message":"Done","commit_id":"40cd2dbf83f033dd3b1f4dd696071ec070113978"}],"releasenotes/notes/hnas_deprecate_xml-16840b5a8c25d15e.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7bf311e97059ccb7074a828fac8864196c4a5e6c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Use all configurations in cinder.conf rather than using a XML"},{"line_number":4,"context_line":"  configuration file."},{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - The XML configuration file needed to run the HNAS drivers (iSCSI and"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"7aa08908_945ae5f0","line":3,"updated":"2016-06-16 20:41:35.000000000","message":"This won\u0027t make much sense to readers of the release notes. Probably should be something like:\n\nHNAS drivers will now read configuration from cinder.conf.\n\nThen under the deprecations section:\n\nThe XML configuration file used by the HNAS drivers is now deprecated and will not longer be used in the future. Please use cinder.conf for all driver configuration.","commit_id":"7d3a75c8c64a388e408f644d8da15bfd735c5b94"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"749ccf4a165458fec61f23fa2bfa70d225cef4fb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Use all configurations in cinder.conf rather than using a XML"},{"line_number":4,"context_line":"  configuration file."},{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - The XML configuration file needed to run the HNAS drivers (iSCSI and"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"7aa08908_65286186","line":3,"in_reply_to":"7aa08908_945ae5f0","updated":"2016-06-16 21:41:28.000000000","message":"Agreed. Changed the text according to your suggestion. Thank you.","commit_id":"7d3a75c8c64a388e408f644d8da15bfd735c5b94"}]}
