)]}'
{"tempest/test.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"76fe1719b819f35d5665a9ad54f8bc4b1c67ec67","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    setUpClassCalled \u003d False"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # NOTE(andreaf) credentials holds a list of the credentials to be allocated"},{"line_number":104,"context_line":"    # at class setup time. Credential types can be \u0027primary\u0027, \u0027alt\u0027, \u0027admin\u0027 or"},{"line_number":105,"context_line":"    # a list of roles - the first element of the list being a label, and the"},{"line_number":106,"context_line":"    # rest the actual roles"},{"line_number":107,"context_line":"    credentials \u003d []"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    # Network resources to be provisioned for the requested test credentials."}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_b3093e32","line":106,"range":{"start_line":103,"start_character":4,"end_line":106,"end_character":27},"updated":"2017-08-25 03:06:17.000000000","message":"Also keep in mind part of the explanation that you use in the docstring is also here. No opinion on whether it should be removed or not.","commit_id":"c92e9fdfaa5171a641b96d0fda99241656854119"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"76fe1719b819f35d5665a9ad54f8bc4b1c67ec67","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        \"\"\"Allocate credentials and create the client managers from them."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":286,"context_line":"        attribute in the test class. If the value is a collection, for every"},{"line_number":287,"context_line":"        element it provisions a set of credentials and it prepares an object"},{"line_number":288,"context_line":"        of type `cls.client_manager`. The client manager is accessible by"},{"line_number":289,"context_line":"        tests via class attribute `os_[type]`:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_f3ed868b","line":286,"range":{"start_line":286,"start_character":71,"end_line":286,"end_character":76},"updated":"2017-08-25 03:06:17.000000000","message":"each","commit_id":"c92e9fdfaa5171a641b96d0fda99241656854119"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"76fe1719b819f35d5665a9ad54f8bc4b1c67ec67","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        attribute in the test class. If the value is a collection, for every"},{"line_number":287,"context_line":"        element it provisions a set of credentials and it prepares an object"},{"line_number":288,"context_line":"        of type `cls.client_manager`. The client manager is accessible by"},{"line_number":289,"context_line":"        tests via class attribute `os_[type]`:"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        Valid values in `credentials` are:"},{"line_number":292,"context_line":"        - \u0027primary\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_f3d466bf","line":289,"updated":"2017-08-25 03:06:17.000000000","message":"Seems like the intention was to enumerate the valid types -- that or the colon should be a period.","commit_id":"c92e9fdfaa5171a641b96d0fda99241656854119"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"76fe1719b819f35d5665a9ad54f8bc4b1c67ec67","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        Valid values in `credentials` are:"},{"line_number":292,"context_line":"        - \u0027primary\u0027:"},{"line_number":293,"context_line":"            A normal user is provisioned."},{"line_number":294,"context_line":"        - \u0027alt\u0027:"},{"line_number":295,"context_line":"            A normal user other than \u0027primary\u0027 is provisioned."},{"line_number":296,"context_line":"            Clients are available at os_alt."}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_f33ea6d8","line":293,"updated":"2017-08-25 03:06:17.000000000","message":"My understanding is that in this case the roles from CONF.auth.tempest_roles are assigned to primary, alt and admin? Also, what happens if [\u0027any_label\u0027, \u0027role1\u0027, \u0027role2\u0027] is provided -- do \u0027role1\u0027 and \u0027role2\u0027 override the roles specified by CONF.auth.tempest_roles?","commit_id":"c92e9fdfaa5171a641b96d0fda99241656854119"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f276e3b0091c17f70051fe2f971229b327ef0321","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        Valid values in `credentials` are:"},{"line_number":291,"context_line":"        - \u0027primary\u0027:"},{"line_number":292,"context_line":"            A normal user is provisioned."},{"line_number":293,"context_line":"        - \u0027alt\u0027:"},{"line_number":294,"context_line":"            A normal user other than \u0027primary\u0027 is provisioned."},{"line_number":295,"context_line":"            Clients are available at os_alt."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_d8193e7a","line":292,"updated":"2017-08-29 02:42:43.000000000","message":"add \"Clients are available at os_primary.\"  ?","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"0227e9c7a61811a5a7a87097644693dcb07b99f4","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        Valid values in `credentials` are:"},{"line_number":291,"context_line":"        - \u0027primary\u0027:"},{"line_number":292,"context_line":"            A normal user is provisioned."},{"line_number":293,"context_line":"        - \u0027alt\u0027:"},{"line_number":294,"context_line":"            A normal user other than \u0027primary\u0027 is provisioned."},{"line_number":295,"context_line":"            Clients are available at os_alt."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_64261cd1","line":292,"in_reply_to":"7f287b81_d8193e7a","updated":"2017-08-29 09:24:23.000000000","message":"Done","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f276e3b0091c17f70051fe2f971229b327ef0321","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":304,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":305,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":306,"context_line":"        method."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        Example::"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_d8325ef2","line":306,"updated":"2017-08-29 02:42:43.000000000","message":"add \"before calling super\u0027s `setup_credentials`\" ?","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"0227e9c7a61811a5a7a87097644693dcb07b99f4","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":304,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":305,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":306,"context_line":"        method."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        Example::"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_df9c7dc1","line":306,"in_reply_to":"7f287b81_d8325ef2","updated":"2017-08-29 09:24:23.000000000","message":"Done","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f276e3b0091c17f70051fe2f971229b327ef0321","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            class TestWithCredentials(test.BaseTestCase):"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"                credentials \u003d [\u0027primary\u0027, \u0027admin\u0027,"},{"line_number":313,"context_line":"                               [\u0027special\u0027, \u0027special_role1\u0027]]"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"                @classmethod"},{"line_number":316,"context_line":"                def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_38a7220e","line":313,"range":{"start_line":313,"start_character":44,"end_line":313,"end_character":57},"updated":"2017-08-29 02:42:43.000000000","message":"as a normal user, I can easily understand what \"primary, alt, admin\" is, but I can\u0027t understand what \"special_role1\" is, can the comment and the example\ngive more hints about this?","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"0227e9c7a61811a5a7a87097644693dcb07b99f4","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            class TestWithCredentials(test.BaseTestCase):"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"                credentials \u003d [\u0027primary\u0027, \u0027admin\u0027,"},{"line_number":313,"context_line":"                               [\u0027special\u0027, \u0027special_role1\u0027]]"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"                @classmethod"},{"line_number":316,"context_line":"                def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_5f42cd3f","line":313,"range":{"start_line":313,"start_character":44,"end_line":313,"end_character":57},"in_reply_to":"7f287b81_38a7220e","updated":"2017-08-29 09:24:23.000000000","message":"It\u0027s explained in L299+ but a bit more text would be helpful indeed.","commit_id":"eeae2f617909ee027d397b10e008e7a2f1d0d99a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"98dd89de3ae19c8a71182fa32c62a2b104c8c004","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a collection, for every"},{"line_number":305,"context_line":"        element it provisions a set of credentials and it prepares an object"},{"line_number":306,"context_line":"        of type `cls.client_manager`. The client manager is accessible by"},{"line_number":307,"context_line":"        tests via class attribute `os_[type]`:"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        Valid values in `credentials` are:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_926a9cb0","line":306,"updated":"2017-09-06 19:04:15.000000000","message":"Is this true? What if I did [\u0027primary\u0027, \u0027primary\u0027, \u0027primary\u0027]? That only generates one set of creds in the dynamic cred provider.","commit_id":"5d3e306f07c58d6bce7f1e2ec208117beafa2638"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"30d4d05b556171fdaa82c960fbdb101df29cbddc","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a collection, for every"},{"line_number":305,"context_line":"        element it provisions a set of credentials and it prepares an object"},{"line_number":306,"context_line":"        of type `cls.client_manager`. The client manager is accessible by"},{"line_number":307,"context_line":"        tests via class attribute `os_[type]`:"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        Valid values in `credentials` are:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_291fe85b","line":306,"in_reply_to":"7f287b81_926a9cb0","updated":"2017-09-07 10:58:24.000000000","message":"nice catch I\u0027ll be more specific","commit_id":"5d3e306f07c58d6bce7f1e2ec208117beafa2638"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"98dd89de3ae19c8a71182fa32c62a2b104c8c004","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            Clients are available at os_roles_\u003clist\u003e[0]."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":324,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":325,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":326,"context_line":"        method (note that it must be invoked before the `setup_credentials`"},{"line_number":327,"context_line":"        is invoked on super)."}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_726730eb","line":324,"updated":"2017-09-06 19:04:15.000000000","message":"This is incorrect by default we allocate everything in dynamic creds. This is why the neutron base test class calls set_network_resources() in it\u0027s setup_credentials.","commit_id":"5d3e306f07c58d6bce7f1e2ec208117beafa2638"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"30d4d05b556171fdaa82c960fbdb101df29cbddc","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            Clients are available at os_roles_\u003clist\u003e[0]."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":324,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":325,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":326,"context_line":"        method (note that it must be invoked before the `setup_credentials`"},{"line_number":327,"context_line":"        is invoked on super)."}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_c93984d7","line":324,"in_reply_to":"7f287b81_726730eb","updated":"2017-09-07 10:58:24.000000000","message":"heh, it\u0027s the other way around","commit_id":"5d3e306f07c58d6bce7f1e2ec208117beafa2638"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd86b6604aba1abaaf116266a3dbc6fdeb4129ca","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a non-empty collection,"},{"line_number":305,"context_line":"        a credentials provider is setup, and credentials a provisioned or"},{"line_number":306,"context_line":"        allocated based on the content of the collection. Every set of"},{"line_number":307,"context_line":"        is associated to an object of type `cls.client_manager`."},{"line_number":308,"context_line":"        The client manager is accessible by tests via class attribute"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f287b81_a2975f45","line":305,"range":{"start_line":305,"start_character":57,"end_line":305,"end_character":58},"updated":"2017-09-07 20:51:36.000000000","message":"s/a/are","commit_id":"e92cb8749cf6e7ce28a20e08519f853fa1c83a24"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"12bf7a7dfdca07551e644150dfa15eaa54268f4f","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a non-empty collection,"},{"line_number":305,"context_line":"        a credentials provider is setup, and credentials a provisioned or"},{"line_number":306,"context_line":"        allocated based on the content of the collection. Every set of"},{"line_number":307,"context_line":"        is associated to an object of type `cls.client_manager`."},{"line_number":308,"context_line":"        The client manager is accessible by tests via class attribute"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f2577a7_3b12195a","line":305,"range":{"start_line":305,"start_character":57,"end_line":305,"end_character":58},"in_reply_to":"7f287b81_a2975f45","updated":"2017-09-09 07:34:57.000000000","message":"Done","commit_id":"e92cb8749cf6e7ce28a20e08519f853fa1c83a24"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd86b6604aba1abaaf116266a3dbc6fdeb4129ca","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a non-empty collection,"},{"line_number":305,"context_line":"        a credentials provider is setup, and credentials a provisioned or"},{"line_number":306,"context_line":"        allocated based on the content of the collection. Every set of"},{"line_number":307,"context_line":"        is associated to an object of type `cls.client_manager`."},{"line_number":308,"context_line":"        The client manager is accessible by tests via class attribute"},{"line_number":309,"context_line":"        `os_[type]`:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f287b81_4280bbf7","line":306,"range":{"start_line":306,"start_character":68,"end_line":306,"end_character":70},"updated":"2017-09-07 20:51:36.000000000","message":"s/of//","commit_id":"e92cb8749cf6e7ce28a20e08519f853fa1c83a24"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"12bf7a7dfdca07551e644150dfa15eaa54268f4f","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        `setup_credentials` looks for the content of the `credentials`"},{"line_number":304,"context_line":"        attribute in the test class. If the value is a non-empty collection,"},{"line_number":305,"context_line":"        a credentials provider is setup, and credentials a provisioned or"},{"line_number":306,"context_line":"        allocated based on the content of the collection. Every set of"},{"line_number":307,"context_line":"        is associated to an object of type `cls.client_manager`."},{"line_number":308,"context_line":"        The client manager is accessible by tests via class attribute"},{"line_number":309,"context_line":"        `os_[type]`:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f2577a7_db18b576","line":306,"range":{"start_line":306,"start_character":68,"end_line":306,"end_character":70},"in_reply_to":"7f287b81_4280bbf7","updated":"2017-09-09 07:34:57.000000000","message":"Done","commit_id":"e92cb8749cf6e7ce28a20e08519f853fa1c83a24"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"24b68451a9b39f0252299c1915f3d1b663fb3ced","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            It can be used multiple times, with unique labels."},{"line_number":327,"context_line":"            Clients are available at os_roles_\u003clist\u003e[0]."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":330,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":331,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":332,"context_line":"        method (note that it must be invoked before the `setup_credentials`"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f2577a7_f4f7dcf4","line":329,"range":{"start_line":329,"start_character":55,"end_line":329,"end_character":65},"updated":"2017-09-12 05:45:07.000000000","message":"\"except when using\"? \n\"in case of\" seems to refer to something that won\u0027t happen generally, but dynamic credentials is not such case.","commit_id":"816c22e6a6f49829f1746742958e90cff96e9528"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"49600030ee8b621fe2d1a6e6efc985993f10ce95","unresolved":false,"context_lines":[{"line_number":347,"context_line":""},{"line_number":348,"context_line":"                @classmethod"},{"line_number":349,"context_line":"                def setup_clients(cls):"},{"line_number":350,"context_line":"                    cls.servers \u003d cls.os_primary.compute.ServersClient()"},{"line_number":351,"context_line":"                    cls.admin_servers \u003d cls.os_admin.compute.ServersClient()"},{"line_number":352,"context_line":"                    # certain API calls may require a user with a specific"},{"line_number":353,"context_line":"                    # role assigned. In this example `special_role1` is"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f2577a7_ce556d52","line":350,"range":{"start_line":350,"start_character":20,"end_line":350,"end_character":31},"updated":"2017-09-12 03:19:44.000000000","message":"I still prefer cls.servers_client:)","commit_id":"816c22e6a6f49829f1746742958e90cff96e9528"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"107966678a12ae447faf5ebf345859ca70576a0a","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            It can be used multiple times, with unique labels."},{"line_number":327,"context_line":"            Clients are available at os_roles_\u003clist\u003e[0]."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":330,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":331,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":332,"context_line":"        method (note that it must be invoked before the `setup_credentials`"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f2577a7_a9d2c8fe","line":329,"updated":"2017-09-14 17:29:05.000000000","message":"This is wrong, by default all the network resources are allocated. We only don\u0027t allocate any resources if you do:\n\n  def setup_credentials(cls):\n      cls.set_network_resources()\n      super(...)","commit_id":"45e3dec2083d328abf97648048350d52dfce06f5"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"063d78dbdf9acac45667e71710821554043cc2fd","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            It can be used multiple times, with unique labels."},{"line_number":327,"context_line":"            Clients are available at os_roles_\u003clist\u003e[0]."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        By default no network resources are allocated (in case of dynamic"},{"line_number":330,"context_line":"        credentials). Network related tests must specify which network"},{"line_number":331,"context_line":"        resources shall be provisioned using the `set_network_resources()`"},{"line_number":332,"context_line":"        method (note that it must be invoked before the `setup_credentials`"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f2577a7_da0b9421","line":329,"in_reply_to":"5f2577a7_a9d2c8fe","updated":"2017-09-14 19:01:04.000000000","message":"Done","commit_id":"45e3dec2083d328abf97648048350d52dfce06f5"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"903b245e0498037c6518fa5dbc989714f1b6870d","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        is specified."},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"        This method is designed so that only the network resources set on the"},{"line_number":767,"context_line":"        leaf class are honoured."},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        Credentials are provisioned as part of the class setup fixture,"},{"line_number":770,"context_line":"        during the `setup_credentials` step. For this to be effective this"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f5c4f37_85188781","line":767,"updated":"2017-09-21 14:39:44.000000000","message":"Heh,  I thought we used American English in projects :p","commit_id":"a6c885a8f85d6b3050c23c311f39644309cd05ff"}],"tempest/tests/test_test.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"76fe1719b819f35d5665a9ad54f8bc4b1c67ec67","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        expected_clients \u003d \u0027clients\u0027"},{"line_number":297,"context_line":"        with mock.patch.object("},{"line_number":298,"context_line":"                AllCredentials,"},{"line_number":299,"context_line":"                \u0027get_client_manager\u0027) as mock_get_client_manager:"},{"line_number":300,"context_line":"            mock_get_client_manager.return_value \u003d expected_clients"},{"line_number":301,"context_line":"            all_creds \u003d AllCredentials()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_3e2cf597","line":298,"updated":"2017-08-25 03:06:17.000000000","message":"This looks over-indented?","commit_id":"c92e9fdfaa5171a641b96d0fda99241656854119"}]}
