Merge "Test graphical console novnc connection"
diff --git a/MANIFEST.in b/MANIFEST.in
deleted file mode 100644
index c978a52..0000000
--- a/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-include AUTHORS
-include ChangeLog
-exclude .gitignore
-exclude .gitreview
-
-global-exclude *.pyc
diff --git a/README.rst b/README.rst
index e4e5a10..d9d0d29 100644
--- a/README.rst
+++ b/README.rst
@@ -1,15 +1,16 @@
-==============================================
-Tempest plugin for ironic and ironic-inspector
-==============================================
+=========================
+Tempest plugin for Ironic
+=========================
-This repository contains a Tempest_ plugin for OpenStack `Bare Metal`_ and
-`Bare Metal Introspection`_ projects.
+.. image:: https://governance.openstack.org/tc/badges/ironic-tempest-plugin.svg
+
+This repository contains a Tempest_ plugin for OpenStack `Bare Metal`_
+project.
* Free software: Apache license
* Documentation: https://docs.openstack.org/ironic-tempest-plugin
* Source: https://opendev.org/openstack/ironic-tempest-plugin
-* Bugs: https://storyboard.openstack.org/#!/project/951
+* Bugs: https://bugs.launchpad.net/ironic/+bugs
.. _Tempest: https://docs.openstack.org/tempest/latest/
.. _Bare Metal: https://docs.openstack.org/ironic/latest/
-.. _Bare Metal Introspection: https://docs.openstack.org/ironic-inspector/latest/
diff --git a/doc/source/index.rst b/doc/source/index.rst
index b036a93..c10c050 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -1,4 +1,17 @@
-.. include:: ../../README.rst
+=========================
+Tempest plugin for Ironic
+=========================
+
+This repository contains a Tempest_ plugin for OpenStack `Bare Metal`_
+project.
+
+* Free software: Apache license
+* Documentation: https://docs.openstack.org/ironic-tempest-plugin
+* Source: https://opendev.org/openstack/ironic-tempest-plugin
+* Bugs: https://bugs.launchpad.net/ironic/+bugs
+
+.. _Tempest: https://docs.openstack.org/tempest/latest/
+.. _Bare Metal: https://docs.openstack.org/ironic/latest/
Contents:
@@ -15,4 +28,3 @@
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
-
diff --git a/ironic_tempest_plugin/tests/api/admin/test_shards.py b/ironic_tempest_plugin/tests/api/admin/test_shards.py
index 5a5e4ba..c2c83bb 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_shards.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_shards.py
@@ -137,7 +137,7 @@
def setUp(self):
super(TestGetAllShards, self).setUp()
_, self.chassis = self.create_chassis()
- self.shards = ["shard1", "shard2", "shard3"]
+ self.shards = {"shard1", "shard2", "shard3"}
self.node_ids = []
for shard in self.shards:
_, node = self.create_node(self.chassis['uuid'], shard=shard)
@@ -146,6 +146,6 @@
@decorators.idempotent_id('fc786196-63c7-4e0d-bd14-3e478d4d1e3e')
def test_get_all_shards(self):
_, fetched_shards = self.client.get_shards()
- fetched_shards = [shard['name'] for shard in fetched_shards['shards']]
+ fetched_shards = {shard['name'] for shard in fetched_shards['shards']}
- self.assertCountEqual(self.shards, fetched_shards)
+ self.assertTrue(self.shards.issubset(fetched_shards))
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
index e3a9a58..6b68e56 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
@@ -14,6 +14,7 @@
# under the License.
from oslo_log import log as logging
+from tempest.common import compute
from tempest.common import utils
from tempest.common import waiters
from tempest import config
@@ -26,7 +27,8 @@
CONF = config.CONF
-class BaremetalBasicOps(baremetal_manager.BaremetalScenarioTest):
+class BaremetalBasicOps(baremetal_manager.BaremetalScenarioTest,
+ compute.NoVNCValidateMixin):
"""This smoke test tests an Ironic driver.
It follows this basic set of operations:
@@ -222,9 +224,25 @@
# set the lessee.
self.assertEqual(iinfo['project_id'], self.node['lessee'])
+ def validate_console(self):
+
+ body = self.servers_client.get_vnc_console(self.instance['id'],
+ type='novnc')['console']
+ self.assertEqual('novnc', body['type'])
+ # Do the initial HTTP Request to novncproxy to get the NoVNC JavaScript
+ self.validate_novnc_html(body['url'])
+ # Do the WebSockify HTTP Request to novncproxy to do the RFB connection
+ self.websocket = compute.create_websocket(body['url'])
+ self.addCleanup(self.websocket.close)
+ # Validate that we successfully connected and upgraded to Web Sockets
+ self.validate_websocket_upgrade()
+ # Validate the RFB Negotiation to determine if a valid VNC session
+ self.validate_rfb_negotiation()
+
def baremetal_server_ops(self):
self.add_keypair()
self.instance, self.node = self.boot_instance(image_id=self.image_ref)
+ self.validate_console()
self.validate_image()
self.validate_ports()
self.validate_scheduling()
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 4849f56..dfdd81f 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -17,6 +17,7 @@
- ironic-standalone-redfish-2025.2
- ironic-standalone-redfish-2025.1
- ironic-tempest-standalone-advanced
+ - ironic-tempest-bios-ipmi-direct
# NOTE(dtantsur): these jobs cover rarely changed tests and are quite
# unstable, so keep them non-voting.
- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode:
@@ -34,3 +35,4 @@
- ironic-standalone-redfish
- ironic-standalone-redfish-2025.2
- ironic-standalone-redfish-2025.1
+ - ironic-tempest-bios-ipmi-direct