)]}'
{"tempest/api/compute/servers/test_attach_interfaces.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c2c885c73a60cfc2d367f65ce9892af46b938383","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":"from tempest_lib import exceptions as lib_exc"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import time"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_e92c5a9b","line":20,"updated":"2015-03-09 21:38:38.000000000","message":"move to separate group","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"12fd68e6f5d4cc79e86b77535bf0a678f458e925","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":"from tempest_lib import exceptions as lib_exc"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import time"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_305c0019","line":20,"in_reply_to":"9a80dd14_e92c5a9b","updated":"2015-03-10 10:06:17.000000000","message":"Done","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"}],"tempest/api/volume/test_volumes_negative.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c2c885c73a60cfc2d367f65ce9892af46b938383","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    @test.services(\u0027compute\u0027)"},{"line_number":180,"context_line":"    def test_attach_volumes_with_nonexistent_volume_id(self):"},{"line_number":181,"context_line":"        srv_name \u003d data_utils.rand_name(\u0027Instance-\u0027)"},{"line_number":182,"context_line":"        server \u003d self.create_server(name\u003dsrv_name)"},{"line_number":183,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":184,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":185,"context_line":"        self.assertRaises(lib_exc.NotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_e9053a11","line":182,"updated":"2015-03-09 21:38:38.000000000","message":"(nit) don\u0027t really need \"name\u003d\" since it\u0027s mandatory","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"12fd68e6f5d4cc79e86b77535bf0a678f458e925","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    @test.services(\u0027compute\u0027)"},{"line_number":180,"context_line":"    def test_attach_volumes_with_nonexistent_volume_id(self):"},{"line_number":181,"context_line":"        srv_name \u003d data_utils.rand_name(\u0027Instance-\u0027)"},{"line_number":182,"context_line":"        server \u003d self.create_server(name\u003dsrv_name)"},{"line_number":183,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":184,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":185,"context_line":"        self.assertRaises(lib_exc.NotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_76d67050","line":182,"in_reply_to":"9a80dd14_e9053a11","updated":"2015-03-10 10:06:17.000000000","message":"I think it can be useful to use keywords however I\u0027ll change it to be consistent.","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"}],"tempest/api/volume/test_volumes_snapshots.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c2c885c73a60cfc2d367f65ce9892af46b938383","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Create a snapshot when volume status is in-use"},{"line_number":69,"context_line":"        # Create a test instance"},{"line_number":70,"context_line":"        server_name \u003d data_utils.rand_name(\u0027instance-\u0027)"},{"line_number":71,"context_line":"        server \u003d self.create_server(name\u003dserver_name)"},{"line_number":72,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":73,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":74,"context_line":"        mountpoint \u003d \u0027/dev/%s\u0027 % CONF.compute.volume_device_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_ee1e206f","line":71,"updated":"2015-03-09 21:38:38.000000000","message":"same","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"}],"tempest/common/fixed_network.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c2c885c73a60cfc2d367f65ce9892af46b938383","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from tempest import config"},{"line_number":14,"context_line":"from tempest import exceptions"},{"line_number":15,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":16,"context_line":"from tempest_lib import exceptions as lib_exc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"CONF \u003d config.CONF"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_ce8b1c1d","line":16,"updated":"2015-03-09 21:38:38.000000000","message":"should be moved above in separate group","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"12fd68e6f5d4cc79e86b77535bf0a678f458e925","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from tempest import config"},{"line_number":14,"context_line":"from tempest import exceptions"},{"line_number":15,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":16,"context_line":"from tempest_lib import exceptions as lib_exc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"CONF \u003d config.CONF"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_10337cf6","line":16,"in_reply_to":"9a80dd14_ce8b1c1d","updated":"2015-03-10 10:06:17.000000000","message":"Done","commit_id":"07f90ece2c5e5f2ae566d95bf23bb4f715f7f968"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"98c451fec9d240916095a1f489dbc9a1dd640cfd","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                LOG.info(\u0027Unable to find network %s. \u0027"},{"line_number":47,"context_line":"                         \u0027Starting instance without specifying a network.\u0027 %"},{"line_number":48,"context_line":"                         fixed_network_name)"},{"line_number":49,"context_line":"            except exceptions.EndpointNotFound:"},{"line_number":50,"context_line":"                # NOTE(bnemec): This exception means we\u0027re running against"},{"line_number":51,"context_line":"                # nova-network, which does not care if we boot an instance"},{"line_number":52,"context_line":"                # with multiple networks attached."}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_863336f5","line":49,"updated":"2015-03-18 16:58:39.000000000","message":"Instead of catching the exception here why not just pre-empt it by checking if neutron is available by checking the value of CONF.service_available.neutron","commit_id":"de65708fb5d1f2ea6729007db16747ed410aacca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"71e67fd4416357911a0dfbab89cc034c1b02dbe7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                LOG.info(\u0027Unable to find network %s. \u0027"},{"line_number":47,"context_line":"                         \u0027Starting instance without specifying a network.\u0027 %"},{"line_number":48,"context_line":"                         fixed_network_name)"},{"line_number":49,"context_line":"            except exceptions.EndpointNotFound:"},{"line_number":50,"context_line":"                # NOTE(bnemec): This exception means we\u0027re running against"},{"line_number":51,"context_line":"                # nova-network, which does not care if we boot an instance"},{"line_number":52,"context_line":"                # with multiple networks attached."}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_28dcf545","line":49,"in_reply_to":"9a80dd14_863336f5","updated":"2015-03-25 17:02:29.000000000","message":"Done","commit_id":"de65708fb5d1f2ea6729007db16747ed410aacca"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"69863693bf0131cf6e974974dcccf650902fb666","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    :return a dict with \u0027id\u0027 and \u0027name\u0027 of the network"},{"line_number":35,"context_line":"    \"\"\""},{"line_number":36,"context_line":"    fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":37,"context_line":"    if not hasattr(creds_provider, \u0027get_primary_network\u0027):"},{"line_number":38,"context_line":"        # NOTE(andreaf) get_primary_network will always be available once"},{"line_number":39,"context_line":"        # bp test-accounts-continued is implemented"},{"line_number":40,"context_line":"        network \u003d creds_provider.get_primary_network()"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_6e7ef51a","line":37,"updated":"2015-03-25 17:46:40.000000000","message":"I think you did not want the \u0027not\u0027 here.","commit_id":"b9a70d59e6989da504c6ac9874fa2d79db1fbc4e"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"fc6b48f65113cf7539ba854f4c1fd8c70f24e0bc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":37,"context_line":"    # NOTE(andreaf) get_primary_network will always be available once"},{"line_number":38,"context_line":"    # bp test-accounts-continued is implemented"},{"line_number":39,"context_line":"    if CONF.auth.allow_tenant_isolation and CONF.service_avaiable.neutron:"},{"line_number":40,"context_line":"        network \u003d creds_provider.get_primary_network()"},{"line_number":41,"context_line":"    else:"},{"line_number":42,"context_line":"        if fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6ced46_0b4721bd","line":39,"updated":"2015-03-26 02:56:01.000000000","message":"service_available","commit_id":"25aba2ebd8880026c27eb8e4f43474d8a86548a7"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"1df89c344ea6b6790f9ce0a0165ea483a0da0fbd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":37,"context_line":"    # NOTE(andreaf) get_primary_network will always be available once"},{"line_number":38,"context_line":"    # bp test-accounts-continued is implemented"},{"line_number":39,"context_line":"    if CONF.auth.allow_tenant_isolation and CONF.service_available.neutron:"},{"line_number":40,"context_line":"        network \u003d creds_provider.get_primary_network()"},{"line_number":41,"context_line":"    else:"},{"line_number":42,"context_line":"        if fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa963961_98a08292","line":39,"updated":"2015-03-26 17:35:41.000000000","message":"This also needs a check for baremetal, because ironic can\u0027t have more than 1 network","commit_id":"1c025439977b0c13db75509fae41666d269aa7ee"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"896e1a4ab52ccd9dd77950e502dd674493e85a35","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # bp test-accounts-continued is implemented"},{"line_number":39,"context_line":"    if (CONF.auth.allow_tenant_isolation and"},{"line_number":40,"context_line":"        (CONF.service_available.neutron and"},{"line_number":41,"context_line":"         not CONF.service_available.baremetal)):"},{"line_number":42,"context_line":"        network \u003d creds_provider.get_primary_network()"},{"line_number":43,"context_line":"    else:"},{"line_number":44,"context_line":"        if fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa963961_cea3e04e","line":41,"updated":"2015-03-26 18:37:32.000000000","message":"This must be \u0027ironic\u0027 instead of baremetal.","commit_id":"3a6f1c802ead8686a9fef070f3c360e46ffd0b5b"}],"tempest/services/compute/json/networks_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"98c451fec9d240916095a1f489dbc9a1dd640cfd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        body \u003d json.loads(body)"},{"line_number":26,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":27,"context_line":"        if name:"},{"line_number":28,"context_line":"            networks \u003d [n for n in body[\u0027networks\u0027] if n[\u0027label\u0027] \u003d\u003d name]"},{"line_number":29,"context_line":"        else:"},{"line_number":30,"context_line":"            networks \u003d body[\u0027networks\u0027]"},{"line_number":31,"context_line":"        return service_client.ResponseBodyList(resp, networks)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_46f85ec4","line":28,"updated":"2015-03-18 16:58:39.000000000","message":"I\u0027m fine with this, it should work fine. (it\u0027s how I would do it)\n\nI\u0027m just wondering does neutron\u0027s network list not support filter params?","commit_id":"de65708fb5d1f2ea6729007db16747ed410aacca"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"71e67fd4416357911a0dfbab89cc034c1b02dbe7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        body \u003d json.loads(body)"},{"line_number":26,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":27,"context_line":"        if name:"},{"line_number":28,"context_line":"            networks \u003d [n for n in body[\u0027networks\u0027] if n[\u0027label\u0027] \u003d\u003d name]"},{"line_number":29,"context_line":"        else:"},{"line_number":30,"context_line":"            networks \u003d body[\u0027networks\u0027]"},{"line_number":31,"context_line":"        return service_client.ResponseBodyList(resp, networks)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_08dbb950","line":28,"in_reply_to":"9a80dd14_46f85ec4","updated":"2015-03-25 17:02:29.000000000","message":"It does, but nova network list doesn\u0027t.","commit_id":"de65708fb5d1f2ea6729007db16747ed410aacca"}],"tempest/test.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"578e8fe53ee2cceb1fb0e07893f86fc1205d903a","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        networks_client \u003d cls.get_client_manager().networks_client"},{"line_number":447,"context_line":"        isolated_creds \u003d getattr(cls, \u0027isolated_creds\u0027, None)"},{"line_number":448,"context_line":"        if credentials.is_admin_available():"},{"line_number":449,"context_line":"            admin_creds \u003d isolated_creds.get_admin_creds()"},{"line_number":450,"context_line":"            networks_client \u003d clients.Manager(admin_creds).networks_client"},{"line_number":451,"context_line":"        return fixed_network.get_tenant_network(isolated_creds,"},{"line_number":452,"context_line":"                                                networks_client)"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa963961_0674e832","line":449,"range":{"start_line":449,"start_character":56,"end_line":449,"end_character":58},"updated":"2015-03-27 17:27:17.000000000","message":"There is a limitation in creds provider which is that the requested network resource apply be default to all credential types requested from the credentials provider.\n\nWhich means in this context that if network resources are required, they will be allocated for admin as well, which is unwanted.\n\nThere are two things we can do here to fix the issue:\n- use non isolated admin credentials to list networks\n- extend creds provider interface to support per credential type network resources","commit_id":"9ce97dfa353e3659aa0ec0a7f62ed3a7e54c4bdf"}]}
