)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f828ffd4f57d83af9b1a2c1950afe5fdbc1fad04","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    * Clone Volume"},{"line_number":19,"context_line":"    * Extend volume"},{"line_number":20,"context_line":"    Implements: blueprint disco-driver-cinder"},{"line_number":21,"context_line":"    Depends-On: I81036a58ab334a7e047f7fa5486c11fd19d24b8f"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I96456e19051addac1421d037126aafb8a10adc7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da6ed579_3ac73b65","line":21,"updated":"2016-01-15 16:14:45.000000000","message":"You can probably remove this. What you\u0027re really going to need to depend on is the following:\n\n1. a release of os-brick with that ^ change\n2. then a global-requirements update in the openstack/requirements repo which bumps the minimum version of os-brick to the released version that has your os-brick change, and then that is what you should have the Depends-On in this nova change.","commit_id":"6066855f3bad36f610d53c0896117adb69d85a70"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a5925c87becb314692d9b93da3b7d644505968f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    * Clone Volume"},{"line_number":19,"context_line":"    * Extend volume"},{"line_number":20,"context_line":"    Implements: blueprint disco-driver-cinder"},{"line_number":21,"context_line":"    Depends-On: I81036a58ab334a7e047f7fa5486c11fd19d24b8f"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I96456e19051addac1421d037126aafb8a10adc7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da6ed579_ba580b8b","line":21,"in_reply_to":"da6ed579_3ac73b65","updated":"2016-01-15 16:18:10.000000000","message":"Change to:\n\nDepends-On: I120cdfed0e906a5768bb3483c0d9e82047c0c241","commit_id":"6066855f3bad36f610d53c0896117adb69d85a70"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1af835ef233b625044be87059d50f83bdcd61ef6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    the ITRI DISCO cinder driver for libvirt"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    Implements: blueprint add-cinder-disco-connector-for-libvirt"},{"line_number":13,"context_line":"    Depends-On: I120cdfed0e906a5768bb3483c0d9e82047c0c241"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I96456e19051addac1421d037126aafb8a10adc7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a68dd71_c5db6dec","line":13,"updated":"2016-01-21 01:20:13.000000000","message":"Try removing the whitespace before the Depends-On to see if that fixes the gate-nova-requirements job.","commit_id":"8b1bed692cb16fc2b2d57340521a0b148e7fedb2"}],"nova/tests/unit/virt/libvirt/volume/test_disco.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 ITRI"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_97d85055","line":1,"range":{"start_line":1,"start_character":2,"end_line":1,"end_character":25},"updated":"2016-01-20 21:56:16.000000000","message":"Doesn\u0027t match what you have in the actual volume driver module, do you need them to be the same?","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            return {\u0027path\u0027: \u0027/dev/dms1234567\u0027}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        dcon \u003d disco.LibvirtDISCOVolumeDriver(self.fake_conn)"},{"line_number":38,"context_line":"        dcon.connector.connect_volume \u003d brick_conn_vol"},{"line_number":39,"context_line":"        conf \u003d {\u0027server_ip\u0027: \u0027127.0.0.1\u0027, \u0027server_port\u0027: 9898}"},{"line_number":40,"context_line":"        disk_info \u003d {\u0027disco_id\u0027: \u00271234567\u0027,"},{"line_number":41,"context_line":"                     \u0027name\u0027: \u0027aDiscoVolume\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_77a11ca9","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":54},"updated":"2016-01-20 21:56:16.000000000","message":"I\u0027d prefer using mock here like what you\u0027re doing in the disconnect method.","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                     \u0027device_path\u0027: \u0027/dev/dms1234567\u0027}"},{"line_number":54,"context_line":"        conn \u003d {\u0027data\u0027: disk_info}"},{"line_number":55,"context_line":"        conf \u003d dcon.get_config(conn, disk_info)"},{"line_number":56,"context_line":"        self.assertEqual(\u0027file\u0027, conf.source_type)"},{"line_number":57,"context_line":"        self.assertEqual(\u0027/dev/dms1234567\u0027, conf.source_path)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_libvirt_disco_driver_disconnect(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_97bff0cf","line":56,"updated":"2016-01-20 21:56:16.000000000","message":"Should probably also check the source_protocol is \u0027disco\u0027.","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0dcac6555ff4765932b0eddc7b73166ac3da94f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Industrial Technology Research Institute"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_2f14a8f3","line":1,"updated":"2016-01-20 23:58:57.000000000","message":"This doesn\u0027t match what\u0027s in disco.py, I\u0027d think you want those to be consistent.","commit_id":"e19e6920ed904910569ded8b55760c91afe08499"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0dcac6555ff4765932b0eddc7b73166ac3da94f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                              connector.DISCOConnector)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_libvirt_disco_driver_connect(self):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        def brick_conn_vol(data):"},{"line_number":35,"context_line":"            return {\u0027path\u0027: \u0027/dev/dms1234567\u0027}"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_0f268468","line":33,"updated":"2016-01-20 23:58:57.000000000","message":"nit: you have one too many whitespaces here I think.","commit_id":"e19e6920ed904910569ded8b55760c91afe08499"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0dcac6555ff4765932b0eddc7b73166ac3da94f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        conn \u003d {\u0027data\u0027: disk_info}"},{"line_number":43,"context_line":"        with mock.patch.object(dcon.connector,"},{"line_number":44,"context_line":"                               \u0027connect_volume\u0027,"},{"line_number":45,"context_line":"                               brick_conn_vol):"},{"line_number":46,"context_line":"            dcon.connect_volume(conn, None)"},{"line_number":47,"context_line":"            self.assertEqual(\u0027/dev/dms1234567\u0027,"},{"line_number":48,"context_line":"                             conn[\u0027data\u0027][\u0027device_path\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_8ff114d0","line":45,"range":{"start_line":45,"start_character":31,"end_line":45,"end_character":45},"updated":"2016-01-20 23:58:57.000000000","message":"nit: this could simply be:\n\nreturn_value\u003d{\u0027path\u0027: \u0027/dev/dms1234567\u0027}\n\nThen you don\u0027t need the fake method, but it\u0027s up to you to change if you respin.","commit_id":"e19e6920ed904910569ded8b55760c91afe08499"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"74147285259af13f4427ae61664864a9c78b30b2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright (c) 2015 Industrial Technology Research Institute."},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_80656346","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":23},"updated":"2016-01-21 02:10:58.000000000","message":"nit: s/2015/2016/","commit_id":"9e94312d0125b9b64600bb286f27e75ad6f3035e"}],"nova/virt/libvirt/volume/disco.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 2015 Industrial Technology Research Institute."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_2cb6fb8a","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":25},"updated":"2016-01-20 21:56:16.000000000","message":"typo? I\u0027m assuming this should be 2016?","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 2015 Industrial Technology Research Institute."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_0cae972e","line":3,"updated":"2016-01-20 21:56:16.000000000","message":"I don\u0027t think we use this now, unless it\u0027s coming from your company.","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(LibvirtDISCOVolumeDriver, self).__init__(connection,"},{"line_number":45,"context_line":"                                                       is_block_dev\u003dFalse)"},{"line_number":46,"context_line":"        self.connector \u003d connector.InitiatorConnector.factory("},{"line_number":47,"context_line":"            \u0027DISCO\u0027, utils.get_root_helper(),"},{"line_number":48,"context_line":"            device_scan_attempts\u003dCONF.libvirt.num_iscsi_scan_tries)"},{"line_number":49,"context_line":"        LOG.info(_LI(\"Init LibvirtDISCO DISCO volume.\"))"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_0c23f7be","line":47,"range":{"start_line":47,"start_character":13,"end_line":47,"end_character":18},"updated":"2016-01-20 21:56:16.000000000","message":"Using the constant defined in os-brick would be nice, but not required:\n\nhttps://github.com/openstack/os-brick/blob/a3261e3fbd7f0230eba2a205ec99906505df1c7c/os_brick/initiator/connector.py#L81","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.connector \u003d connector.InitiatorConnector.factory("},{"line_number":47,"context_line":"            \u0027DISCO\u0027, utils.get_root_helper(),"},{"line_number":48,"context_line":"            device_scan_attempts\u003dCONF.libvirt.num_iscsi_scan_tries)"},{"line_number":49,"context_line":"        LOG.info(_LI(\"Init LibvirtDISCO DISCO volume.\"))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def get_config(self, connection_info, disk_info):"},{"line_number":52,"context_line":"        \"\"\"Get DISCO volume attachment configuration.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_cc039f0e","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":56},"updated":"2016-01-20 21:56:16.000000000","message":"This seems unnecessary, I\u0027d probably just log this at debug level.\n\nAt least it only logs once on startup:\n\nhttp://128.199.204.149/49/258649/9/check/dsvm-tempest-ITRI-DISCO-cinder-driver/12dc4d2/logs/screen-n-cpu.txt.gz#_2016-01-20_01_31_52_892","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bfa3e790a6c13e42507575bf877dc8b8287236","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def disconnect_volume(self, connection_info, disk_dev):"},{"line_number":67,"context_line":"        \"\"\"Disconnect a DISCO volume of a compute node.\"\"\""},{"line_number":68,"context_line":"        self.connector.disconnect_volume(connection_info[\u0027data\u0027], None)"},{"line_number":69,"context_line":"        super(LibvirtDISCOVolumeDriver, self).disconnect_volume("},{"line_number":70,"context_line":"            connection_info, disk_dev)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_171ea00c","line":68,"range":{"start_line":68,"start_character":66,"end_line":68,"end_character":70},"updated":"2016-01-20 21:56:16.000000000","message":"It still bothers me that this doesn\u0027t default to None as a kwarg in os-brick, but it is what it is I guess.","commit_id":"b73b34e0f815277d0732cb56e8b139985c24ef73"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"74147285259af13f4427ae61664864a9c78b30b2","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def connect_volume(self, connection_info, disk_info):"},{"line_number":59,"context_line":"        \"\"\"Connect a DISCO volume to a compute node.\"\"\""},{"line_number":60,"context_line":"        device_info \u003d self.connector.connect_volume(connection_info[\u0027data\u0027])"},{"line_number":61,"context_line":"        connection_info[\u0027data\u0027][\u0027device_path\u0027] \u003d device_info[\u0027path\u0027]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def disconnect_volume(self, connection_info, disk_dev):"},{"line_number":64,"context_line":"        \"\"\"Disconnect a DISCO volume of a compute node.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_9b34f2de","line":61,"updated":"2016-01-21 02:10:58.000000000","message":"nit: The other driver(scaleio, etc.) contains DEBUG info here. That would be useful for this also if we face problems in the future. but that is nit thing, so LGTM.","commit_id":"9e94312d0125b9b64600bb286f27e75ad6f3035e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"74147285259af13f4427ae61664864a9c78b30b2","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def disconnect_volume(self, connection_info, disk_dev):"},{"line_number":64,"context_line":"        \"\"\"Disconnect a DISCO volume of a compute node.\"\"\""},{"line_number":65,"context_line":"        self.connector.disconnect_volume(connection_info[\u0027data\u0027], None)"},{"line_number":66,"context_line":"        super(LibvirtDISCOVolumeDriver, self).disconnect_volume("},{"line_number":67,"context_line":"            connection_info, disk_dev)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_bb31b6ee","line":65,"updated":"2016-01-21 02:10:58.000000000","message":"ditto: DEBUG","commit_id":"9e94312d0125b9b64600bb286f27e75ad6f3035e"}],"requirements.txt":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0dcac6555ff4765932b0eddc7b73166ac3da94f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"psutil\u003c2.0.0,\u003e\u003d1.1.1"},{"line_number":53,"context_line":"oslo.versionedobjects\u003e\u003d0.13.0"},{"line_number":54,"context_line":"alembic\u003e\u003d0.8.0"},{"line_number":55,"context_line":"os-brick\u003e\u003d0.8.0 # Apache-2.0"},{"line_number":56,"context_line":"os-win\u003e\u003d0.0.7 # Apache-2.0"},{"line_number":57,"context_line":"castellan\u003e\u003d0.3.1 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":3,"id":"9a68dd71_4f379cb0","line":55,"updated":"2016-01-20 23:58:57.000000000","message":"It looks like the requirements job wants this to match exactly:\n\nos-brick\u003e\u003d0.8.0                         # Apache-2.0\n\nhttp://logs.openstack.org/53/253353/3/check/gate-nova-requirements/6fac464/console.html#_2016-01-20_23_50_05_930","commit_id":"e19e6920ed904910569ded8b55760c91afe08499"}]}
