)]}'
{"tempest/api/compute/servers/test_create_server.py":[{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"119a643594e393b02040196b872e79d5a71adae0","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def setup_clients(cls):"},{"line_number":47,"context_line":"        super(ServersTestJSON, cls).setup_clients()"},{"line_number":48,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @classmethod"},{"line_number":51,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"41dee5d4_c3d23da9","line":48,"updated":"2024-10-24 15:18:27.000000000","message":"You need to setup the ports client here in order to create a port within your test e.g.:\n`cls.ports_client \u003d cls.os_primary.ports_client`","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def setup_clients(cls):"},{"line_number":47,"context_line":"        super(ServersTestJSON, cls).setup_clients()"},{"line_number":48,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @classmethod"},{"line_number":51,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"29c2a64e_f5ccf6b8","line":48,"in_reply_to":"18781ff4_950f25b1","updated":"2024-10-30 18:02:15.000000000","message":"Acknowledged","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"926a3264564c01303207c9d500e68eec7c39ac99","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def setup_clients(cls):"},{"line_number":47,"context_line":"        super(ServersTestJSON, cls).setup_clients()"},{"line_number":48,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @classmethod"},{"line_number":51,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a9f004dc_ad38660a","line":48,"in_reply_to":"41dee5d4_c3d23da9","updated":"2024-10-24 18:27:27.000000000","message":"so can I have two super() in a class method like this \n\n def setup_clients(cls):\n        super(ServersTestJSON, cls).setup_clients()\n        cls.client \u003d cls.servers_client\n        super(PortTest, cls).setup_clients()\n        cls.ports_client \u003d cls.os_primary.ports_client\n\nor do I need two separate def setup_clients(cls): one for server and on for ports\n\n def setup_clients_servers(cls):\n        super(ServersTestJSON, cls).setup_clients()\n        cls.client \u003d cls.servers_client\n        \n \n def setup_clients_ports(cls):\n        super(PortTest, cls).setup_clients()\n        cls.ports_client \u003d cls.os_primary.ports_client","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"e39f3d38edc36379af1f3e842041dab52fa78ecc","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def setup_clients(cls):"},{"line_number":47,"context_line":"        super(ServersTestJSON, cls).setup_clients()"},{"line_number":48,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @classmethod"},{"line_number":51,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"18781ff4_950f25b1","line":48,"in_reply_to":"a9f004dc_ad38660a","updated":"2024-10-24 18:44:16.000000000","message":"No you do not need multiple supers, that is just to allow ServersTestJSON to call setup_clients() from the class it inherits from.  You just need to add `cls.ports_client \u003d cls.os_primary.ports_client`, you can reference [1] for an example.\n\n[1] https://github.com/openstack/tempest/blob/master/tempest/api/compute/servers/test_attach_interfaces.py#L62","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"63aa079f71faab35635f01913b862ae739a90fe7","unresolved":true,"context_lines":[{"line_number":184,"context_line":"                    \u0027port\u0027: port_id"},{"line_number":185,"context_line":"                },"},{"line_number":186,"context_line":"            ])"},{"line_number":187,"context_line":"            "},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"        "},{"line_number":190,"context_line":"class ServersTestManualDisk(ServersTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ca3bacae_d357b10e","line":187,"updated":"2024-10-24 15:52:22.000000000","message":"Also remove these extra spaces here pls","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                    \u0027port\u0027: port_id"},{"line_number":185,"context_line":"                },"},{"line_number":186,"context_line":"            ])"},{"line_number":187,"context_line":"            "},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"        "},{"line_number":190,"context_line":"class ServersTestManualDisk(ServersTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"6105b7d2_9a33ce6a","line":187,"in_reply_to":"ca3bacae_d357b10e","updated":"2024-10-30 18:02:15.000000000","message":"Acknowledged","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"63aa079f71faab35635f01913b862ae739a90fe7","unresolved":true,"context_lines":[{"line_number":186,"context_line":"            ])"},{"line_number":187,"context_line":"            "},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"        "},{"line_number":190,"context_line":"class ServersTestManualDisk(ServersTestJSON):"},{"line_number":191,"context_line":"    \"\"\"Test creating server and verifying the server attributes"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"184705cb_9ae2d67e","line":189,"updated":"2024-10-24 15:52:22.000000000","message":"ditto","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            ])"},{"line_number":187,"context_line":"            "},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"        "},{"line_number":190,"context_line":"class ServersTestManualDisk(ServersTestJSON):"},{"line_number":191,"context_line":"    \"\"\"Test creating server and verifying the server attributes"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9b4842b3_6fe5596c","line":189,"in_reply_to":"184705cb_9ae2d67e","updated":"2024-10-30 18:02:15.000000000","message":"Acknowledged","commit_id":"3ad5e33e41110861617ae4f032225fdd39ab0250"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"Test creating VM with unddressed port \""},{"line_number":161,"context_line":"        network \u003d self.get_tenant_network()"},{"line_number":162,"context_line":"        network_id \u003d network[\u0027id\u0027]"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e5a71e7f_ee11b909","line":160,"updated":"2024-10-30 16:51:23.000000000","message":"\u0027unddressed\u0027 Typo","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"Test creating VM with unddressed port \""},{"line_number":161,"context_line":"        network \u003d self.get_tenant_network()"},{"line_number":162,"context_line":"        network_id \u003d network[\u0027id\u0027]"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"b59e10ac_407d2982","line":160,"in_reply_to":"e5a71e7f_ee11b909","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":168,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":169,"context_line":"                name\u003dself.__class__.__name__))"},{"line_number":170,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":171,"context_line":"        self.addCleanup(self.ports_client.delete_port, port_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        #Create a server with unaddressed port"},{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("}],"source_content_type":"text/x-python","patch_set":2,"id":"7c4c10c6_35085a6d","line":171,"updated":"2024-10-30 16:51:23.000000000","message":"The `create_port` method automatically adds a cleanup resource so this is not needed.","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":169,"context_line":"                name\u003dself.__class__.__name__))"},{"line_number":170,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":171,"context_line":"        self.addCleanup(self.ports_client.delete_port, port_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        #Create a server with unaddressed port"},{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("}],"source_content_type":"text/x-python","patch_set":2,"id":"75866661_2946009b","line":171,"in_reply_to":"7c4c10c6_35085a6d","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":171,"context_line":"        self.addCleanup(self.ports_client.delete_port, port_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        #Create a server with unaddressed port"},{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("},{"line_number":175,"context_line":"            self.os_primary)"},{"line_number":176,"context_line":"        server \u003d self.create_test_server("},{"line_number":177,"context_line":"            validatable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"71dacba0_26d6c22b","line":174,"updated":"2024-10-30 16:51:23.000000000","message":"Validation resources are only needed if you need to ssh into the guest for additional checks.  This is just confirming the guest will boot with an unaddressed port so its not really needed.","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        self.addCleanup(self.ports_client.delete_port, port_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        #Create a server with unaddressed port"},{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("},{"line_number":175,"context_line":"            self.os_primary)"},{"line_number":176,"context_line":"        server \u003d self.create_test_server("},{"line_number":177,"context_line":"            validatable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e852003_6d9c6784","line":174,"in_reply_to":"71dacba0_26d6c22b","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("},{"line_number":175,"context_line":"            self.os_primary)"},{"line_number":176,"context_line":"        server \u003d self.create_test_server("},{"line_number":177,"context_line":"            validatable\u003dTrue,"},{"line_number":178,"context_line":"            validation_resources\u003dvalidation_resources,"},{"line_number":179,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":180,"context_line":"            name\u003ddata_utils.rand_name("}],"source_content_type":"text/x-python","patch_set":2,"id":"139941be_1070239a","line":177,"updated":"2024-10-30 16:51:23.000000000","message":"This and L178 are not needed since you do not need to ssh into the guest.","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        validation_resources \u003d self.get_test_validation_resources("},{"line_number":175,"context_line":"            self.os_primary)"},{"line_number":176,"context_line":"        server \u003d self.create_test_server("},{"line_number":177,"context_line":"            validatable\u003dTrue,"},{"line_number":178,"context_line":"            validation_resources\u003dvalidation_resources,"},{"line_number":179,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":180,"context_line":"            name\u003ddata_utils.rand_name("}],"source_content_type":"text/x-python","patch_set":2,"id":"52331d24_694fb0b2","line":177,"in_reply_to":"139941be_1070239a","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":177,"context_line":"            validatable\u003dTrue,"},{"line_number":178,"context_line":"            validation_resources\u003dvalidation_resources,"},{"line_number":179,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":180,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":181,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":182,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":183,"context_line":"            networks\u003d["}],"source_content_type":"text/x-python","patch_set":2,"id":"c01054c5_d8d6ad0c","line":180,"updated":"2024-10-30 16:51:23.000000000","message":"`create_test_server` also includes this if a name is not passed so this is not needed either.","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            validatable\u003dTrue,"},{"line_number":178,"context_line":"            validation_resources\u003dvalidation_resources,"},{"line_number":179,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":180,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":181,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":182,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":183,"context_line":"            networks\u003d["}],"source_content_type":"text/x-python","patch_set":2,"id":"1f061d5e_963ee9b5","line":180,"in_reply_to":"c01054c5_d8d6ad0c","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f858c6e16d8eb30375b9fc40c46c21cbbf1120ed","unresolved":true,"context_lines":[{"line_number":185,"context_line":"                    \u0027port\u0027: port_id"},{"line_number":186,"context_line":"                },"},{"line_number":187,"context_line":"            ])"},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"class ServersTestManualDisk(ServersTestJSON):"},{"line_number":190,"context_line":"    \"\"\"Test creating server and verifying the server attributes"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"4d7fbbd4_919252f1","line":188,"updated":"2024-10-30 16:51:23.000000000","message":"The `create_test_server` method adds a cleanup automatically so this is not needed.","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"526b9dfebb1bad3a5fbad80de3f961b4cb0d92d1","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                    \u0027port\u0027: port_id"},{"line_number":186,"context_line":"                },"},{"line_number":187,"context_line":"            ])"},{"line_number":188,"context_line":"        self.addCleanup(self.delete_server, server[\u0027id\u0027])"},{"line_number":189,"context_line":"class ServersTestManualDisk(ServersTestJSON):"},{"line_number":190,"context_line":"    \"\"\"Test creating server and verifying the server attributes"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9c9de706_bd14d585","line":188,"in_reply_to":"4d7fbbd4_919252f1","updated":"2024-10-30 18:02:15.000000000","message":"Done","commit_id":"5ca759d8013df458172833167efe046fe54d1cdb"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"a51c1e605dd6f8a9a9da25297ca48dbff3f616f5","unresolved":true,"context_lines":[{"line_number":173,"context_line":"        server \u003d self.create_test_server("},{"line_number":174,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":175,"context_line":"           #name\u003ddata_utils.rand_name("},{"line_number":176,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":177,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":178,"context_line":"            networks\u003d["},{"line_number":179,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":3,"id":"f2d4657d_d5682b59","line":176,"updated":"2024-11-07 13:33:34.000000000","message":"you will need to remove L176 and L177 as well to resolve indentation error","commit_id":"bfd121be76e091d644fec25e69a0fe1e8a466cd3"}]}
