)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Advanced tests for Networking Ansible feature"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"test_boot_bm_in_parallel - create BM guests in parallel"},{"line_number":10,"context_line":"and check that all the BMs have been created successfully."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ifdb989b3e26628ee0ffbb378d096973e251b5c17"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7faddb67_6edf033a","line":10,"updated":"2019-07-15 13:35:52.000000000","message":"I\u0027m not really sure what value this brings besides the pseudo-treading, which already happens when mulitple tempest tests are executing as the test runners can be parallel in execution. I guess more background is needed why this brings value.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Advanced tests for Networking Ansible feature"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"test_boot_bm_in_parallel - create BM guests in parallel"},{"line_number":10,"context_line":"and check that all the BMs have been created successfully."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ifdb989b3e26628ee0ffbb378d096973e251b5c17"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7faddb67_17e1b42a","line":10,"in_reply_to":"7faddb67_6edf033a","updated":"2019-07-16 11:09:04.000000000","message":"OK, I\u0027ll fix that","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"}],"ironic_tempest_plugin/config.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                    \"the tests.\"),"},{"line_number":144,"context_line":"    cfg.BoolOpt(\u0027enable_advanced_test_scenario\u0027,"},{"line_number":145,"context_line":"                default\u003dFalse,"},{"line_number":146,"context_line":"                help\u003d\"Avoid running \u0027test_boot_bm_in_parallel\u0027 by default\")"},{"line_number":147,"context_line":"]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"BaremetalFeaturesGroup \u003d ["}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_0ed1af23","line":146,"updated":"2019-07-15 13:35:52.000000000","message":"More detail is needed as to what this test does and why someone may, or may not want to execute it, along with what the requirements of the test are.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                    \"the tests.\"),"},{"line_number":144,"context_line":"    cfg.BoolOpt(\u0027enable_advanced_test_scenario\u0027,"},{"line_number":145,"context_line":"                default\u003dFalse,"},{"line_number":146,"context_line":"                help\u003d\"Avoid running \u0027test_boot_bm_in_parallel\u0027 by default\")"},{"line_number":147,"context_line":"]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"BaremetalFeaturesGroup \u003d ["}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_37c71099","line":146,"in_reply_to":"7faddb67_0ed1af23","updated":"2019-07-16 11:09:04.000000000","message":"OK, I\u0027ll fix that","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"9fa7ab223427fc76cecaa9fbf8650d1322830fc1","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    cfg.BoolOpt(\u0027enable_advanced_test_scenario\u0027,"},{"line_number":145,"context_line":"                default\u003dFalse,"},{"line_number":146,"context_line":"                help\u003d\"Avoid running \u0027test_boot_bm_in_parallel\u0027 by default.\""},{"line_number":147,"context_line":"                     \"This test is important when customer might want to create\""},{"line_number":148,"context_line":"                     \"Baremetal Guests in parallel.\""},{"line_number":149,"context_line":"                     \"It will take time to complete this test scenario, therefore\""},{"line_number":150,"context_line":"                     \"total execution time of all tests will be increased.\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_65594b8c","line":147,"updated":"2019-07-16 15:30:32.000000000","message":"careful with length here and at L149, should be fewer than 80 characters or pep8 test fails\nAlso please remember to leave one blank space between the last character of the line and the \"","commit_id":"a888bcb363db898be39a912686865ba5c68d797a"}],"ironic_tempest_plugin/tests/scenario/test_baremetal_advanced_ops.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"4fe4b9ccdb366484f67bcd2b5e0c06dcab7dff10","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is not None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_aa62ac14","line":48,"range":{"start_line":47,"start_character":12,"end_line":48,"end_character":50},"updated":"2019-02-27 14:35:43.000000000","message":"The condition is wrong. If you have available_nodes set to 7 then the condition is still True and you get a skip.","commit_id":"0f1c2f5fcc953a53b36e04fd7af51afcf0dc3afa"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0951054f7f3e9212623e53f370bf160e54e77ffc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    * Delete instances"},{"line_number":37,"context_line":"    \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def skip_checks(cls):"},{"line_number":43,"context_line":"        super(BaremetalAdvancedTests, cls).skip_checks()"},{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is not None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create_tenant_network(self, clients, tenant_cidr):"},{"line_number":54,"context_line":"        network \u003d self._create_network("},{"line_number":55,"context_line":"            networks_client\u003dclients.networks_client,"},{"line_number":56,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":57,"context_line":"        router \u003d self._get_router("},{"line_number":58,"context_line":"            client\u003dclients.routers_client,"},{"line_number":59,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        result \u003d clients.subnets_client.create_subnet("},{"line_number":62,"context_line":"            name\u003ddata_utils.rand_name(\u0027subnet\u0027),"},{"line_number":63,"context_line":"            network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":64,"context_line":"            tenant_id\u003dclients.credentials.tenant_id,"},{"line_number":65,"context_line":"            ip_version\u003d4,"},{"line_number":66,"context_line":"            cidr\u003dtenant_cidr)"},{"line_number":67,"context_line":"        subnet \u003d result[\u0027subnet\u0027]"},{"line_number":68,"context_line":"        clients.routers_client.add_router_interface(router[\u0027id\u0027],"},{"line_number":69,"context_line":"                                                    subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":70,"context_line":"        self.addCleanup(clients.subnets_client.delete_subnet, subnet[\u0027id\u0027])"},{"line_number":71,"context_line":"        self.addCleanup(clients.routers_client.remove_router_interface,"},{"line_number":72,"context_line":"                        router[\u0027id\u0027], subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":73,"context_line":"        return network, subnet, router"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @decorators.idempotent_id(\u002785e7aa2c-320d-11e9-8f4c-74e5f9e2a801\u0027)"},{"line_number":76,"context_line":"    @utils.services(\u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_45000e03","line":73,"range":{"start_line":39,"start_character":0,"end_line":73,"end_character":38},"updated":"2019-02-25 13:12:38.000000000","message":"This is very similar to what already exists here: http://git.openstack.org/cgit/openstack/ironic-tempest-plugin/tree/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py#n39\n\nWould be good to take it out from BaremetalMultitenancy class and put it into some sort of a base class. Then BaremetalMultitenancy can inherit from the base class and so can this BaremetalAdvancedTests class.","commit_id":"0f1c2f5fcc953a53b36e04fd7af51afcf0dc3afa"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"a0c69d24de8cc22d5cb59db5870187b1e0c92f1f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    * Delete instances"},{"line_number":37,"context_line":"    \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def skip_checks(cls):"},{"line_number":43,"context_line":"        super(BaremetalAdvancedTests, cls).skip_checks()"},{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is not None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def create_tenant_network(self, clients, tenant_cidr):"},{"line_number":54,"context_line":"        network \u003d self._create_network("},{"line_number":55,"context_line":"            networks_client\u003dclients.networks_client,"},{"line_number":56,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":57,"context_line":"        router \u003d self._get_router("},{"line_number":58,"context_line":"            client\u003dclients.routers_client,"},{"line_number":59,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        result \u003d clients.subnets_client.create_subnet("},{"line_number":62,"context_line":"            name\u003ddata_utils.rand_name(\u0027subnet\u0027),"},{"line_number":63,"context_line":"            network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":64,"context_line":"            tenant_id\u003dclients.credentials.tenant_id,"},{"line_number":65,"context_line":"            ip_version\u003d4,"},{"line_number":66,"context_line":"            cidr\u003dtenant_cidr)"},{"line_number":67,"context_line":"        subnet \u003d result[\u0027subnet\u0027]"},{"line_number":68,"context_line":"        clients.routers_client.add_router_interface(router[\u0027id\u0027],"},{"line_number":69,"context_line":"                                                    subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":70,"context_line":"        self.addCleanup(clients.subnets_client.delete_subnet, subnet[\u0027id\u0027])"},{"line_number":71,"context_line":"        self.addCleanup(clients.routers_client.remove_router_interface,"},{"line_number":72,"context_line":"                        router[\u0027id\u0027], subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":73,"context_line":"        return network, subnet, router"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @decorators.idempotent_id(\u002785e7aa2c-320d-11e9-8f4c-74e5f9e2a801\u0027)"},{"line_number":76,"context_line":"    @utils.services(\u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_50a193a8","line":73,"range":{"start_line":39,"start_character":0,"end_line":73,"end_character":38},"in_reply_to":"9fdfeff1_45000e03","updated":"2019-02-26 09:02:24.000000000","message":"There is another option: to move the same function to base.py and use it in both tests","commit_id":"0f1c2f5fcc953a53b36e04fd7af51afcf0dc3afa"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"692bd14a979aceaa969def00d0a12d79dc522bec","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def skip_checks(cls):"},{"line_number":43,"context_line":"        super(BaremetalAdvancedTests, cls).skip_checks()"},{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_a5459217","line":45,"updated":"2019-04-01 18:53:11.000000000","message":"So flat supports a provisioning network, it just scopes the reply to a different subnet.... So this is really not a reliable indicator of if the test can execute.","commit_id":"72950cd3b1139f73dfedf873639f8bc8129c0a0a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a28d871e7021fad3603318e062c69075991991ce","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_80ff8400","line":48,"range":{"start_line":47,"start_character":11,"end_line":48,"end_character":51},"updated":"2019-02-27 18:11:25.000000000","message":"CONF.baremetal.available_nodes \u003c 2 should be enough","commit_id":"72950cd3b1139f73dfedf873639f8bc8129c0a0a"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"f671f9229e220ae0dfd63e8d9921b22da226ea1a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_91f59453","line":48,"range":{"start_line":47,"start_character":11,"end_line":48,"end_character":51},"in_reply_to":"9fdfeff1_80ff8400","updated":"2019-02-27 20:22:50.000000000","message":"Yep, I\u0027ll fix that.","commit_id":"72950cd3b1139f73dfedf873639f8bc8129c0a0a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"692bd14a979aceaa969def00d0a12d79dc522bec","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not CONF.baremetal.use_provision_network:"},{"line_number":45,"context_line":"            msg \u003d \u0027Ironic/Neutron tenant isolation is not configured.\u0027"},{"line_number":46,"context_line":"            raise cls.skipException(msg)"},{"line_number":47,"context_line":"        if (CONF.baremetal.available_nodes is None or"},{"line_number":48,"context_line":"                CONF.baremetal.available_nodes \u003c 2):"},{"line_number":49,"context_line":"            msg \u003d (\u0027Not enough baremetal nodes, {} configured, test requires \u0027"},{"line_number":50,"context_line":"                   \u0027a minimum of 2\u0027).format(CONF.baremetal.available_nodes)"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_85f656d8","line":48,"range":{"start_line":47,"start_character":11,"end_line":48,"end_character":51},"in_reply_to":"9fdfeff1_91f59453","updated":"2019-04-01 18:53:11.000000000","message":"I think this test needs to be opt-in. A few reasons:\n\n1) The test takes 740+ seconds to execute. The overall elongation of the test time window is going to cause us to have to adjust time windows for CI jobs as well if this is not opt-in. We _can_ opt in on the master branch for ironic and elsewhere without doing so on older branches.\n\n2) It by default is thus triggered in any multiple node scenario. What should actually be checked is two nodes with the neutron network interface as it is set-able on two on the node level, and even then its not a solid guarantee that it will work in production deployments.\n\nThe actual failure that is preventing this test from moving forward is now indicating that the Length is too long.","commit_id":"72950cd3b1139f73dfedf873639f8bc8129c0a0a"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a60a3b88c0647e719e58875b47c2f15a7bdb42b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015 Mirantis, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_540bc07b","line":2,"updated":"2019-04-19 08:04:42.000000000","message":"do we need this ?","commit_id":"a101e7044ceaf939e461672fa07c83e76cc303f1"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"888e0176d0c27c5f933a2b5bc7150a19054a773d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015 Mirantis, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffb9cba7_6a3237aa","line":2,"in_reply_to":"3fce034c_540bc07b","updated":"2019-04-20 15:52:36.000000000","message":"How would you like to proceed? To remove this line #2 or to change it to be \"2019 RedHad\" instead of \"2015 Mirantis\" ?","commit_id":"a101e7044ceaf939e461672fa07c83e76cc303f1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e99be9df470359022245a83715238b0ce44808c2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015 Mirantis, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffb9cba7_224e1097","line":2,"in_reply_to":"ffb9cba7_6a3237aa","updated":"2019-04-29 10:00:05.000000000","message":"Just removing the lines 1-3 should be fine","commit_id":"a101e7044ceaf939e461672fa07c83e76cc303f1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"4f462489bd5e8625ca4bf85755dfa49fe6e0876a","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            self.skipTest(\u0027Test scenario is disabled in tempest.conf\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        tenant_cidr \u003d \u002710.0.100.0/24\u0027"},{"line_number":78,"context_line":"        nodes_number \u003d 2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Create keypair, subnet and router"},{"line_number":81,"context_line":"        keypair \u003d self.create_keypair()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_3cfb7779","line":78,"updated":"2019-07-16 09:48:15.000000000","message":"should we make this equal to the available nodes defined in CONF.baremetal.available_nodes ?","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            self.skipTest(\u0027Test scenario is disabled in tempest.conf\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        tenant_cidr \u003d \u002710.0.100.0/24\u0027"},{"line_number":78,"context_line":"        nodes_number \u003d 2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Create keypair, subnet and router"},{"line_number":81,"context_line":"        keypair \u003d self.create_keypair()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_f75178da","line":78,"in_reply_to":"7faddb67_3cfb7779","updated":"2019-07-16 11:09:04.000000000","message":"I wanted to reduce the execution time, so i did it 2 hardcoded, originally it was \"CONF.baremetal.available_nodes\" as you\u0027ve mentioned. I\u0027ll change it back.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Create keypair, subnet and router"},{"line_number":81,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":82,"context_line":"        network, subnet, router \u003d self.create_tenant_network("},{"line_number":83,"context_line":"            self.os_primary, tenant_cidr)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Create list of BM guests to create"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_6e5ce3ec","line":82,"updated":"2019-07-15 13:35:52.000000000","message":"Two nodes on the same tenant network?","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Create keypair, subnet and router"},{"line_number":81,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":82,"context_line":"        network, subnet, router \u003d self.create_tenant_network("},{"line_number":83,"context_line":"            self.os_primary, tenant_cidr)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Create list of BM guests to create"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_5772cc7c","line":82,"in_reply_to":"7faddb67_6e5ce3ec","updated":"2019-07-16 11:09:04.000000000","message":"Test main goal is to check that all BM guests were created, so the fact that all are on the same tenant is not so relevant I think.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Create list of BM guests to create"},{"line_number":86,"context_line":"        bm_to_create \u003d []"},{"line_number":87,"context_line":"        for node in range(nodes_number):"},{"line_number":88,"context_line":"            bm_name \u003d data_utils.rand_name(\u0027BM_Primary\u0027)"},{"line_number":89,"context_line":"            bm_to_create.append({\u0027name\u0027: bm_name, \u0027keypair\u0027: keypair,"},{"line_number":90,"context_line":"                                 \u0027clients\u0027: self.os_primary,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_ae665bc0","line":87,"updated":"2019-07-15 13:35:52.000000000","message":"So you create two nodes, and only two nodes?","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Create list of BM guests to create"},{"line_number":86,"context_line":"        bm_to_create \u003d []"},{"line_number":87,"context_line":"        for node in range(nodes_number):"},{"line_number":88,"context_line":"            bm_name \u003d data_utils.rand_name(\u0027BM_Primary\u0027)"},{"line_number":89,"context_line":"            bm_to_create.append({\u0027name\u0027: bm_name, \u0027keypair\u0027: keypair,"},{"line_number":90,"context_line":"                                 \u0027clients\u0027: self.os_primary,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_97112407","line":87,"in_reply_to":"7faddb67_ae665bc0","updated":"2019-07-16 11:09:04.000000000","message":"Will be taken from configuration\n\nnodes_number \u003d 2\nwill be changed to:\nnodes_number \u003d CONF.baremetal.available_nodes\n\nSee Recardo\u0027s comment Line78","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            threads.append(t)"},{"line_number":99,"context_line":"            t.start()"},{"line_number":100,"context_line":"        for t in threads:"},{"line_number":101,"context_line":"            t.join()"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # Get information for all created instances"},{"line_number":104,"context_line":"        created_instances \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_2e726b7c","line":101,"updated":"2019-07-15 13:35:52.000000000","message":"Why do we need threading?","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            threads.append(t)"},{"line_number":99,"context_line":"            t.start()"},{"line_number":100,"context_line":"        for t in threads:"},{"line_number":101,"context_line":"            t.join()"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # Get information for all created instances"},{"line_number":104,"context_line":"        created_instances \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_57ce4c82","line":101,"in_reply_to":"7faddb67_2e726b7c","updated":"2019-07-16 11:09:04.000000000","message":"We facing concurrency issues on switch that is happens when requests to the switch (to set VLANs for BM guests ports) are coming in the same time, so that is why threading is used, we want to be as close as possible to concurrency test/bug scenario and to do that we have to create BM guests in parallel.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c30ef172205c84919bcf3296060c2947426a3bdd","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                             \u0027 created BM guests:\\n\u0027 + str(created_instances))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Check connectivity for each created BM guest"},{"line_number":129,"context_line":"        floating_ips \u003d [item[\u0027floating_ip\u0027] for item in created_instances]"},{"line_number":130,"context_line":"        for ip in floating_ips:"},{"line_number":131,"context_line":"            self.check_vm_connectivity(ip_address\u003dip,"},{"line_number":132,"context_line":"                                       private_key\u003dkeypair[\u0027private_key\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_6e438314","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":74},"updated":"2019-07-15 13:35:52.000000000","message":"I don\u0027t think the key would be there if there was no FIP available. Example, if IPv6 subnets are in use, there are no FIPs and the key would raise an error.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"98b7e5c20627b75ecf3320d4b95b3812b70146ed","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                             \u0027 created BM guests:\\n\u0027 + str(created_instances))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Check connectivity for each created BM guest"},{"line_number":129,"context_line":"        floating_ips \u003d [item[\u0027floating_ip\u0027] for item in created_instances]"},{"line_number":130,"context_line":"        for ip in floating_ips:"},{"line_number":131,"context_line":"            self.check_vm_connectivity(ip_address\u003dip,"},{"line_number":132,"context_line":"                                       private_key\u003dkeypair[\u0027private_key\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_f7fad840","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":74},"in_reply_to":"7faddb67_6e438314","updated":"2019-07-16 11:09:04.000000000","message":"Actually floating IP is created for each BM guest in line 111: f_ip \u003d self.create_floating_ip(instance)[\u0027floating_ip_address\u0027] \nSo if for some reason it will fail to create and associate Floating IP to BM guest it will raise the ERROR there I guess, supposed to be handled in manager.py (in create_floating_ip method) I guess. My code is just using this infrastructure function.\nAnyway, if it doesn\u0027t raise the ERROR I can add a new assertion in code that will verify that the number of created  Floating IPs inside \"floating_ips\" list fits the number of BM guests (should be the same number).\nIf not test will failed with suitable ERROR message, because \"check_vm_connectivity\" is must and should pass for each one of created BM guests, otherwise something went wrong on creation.","commit_id":"135be8db26753df941bc1d05d1499119024e7ec6"}]}
