)]}'
{"nova/tests/unit/virt/ironic/test_driver.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"825b56be8a86111c5034d431b9080ab5eef546e3","unresolved":false,"context_lines":[{"line_number":1434,"context_line":"            mock_get_ip.assert_called_once_with(instance)"},{"line_number":1435,"context_line":""},{"line_number":1436,"context_line":"    def test__get_private_ip_address(self):"},{"line_number":1437,"context_line":"        vif \u003d mock.Mock()"},{"line_number":1438,"context_line":"        vif.address \u003d \u002710.0.0.3\u0027"},{"line_number":1439,"context_line":"        vif.network_id \u003d \u002711111111-1111-1111-1111-111111111111\u0027"},{"line_number":1440,"context_line":"        vif2 \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_244ace26","line":1437,"updated":"2015-05-21 16:21:25.000000000","message":"These need to be vif objects","commit_id":"0fd69accf41832e65b97e548f566096f0597b236"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"825b56be8a86111c5034d431b9080ab5eef546e3","unresolved":false,"context_lines":[{"line_number":1137,"context_line":"        \"\"\""},{"line_number":1138,"context_line":"        # this must be unique to the instance since we don\u0027t have a hypervisor"},{"line_number":1139,"context_line":"        # let\u0027s just make it the ironic node uuid"},{"line_number":1140,"context_line":"        # TODO(jroll) also pass this through to instance_metadata"},{"line_number":1141,"context_line":"        # maybe make it a config thing too?"},{"line_number":1142,"context_line":"        initiator_name \u003d \u0027iqn.2008-10.org.openstack:%s\u0027 % instance.node"},{"line_number":1143,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_045592c4","line":1140,"updated":"2015-05-21 16:21:25.000000000","message":"Do this","commit_id":"0fd69accf41832e65b97e548f566096f0597b236"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"825b56be8a86111c5034d431b9080ab5eef546e3","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"        private_ip \u003d None"},{"line_number":1151,"context_line":"        network_info \u003d instance.info_cache.network_info"},{"line_number":1152,"context_line":"        for vif in network_info:"},{"line_number":1153,"context_line":"            # TODO(jroll) make this a thing"},{"line_number":1154,"context_line":"            if vif.network_id \u003d\u003d CONF.ironic.block_store_network:"},{"line_number":1155,"context_line":"                private_ip \u003d vif.address"},{"line_number":1156,"context_line":"        if not private_ip:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_c461baaa","line":1153,"updated":"2015-05-21 16:21:25.000000000","message":"Do this","commit_id":"0fd69accf41832e65b97e548f566096f0597b236"},{"author":{"_account_id":9066,"name":"Satoru Moriya","email":"satoru.moriya.br@hitachi.com","username":"satoru-moriya-br"},"change_message_id":"ecdba0ae7c8182bd2a5d173ac8fb336fbf0d8fe2","unresolved":false,"context_lines":[{"line_number":1176,"context_line":"        ctxt \u003d nova_context.RequestContext(project_id\u003dinstance.project_id)"},{"line_number":1177,"context_line":"        _delete_volume_metadata(ctxt, instance, volume_id)"},{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"    def get_volume_connector(self, instance):"},{"line_number":1180,"context_line":"        \"\"\"Get connector information for the instance for attaching to volumes."},{"line_number":1181,"context_line":""},{"line_number":1182,"context_line":"        Connector information is a dictionary representing the ip of the"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_312e5aa6","line":1179,"updated":"2015-06-19 11:04:29.000000000","message":"This method (also above 2 methods) should be implemented more generic to support out-of-band control.\nI think it calls ironic REST API to get connector information which Ironic has.","commit_id":"0b7d8c93d41ab67914b4c884dc1311873bc5ad64"},{"author":{"_account_id":9066,"name":"Satoru Moriya","email":"satoru.moriya.br@hitachi.com","username":"satoru-moriya-br"},"change_message_id":"ecdba0ae7c8182bd2a5d173ac8fb336fbf0d8fe2","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"            \u0027ip\u0027: self._get_private_ip_address(instance),"},{"line_number":1195,"context_line":"            \u0027initiator\u0027: self._get_initiator_name(instance),"},{"line_number":1196,"context_line":"            \u0027host\u0027: instance.node,"},{"line_number":1197,"context_line":"        }"},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"    def _get_initiator_name(self, instance):"},{"line_number":1200,"context_line":"        # this must be unique to the instance since we don\u0027t have a hypervisor"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_3792caf7","line":1197,"updated":"2015-06-19 11:04:29.000000000","message":"If we support both in-band and out-of-band method, connector information should be created in Ironic, shouldn\u0027t it?","commit_id":"0b7d8c93d41ab67914b4c884dc1311873bc5ad64"}]}
