zuul: Make openstacksdk-functional-devstack-ironic voting
Some actions require a system scoped token. We also need to fix some outdated references that have crept in while this job has been broken before returning the job to the voting list. Change-Id: Ib6fa256d2ecb46e0966a7b3e533e1e996bc1c164 Depends-on: https://review.opendev.org/c/openstack/devstack/+/942840
This commit is contained in:
@@ -14,7 +14,7 @@ from openstack.baremetal.v1 import _common
|
|||||||
from openstack import resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class InspectionRule(_common.Resource):
|
class InspectionRule(resource.Resource):
|
||||||
resources_key = 'inspection_rules'
|
resources_key = 'inspection_rules'
|
||||||
base_path = '/inspection_rules'
|
base_path = '/inspection_rules'
|
||||||
|
|
||||||
|
@@ -34,9 +34,9 @@ class BaseBaremetalTest(base.BaseFunctionalTest):
|
|||||||
return allocation
|
return allocation
|
||||||
|
|
||||||
def create_chassis(self, **kwargs):
|
def create_chassis(self, **kwargs):
|
||||||
chassis = self.operator_cloud.baremetal.create_chassis(**kwargs)
|
chassis = self.system_admin_cloud.baremetal.create_chassis(**kwargs)
|
||||||
self.addCleanup(
|
self.addCleanup(
|
||||||
lambda: self.operator_cloud.baremetal.delete_chassis(
|
lambda: self.system_admin_cloud.baremetal.delete_chassis(
|
||||||
chassis.id, ignore_missing=True
|
chassis.id, ignore_missing=True
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -110,12 +110,12 @@ class BaseBaremetalTest(base.BaseFunctionalTest):
|
|||||||
def create_deploy_template(self, **kwargs):
|
def create_deploy_template(self, **kwargs):
|
||||||
"""Create a new deploy_template from attributes."""
|
"""Create a new deploy_template from attributes."""
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.create_deploy_template(
|
deploy_template = (
|
||||||
**kwargs
|
self.system_admin_cloud.baremetal.create_deploy_template(**kwargs)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.addCleanup(
|
self.addCleanup(
|
||||||
lambda: self.operator_cloud.baremetal.delete_deploy_template(
|
lambda: self.system_admin_cloud.baremetal.delete_deploy_template(
|
||||||
deploy_template.id, ignore_missing=True
|
deploy_template.id, ignore_missing=True
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -124,10 +124,10 @@ class BaseBaremetalTest(base.BaseFunctionalTest):
|
|||||||
def create_runbook(self, **kwargs):
|
def create_runbook(self, **kwargs):
|
||||||
"""Create a new runbook from attributes."""
|
"""Create a new runbook from attributes."""
|
||||||
|
|
||||||
runbook = self.conn.baremetal.create_runbook(**kwargs)
|
runbook = self.operator_cloud.baremetal.create_runbook(**kwargs)
|
||||||
|
|
||||||
self.addCleanup(
|
self.addCleanup(
|
||||||
lambda: self.conn.baremetal.delete_runbook(
|
lambda: self.operator_cloud.baremetal.delete_runbook(
|
||||||
runbook.id, ignore_missing=True
|
runbook.id, ignore_missing=True
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -136,10 +136,12 @@ class BaseBaremetalTest(base.BaseFunctionalTest):
|
|||||||
def create_inspection_rule(self, **kwargs):
|
def create_inspection_rule(self, **kwargs):
|
||||||
"""Create a new inspection_rule from attributes."""
|
"""Create a new inspection_rule from attributes."""
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.create_inspection_rule(**kwargs)
|
inspection_rule = (
|
||||||
|
self.system_admin_cloud.baremetal.create_inspection_rule(**kwargs)
|
||||||
|
)
|
||||||
|
|
||||||
self.addCleanup(
|
self.addCleanup(
|
||||||
lambda: self.conn.baremetal.delete_inspection_rule(
|
lambda: self.system_admin_cloud.baremetal.delete_inspection_rule(
|
||||||
inspection_rule.id, ignore_missing=True
|
inspection_rule.id, ignore_missing=True
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@@ -19,15 +19,15 @@ class TestBareMetalChassis(base.BaseBaremetalTest):
|
|||||||
def test_chassis_create_get_delete(self):
|
def test_chassis_create_get_delete(self):
|
||||||
chassis = self.create_chassis()
|
chassis = self.create_chassis()
|
||||||
|
|
||||||
loaded = self.operator_cloud.baremetal.get_chassis(chassis.id)
|
loaded = self.system_admin_cloud.baremetal.get_chassis(chassis.id)
|
||||||
self.assertEqual(loaded.id, chassis.id)
|
self.assertEqual(loaded.id, chassis.id)
|
||||||
|
|
||||||
self.operator_cloud.baremetal.delete_chassis(
|
self.system_admin_cloud.baremetal.delete_chassis(
|
||||||
chassis, ignore_missing=False
|
chassis, ignore_missing=False
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.get_chassis,
|
self.system_admin_cloud.baremetal.get_chassis,
|
||||||
chassis.id,
|
chassis.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -35,44 +35,46 @@ class TestBareMetalChassis(base.BaseBaremetalTest):
|
|||||||
chassis = self.create_chassis()
|
chassis = self.create_chassis()
|
||||||
chassis.extra = {'answer': 42}
|
chassis.extra = {'answer': 42}
|
||||||
|
|
||||||
chassis = self.operator_cloud.baremetal.update_chassis(chassis)
|
chassis = self.system_admin_cloud.baremetal.update_chassis(chassis)
|
||||||
self.assertEqual({'answer': 42}, chassis.extra)
|
self.assertEqual({'answer': 42}, chassis.extra)
|
||||||
|
|
||||||
chassis = self.operator_cloud.baremetal.get_chassis(chassis.id)
|
chassis = self.system_admin_cloud.baremetal.get_chassis(chassis.id)
|
||||||
self.assertEqual({'answer': 42}, chassis.extra)
|
self.assertEqual({'answer': 42}, chassis.extra)
|
||||||
|
|
||||||
def test_chassis_patch(self):
|
def test_chassis_patch(self):
|
||||||
chassis = self.create_chassis()
|
chassis = self.create_chassis()
|
||||||
|
|
||||||
chassis = self.operator_cloud.baremetal.patch_chassis(
|
chassis = self.system_admin_cloud.baremetal.patch_chassis(
|
||||||
chassis, dict(path='/extra/answer', op='add', value=42)
|
chassis, dict(path='/extra/answer', op='add', value=42)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, chassis.extra)
|
self.assertEqual({'answer': 42}, chassis.extra)
|
||||||
|
|
||||||
chassis = self.operator_cloud.baremetal.get_chassis(chassis.id)
|
chassis = self.system_admin_cloud.baremetal.get_chassis(chassis.id)
|
||||||
self.assertEqual({'answer': 42}, chassis.extra)
|
self.assertEqual({'answer': 42}, chassis.extra)
|
||||||
|
|
||||||
def test_chassis_negative_non_existing(self):
|
def test_chassis_negative_non_existing(self):
|
||||||
uuid = "5c9dcd04-2073-49bc-9618-99ae634d8971"
|
uuid = "5c9dcd04-2073-49bc-9618-99ae634d8971"
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.get_chassis,
|
self.system_admin_cloud.baremetal.get_chassis,
|
||||||
uuid,
|
uuid,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.find_chassis,
|
self.system_admin_cloud.baremetal.find_chassis,
|
||||||
uuid,
|
uuid,
|
||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.delete_chassis,
|
self.system_admin_cloud.baremetal.delete_chassis,
|
||||||
uuid,
|
uuid,
|
||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
)
|
)
|
||||||
self.assertIsNone(self.operator_cloud.baremetal.find_chassis(uuid))
|
self.assertIsNone(self.system_admin_cloud.baremetal.find_chassis(uuid))
|
||||||
self.assertIsNone(self.operator_cloud.baremetal.delete_chassis(uuid))
|
self.assertIsNone(
|
||||||
|
self.system_admin_cloud.baremetal.delete_chassis(uuid)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestBareMetalChassisFields(base.BaseBaremetalTest):
|
class TestBareMetalChassisFields(base.BaseBaremetalTest):
|
||||||
@@ -80,7 +82,7 @@ class TestBareMetalChassisFields(base.BaseBaremetalTest):
|
|||||||
|
|
||||||
def test_chassis_fields(self):
|
def test_chassis_fields(self):
|
||||||
self.create_chassis(description='something')
|
self.create_chassis(description='something')
|
||||||
result = self.operator_cloud.baremetal.chassis(
|
result = self.system_admin_cloud.baremetal.chassis(
|
||||||
fields=['uuid', 'extra']
|
fields=['uuid', 'extra']
|
||||||
)
|
)
|
||||||
for ch in result:
|
for ch in result:
|
||||||
|
@@ -19,10 +19,10 @@ class TestBareMetalConductor(base.BaseBaremetalTest):
|
|||||||
|
|
||||||
def test_list_get_conductor(self):
|
def test_list_get_conductor(self):
|
||||||
node = self.create_node(name='node-name')
|
node = self.create_node(name='node-name')
|
||||||
conductors = self.operator_cloud.baremetal.conductors()
|
conductors = self.system_admin_cloud.baremetal.conductors()
|
||||||
hostname_list = [conductor.hostname for conductor in conductors]
|
hostname_list = [conductor.hostname for conductor in conductors]
|
||||||
self.assertIn(node.conductor, hostname_list)
|
self.assertIn(node.conductor, hostname_list)
|
||||||
conductor1 = self.operator_cloud.baremetal.get_conductor(
|
conductor1 = self.system_admin_cloud.baremetal.get_conductor(
|
||||||
node.conductor
|
node.conductor
|
||||||
)
|
)
|
||||||
self.assertIsNotNone(conductor1.conductor_group)
|
self.assertIsNotNone(conductor1.conductor_group)
|
||||||
|
@@ -17,9 +17,6 @@ from openstack.tests.functional.baremetal import base
|
|||||||
class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
||||||
min_microversion = '1.55'
|
min_microversion = '1.55'
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
|
|
||||||
def test_baremetal_deploy_create_get_delete(self):
|
def test_baremetal_deploy_create_get_delete(self):
|
||||||
steps = [
|
steps = [
|
||||||
{
|
{
|
||||||
@@ -34,16 +31,16 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
deploy_template = self.create_deploy_template(
|
deploy_template = self.create_deploy_template(
|
||||||
name='CUSTOM_DEPLOY_TEMPLATE', steps=steps
|
name='CUSTOM_DEPLOY_TEMPLATE', steps=steps
|
||||||
)
|
)
|
||||||
loaded = self.operator_cloud.baremetal.get_deploy_template(
|
loaded = self.system_admin_cloud.baremetal.get_deploy_template(
|
||||||
deploy_template.id
|
deploy_template.id
|
||||||
)
|
)
|
||||||
self.assertEqual(loaded.id, deploy_template.id)
|
self.assertEqual(loaded.id, deploy_template.id)
|
||||||
self.operator_cloud.baremetal.delete_deploy_template(
|
self.system_admin_cloud.baremetal.delete_deploy_template(
|
||||||
deploy_template, ignore_missing=False
|
deploy_template, ignore_missing=False
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.get_deploy_template,
|
self.system_admin_cloud.baremetal.get_deploy_template,
|
||||||
deploy_template.id,
|
deploy_template.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -65,20 +62,20 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
deploy_template2 = self.create_deploy_template(
|
deploy_template2 = self.create_deploy_template(
|
||||||
name='CUSTOM_DEPLOY_TEMPLATE2', steps=steps
|
name='CUSTOM_DEPLOY_TEMPLATE2', steps=steps
|
||||||
)
|
)
|
||||||
deploy_templates = self.operator_cloud.baremetal.deploy_templates()
|
deploy_templates = self.system_admin_cloud.baremetal.deploy_templates()
|
||||||
ids = [template.id for template in deploy_templates]
|
ids = [template.id for template in deploy_templates]
|
||||||
self.assertIn(deploy_template1.id, ids)
|
self.assertIn(deploy_template1.id, ids)
|
||||||
self.assertIn(deploy_template2.id, ids)
|
self.assertIn(deploy_template2.id, ids)
|
||||||
|
|
||||||
deploy_templates_with_details = (
|
deploy_templates_with_details = (
|
||||||
self.operator_cloud.baremetal.deploy_templates(details=True)
|
self.system_admin_cloud.baremetal.deploy_templates(details=True)
|
||||||
)
|
)
|
||||||
for dp in deploy_templates_with_details:
|
for dp in deploy_templates_with_details:
|
||||||
self.assertIsNotNone(dp.id)
|
self.assertIsNotNone(dp.id)
|
||||||
self.assertIsNotNone(dp.name)
|
self.assertIsNotNone(dp.name)
|
||||||
|
|
||||||
deploy_tempalte_with_fields = (
|
deploy_tempalte_with_fields = (
|
||||||
self.operator_cloud.baremetal.deploy_templates(fields=['uuid'])
|
self.system_admin_cloud.baremetal.deploy_templates(fields=['uuid'])
|
||||||
)
|
)
|
||||||
for dp in deploy_tempalte_with_fields:
|
for dp in deploy_tempalte_with_fields:
|
||||||
self.assertIsNotNone(dp.id)
|
self.assertIsNotNone(dp.id)
|
||||||
@@ -101,16 +98,20 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
self.assertFalse(deploy_template.extra)
|
self.assertFalse(deploy_template.extra)
|
||||||
deploy_template.extra = {'answer': 42}
|
deploy_template.extra = {'answer': 42}
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.update_deploy_template(
|
deploy_template = (
|
||||||
deploy_template
|
self.system_admin_cloud.baremetal.update_deploy_template(
|
||||||
|
deploy_template
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, deploy_template.extra)
|
self.assertEqual({'answer': 42}, deploy_template.extra)
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.get_deploy_template(
|
deploy_template = (
|
||||||
deploy_template.id
|
self.system_admin_cloud.baremetal.get_deploy_template(
|
||||||
|
deploy_template.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.operator_cloud.baremetal.delete_deploy_template(
|
self.system_admin_cloud.baremetal.delete_deploy_template(
|
||||||
deploy_template.id, ignore_missing=False
|
deploy_template.id, ignore_missing=False
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -130,13 +131,17 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
)
|
)
|
||||||
deploy_template.extra = {'answer': 42}
|
deploy_template.extra = {'answer': 42}
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.update_deploy_template(
|
deploy_template = (
|
||||||
deploy_template
|
self.system_admin_cloud.baremetal.update_deploy_template(
|
||||||
|
deploy_template
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, deploy_template.extra)
|
self.assertEqual({'answer': 42}, deploy_template.extra)
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.get_deploy_template(
|
deploy_template = (
|
||||||
deploy_template.id
|
self.system_admin_cloud.baremetal.get_deploy_template(
|
||||||
|
deploy_template.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, deploy_template.extra)
|
self.assertEqual({'answer': 42}, deploy_template.extra)
|
||||||
|
|
||||||
@@ -153,14 +158,18 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
deploy_template = self.create_deploy_template(name=name, steps=steps)
|
deploy_template = self.create_deploy_template(name=name, steps=steps)
|
||||||
deploy_template = self.operator_cloud.baremetal.patch_deploy_template(
|
deploy_template = (
|
||||||
deploy_template, dict(path='/extra/answer', op='add', value=42)
|
self.system_admin_cloud.baremetal.patch_deploy_template(
|
||||||
|
deploy_template, dict(path='/extra/answer', op='add', value=42)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, deploy_template.extra)
|
self.assertEqual({'answer': 42}, deploy_template.extra)
|
||||||
self.assertEqual(name, deploy_template.name)
|
self.assertEqual(name, deploy_template.name)
|
||||||
|
|
||||||
deploy_template = self.operator_cloud.baremetal.get_deploy_template(
|
deploy_template = (
|
||||||
deploy_template.id
|
self.system_admin_cloud.baremetal.get_deploy_template(
|
||||||
|
deploy_template.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, deploy_template.extra)
|
self.assertEqual({'answer': 42}, deploy_template.extra)
|
||||||
|
|
||||||
@@ -168,15 +177,15 @@ class TestBareMetalDeployTemplate(base.BaseBaremetalTest):
|
|||||||
uuid = "bbb45f41-d4bc-4307-8d1d-32f95ce1e920"
|
uuid = "bbb45f41-d4bc-4307-8d1d-32f95ce1e920"
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.get_deploy_template,
|
self.system_admin_cloud.baremetal.get_deploy_template,
|
||||||
uuid,
|
uuid,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.delete_deploy_template,
|
self.system_admin_cloud.baremetal.delete_deploy_template,
|
||||||
uuid,
|
uuid,
|
||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
)
|
)
|
||||||
self.assertIsNone(
|
self.assertIsNone(
|
||||||
self.operator_cloud.baremetal.delete_deploy_template(uuid)
|
self.system_admin_cloud.baremetal.delete_deploy_template(uuid)
|
||||||
)
|
)
|
||||||
|
@@ -17,18 +17,18 @@ from openstack.tests.functional.baremetal import base
|
|||||||
|
|
||||||
class TestBareMetalDriver(base.BaseBaremetalTest):
|
class TestBareMetalDriver(base.BaseBaremetalTest):
|
||||||
def test_fake_hardware_get(self):
|
def test_fake_hardware_get(self):
|
||||||
driver = self.operator_cloud.baremetal.get_driver('fake-hardware')
|
driver = self.system_admin_cloud.baremetal.get_driver('fake-hardware')
|
||||||
self.assertEqual('fake-hardware', driver.name)
|
self.assertEqual('fake-hardware', driver.name)
|
||||||
self.assertNotEqual([], driver.hosts)
|
self.assertNotEqual([], driver.hosts)
|
||||||
|
|
||||||
def test_fake_hardware_list(self):
|
def test_fake_hardware_list(self):
|
||||||
drivers = self.operator_cloud.baremetal.drivers()
|
drivers = self.system_admin_cloud.baremetal.drivers()
|
||||||
self.assertIn('fake-hardware', [d.name for d in drivers])
|
self.assertIn('fake-hardware', [d.name for d in drivers])
|
||||||
|
|
||||||
def test_driver_negative_non_existing(self):
|
def test_driver_negative_non_existing(self):
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.operator_cloud.baremetal.get_driver,
|
self.system_admin_cloud.baremetal.get_driver,
|
||||||
'not-a-driver',
|
'not-a-driver',
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ class TestBareMetalDriverDetails(base.BaseBaremetalTest):
|
|||||||
min_microversion = '1.30'
|
min_microversion = '1.30'
|
||||||
|
|
||||||
def test_fake_hardware_get(self):
|
def test_fake_hardware_get(self):
|
||||||
driver = self.operator_cloud.baremetal.get_driver('fake-hardware')
|
driver = self.system_admin_cloud.baremetal.get_driver('fake-hardware')
|
||||||
self.assertEqual('fake-hardware', driver.name)
|
self.assertEqual('fake-hardware', driver.name)
|
||||||
for iface in ('boot', 'deploy', 'management', 'power'):
|
for iface in ('boot', 'deploy', 'management', 'power'):
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
@@ -49,7 +49,7 @@ class TestBareMetalDriverDetails(base.BaseBaremetalTest):
|
|||||||
self.assertNotEqual([], driver.hosts)
|
self.assertNotEqual([], driver.hosts)
|
||||||
|
|
||||||
def test_fake_hardware_list_details(self):
|
def test_fake_hardware_list_details(self):
|
||||||
drivers = self.operator_cloud.baremetal.drivers(details=True)
|
drivers = self.system_admin_cloud.baremetal.drivers(details=True)
|
||||||
driver = [d for d in drivers if d.name == 'fake-hardware'][0]
|
driver = [d for d in drivers if d.name == 'fake-hardware'][0]
|
||||||
for iface in ('boot', 'deploy', 'management', 'power'):
|
for iface in ('boot', 'deploy', 'management', 'power'):
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
|
@@ -33,14 +33,16 @@ class TestBareMetalInspectionRule(base.BaseBaremetalTest):
|
|||||||
priority=100,
|
priority=100,
|
||||||
sensitive=False,
|
sensitive=False,
|
||||||
)
|
)
|
||||||
loaded = self.conn.baremetal.get_inspection_rule(inspection_rule.id)
|
loaded = self.system_admin_cloud.baremetal.get_inspection_rule(
|
||||||
|
inspection_rule.id
|
||||||
|
)
|
||||||
self.assertEqual(loaded.id, inspection_rule.id)
|
self.assertEqual(loaded.id, inspection_rule.id)
|
||||||
self.conn.baremetal.delete_inspection_rule(
|
self.system_admin_cloud.baremetal.delete_inspection_rule(
|
||||||
inspection_rule, ignore_missing=False
|
inspection_rule, ignore_missing=False
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.get_inspection_rule,
|
self.system_admin_cloud.baremetal.get_inspection_rule,
|
||||||
inspection_rule.id,
|
inspection_rule.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -64,20 +66,20 @@ class TestBareMetalInspectionRule(base.BaseBaremetalTest):
|
|||||||
conditions=conditions,
|
conditions=conditions,
|
||||||
description="Test inspection rule 2",
|
description="Test inspection rule 2",
|
||||||
)
|
)
|
||||||
inspection_rules = self.conn.baremetal.inspection_rules()
|
inspection_rules = self.system_admin_cloud.baremetal.inspection_rules()
|
||||||
ids = [rule.id for rule in inspection_rules]
|
ids = [rule.id for rule in inspection_rules]
|
||||||
self.assertIn(inspection_rule1.id, ids)
|
self.assertIn(inspection_rule1.id, ids)
|
||||||
self.assertIn(inspection_rule2.id, ids)
|
self.assertIn(inspection_rule2.id, ids)
|
||||||
|
|
||||||
inspection_rules_with_details = self.conn.baremetal.inspection_rules(
|
inspection_rules_with_details = (
|
||||||
details=True
|
self.system_admin_cloud.baremetal.inspection_rules(details=True)
|
||||||
)
|
)
|
||||||
for rule in inspection_rules_with_details:
|
for rule in inspection_rules_with_details:
|
||||||
self.assertIsNotNone(rule.id)
|
self.assertIsNotNone(rule.id)
|
||||||
self.assertIsNotNone(rule.description)
|
self.assertIsNotNone(rule.description)
|
||||||
|
|
||||||
inspection_rule_with_fields = self.conn.baremetal.inspection_rules(
|
inspection_rule_with_fields = (
|
||||||
fields=['uuid']
|
self.system_admin_cloud.baremetal.inspection_rules(fields=['uuid'])
|
||||||
)
|
)
|
||||||
for rule in inspection_rule_with_fields:
|
for rule in inspection_rule_with_fields:
|
||||||
self.assertIsNotNone(rule.id)
|
self.assertIsNotNone(rule.id)
|
||||||
@@ -97,41 +99,48 @@ class TestBareMetalInspectionRule(base.BaseBaremetalTest):
|
|||||||
conditions=conditions,
|
conditions=conditions,
|
||||||
description="Test inspection rule",
|
description="Test inspection rule",
|
||||||
)
|
)
|
||||||
self.assertFalse(inspection_rule.extra)
|
|
||||||
inspection_rule.description = 'Updated inspection rule'
|
inspection_rule.description = 'Updated inspection rule'
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.update_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule
|
self.system_admin_cloud.baremetal.update_inspection_rule(
|
||||||
|
inspection_rule
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
'Updated inspection rule', inspection_rule.description
|
'Updated inspection rule', inspection_rule.description
|
||||||
)
|
)
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.get_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule.id
|
self.system_admin_cloud.baremetal.get_inspection_rule(
|
||||||
|
inspection_rule.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.conn.baremetal.delete_inspection_rule(
|
self.system_admin_cloud.baremetal.delete_inspection_rule(
|
||||||
inspection_rule.id, ignore_missing=False
|
inspection_rule.id, ignore_missing=False
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_baremetal_inspection_rule_update(self):
|
def test_baremetal_inspection_rule_update(self):
|
||||||
actions = [{"op": "set-attribute", "args": ["/driver", "idrac"]}]
|
actions = [{"op": "set-attribute", "args": ["/driver", "idrac"]}]
|
||||||
conditions = [
|
conditions = [
|
||||||
{"op": "ge", "args": ["node:memory_mb", 4096], "multiple": "all"}
|
{"op": "gt", "args": ["node:memory_mb", 4096], "multiple": "all"}
|
||||||
]
|
]
|
||||||
inspection_rule = self.create_inspection_rule(
|
inspection_rule = self.create_inspection_rule(
|
||||||
actions=actions, conditions=conditions, phase="main", priority=100
|
actions=actions, conditions=conditions, phase="main", priority=100
|
||||||
)
|
)
|
||||||
inspection_rule.priority = 150
|
inspection_rule.priority = 150
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.update_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule
|
self.system_admin_cloud.baremetal.update_inspection_rule(
|
||||||
|
inspection_rule
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(150, inspection_rule.priority)
|
self.assertEqual(150, inspection_rule.priority)
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.get_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule.id
|
self.system_admin_cloud.baremetal.get_inspection_rule(
|
||||||
|
inspection_rule.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(150, inspection_rule.priority)
|
self.assertEqual(150, inspection_rule.priority)
|
||||||
|
|
||||||
@@ -160,19 +169,24 @@ class TestBareMetalInspectionRule(base.BaseBaremetalTest):
|
|||||||
updated_actions = [
|
updated_actions = [
|
||||||
{
|
{
|
||||||
"op": "set-attribute",
|
"op": "set-attribute",
|
||||||
|
"loop": [],
|
||||||
"args": ["/driver", "fake"],
|
"args": ["/driver", "fake"],
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.patch_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule,
|
self.system_admin_cloud.baremetal.patch_inspection_rule(
|
||||||
dict(path='/actions', op='add', value=updated_actions),
|
inspection_rule,
|
||||||
|
dict(path='/actions', op='add', value=updated_actions),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(updated_actions, inspection_rule.actions)
|
self.assertEqual(updated_actions, inspection_rule.actions)
|
||||||
self.assertEqual(description, inspection_rule.description)
|
self.assertEqual(description, inspection_rule.description)
|
||||||
|
|
||||||
inspection_rule = self.conn.baremetal.get_inspection_rule(
|
inspection_rule = (
|
||||||
inspection_rule.id
|
self.system_admin_cloud.baremetal.get_inspection_rule(
|
||||||
|
inspection_rule.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(updated_actions, inspection_rule.actions)
|
self.assertEqual(updated_actions, inspection_rule.actions)
|
||||||
|
|
||||||
@@ -180,13 +194,15 @@ class TestBareMetalInspectionRule(base.BaseBaremetalTest):
|
|||||||
uuid = "bbb45f41-d4bc-4307-8d1d-32f95ce1e920"
|
uuid = "bbb45f41-d4bc-4307-8d1d-32f95ce1e920"
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.get_inspection_rule,
|
self.system_admin_cloud.baremetal.get_inspection_rule,
|
||||||
uuid,
|
uuid,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.delete_inspection_rule,
|
self.system_admin_cloud.baremetal.delete_inspection_rule,
|
||||||
uuid,
|
uuid,
|
||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
)
|
)
|
||||||
self.assertIsNone(self.conn.baremetal.delete_inspection_rule(uuid))
|
self.assertIsNone(
|
||||||
|
self.system_admin_cloud.baremetal.delete_inspection_rule(uuid)
|
||||||
|
)
|
||||||
|
@@ -473,28 +473,28 @@ class TestBareMetalVirtualMedia(base.BaseBaremetalTest):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
self.node = self.create_node(network_interface='noop')
|
self.node = self.create_node(network_interface='noop')
|
||||||
self.device_type = "CDROM"
|
self.device_type = 'cdrom'
|
||||||
self.image_url = "http://image"
|
self.image_url = 'http://image'
|
||||||
|
|
||||||
def test_node_vmedia_attach_detach(self):
|
def test_node_vmedia_attach_detach(self):
|
||||||
self.conn.baremetal.attach_vmedia_to_node(
|
self.operator_cloud.baremetal.attach_vmedia_to_node(
|
||||||
self.node, self.device_type, self.image_url
|
self.node, self.device_type, self.image_url
|
||||||
)
|
)
|
||||||
res = self.conn.baremetal.detach_vmedia_from_node(self.node)
|
res = self.operator_cloud.baremetal.detach_vmedia_from_node(self.node)
|
||||||
self.assertNone(res)
|
self.assertIsNone(res)
|
||||||
|
|
||||||
def test_node_vmedia_negative(self):
|
def test_node_vmedia_negative(self):
|
||||||
uuid = "5c9dcd04-2073-49bc-9618-99ae634d8971"
|
uuid = "5c9dcd04-2073-49bc-9618-99ae634d8971"
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.ResourceNotFound,
|
exceptions.ResourceNotFound,
|
||||||
self.conn.baremetal.attach_vmedia_to_node,
|
self.operator_cloud.baremetal.attach_vmedia_to_node,
|
||||||
uuid,
|
uuid,
|
||||||
self.device_type,
|
self.device_type,
|
||||||
self.image_url,
|
self.image_url,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.ResourceNotFound,
|
exceptions.ResourceNotFound,
|
||||||
self.conn.baremetal.detach_vmedia_from_node,
|
self.operator_cloud.baremetal.detach_vmedia_from_node,
|
||||||
uuid,
|
uuid,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -17,9 +17,6 @@ from openstack.tests.functional.baremetal import base
|
|||||||
class TestBareMetalRunbook(base.BaseBaremetalTest):
|
class TestBareMetalRunbook(base.BaseBaremetalTest):
|
||||||
min_microversion = '1.92'
|
min_microversion = '1.92'
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
|
|
||||||
def test_baremetal_runbook_create_get_delete(self):
|
def test_baremetal_runbook_create_get_delete(self):
|
||||||
steps = [
|
steps = [
|
||||||
{
|
{
|
||||||
@@ -28,16 +25,18 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
runbook = self.create_runbook(name='CUSTOM_RUNBOOK', steps=steps)
|
runbook = self.create_runbook(name='CUSTOM_RUNBOOK', steps=steps)
|
||||||
loaded = self.conn.baremetal.get_runbook(runbook.id)
|
loaded = self.operator_cloud.baremetal.get_runbook(runbook.id)
|
||||||
self.assertEqual(loaded.id, runbook.id)
|
self.assertEqual(loaded.id, runbook.id)
|
||||||
self.conn.baremetal.delete_runbook(runbook, ignore_missing=False)
|
self.operator_cloud.baremetal.delete_runbook(
|
||||||
|
runbook, ignore_missing=False
|
||||||
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.get_runbook,
|
self.operator_cloud.baremetal.get_runbook,
|
||||||
runbook.id,
|
runbook.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -49,23 +48,27 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
runbook1 = self.create_runbook(name='CUSTOM_RUNBOOK1', steps=steps)
|
runbook1 = self.create_runbook(name='CUSTOM_RUNBOOK1', steps=steps)
|
||||||
runbook2 = self.create_runbook(name='CUSTOM_RUNBOOK2', steps=steps)
|
runbook2 = self.create_runbook(name='CUSTOM_RUNBOOK2', steps=steps)
|
||||||
runbooks = self.conn.baremetal.runbooks()
|
runbooks = self.operator_cloud.baremetal.runbooks()
|
||||||
ids = [runbook.id for runbook in runbooks]
|
ids = [runbook.id for runbook in runbooks]
|
||||||
self.assertIn(runbook1.id, ids)
|
self.assertIn(runbook1.id, ids)
|
||||||
self.assertIn(runbook2.id, ids)
|
self.assertIn(runbook2.id, ids)
|
||||||
|
|
||||||
runbooks_with_details = self.conn.baremetal.runbooks(details=True)
|
runbooks_with_details = self.operator_cloud.baremetal.runbooks(
|
||||||
|
details=True
|
||||||
|
)
|
||||||
for runbook in runbooks_with_details:
|
for runbook in runbooks_with_details:
|
||||||
self.assertIsNotNone(runbook.id)
|
self.assertIsNotNone(runbook.id)
|
||||||
self.assertIsNotNone(runbook.name)
|
self.assertIsNotNone(runbook.name)
|
||||||
|
|
||||||
runbook_with_fields = self.conn.baremetal.runbooks(fields=['uuid'])
|
runbook_with_fields = self.operator_cloud.baremetal.runbooks(
|
||||||
|
fields=['uuid']
|
||||||
|
)
|
||||||
for runbook in runbook_with_fields:
|
for runbook in runbook_with_fields:
|
||||||
self.assertIsNotNone(runbook.id)
|
self.assertIsNotNone(runbook.id)
|
||||||
self.assertIsNone(runbook.name)
|
self.assertIsNone(runbook.name)
|
||||||
@@ -78,19 +81,21 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
runbook = self.create_runbook(name='CUSTOM_RUNBOOK4', steps=steps)
|
runbook = self.create_runbook(name='CUSTOM_RUNBOOK4', steps=steps)
|
||||||
self.assertFalse(runbook.extra)
|
self.assertFalse(runbook.extra)
|
||||||
runbook.extra = {'answer': 42}
|
runbook.extra = {'answer': 42}
|
||||||
|
|
||||||
runbook = self.conn.baremetal.update_runbook(runbook)
|
runbook = self.operator_cloud.baremetal.update_runbook(runbook)
|
||||||
self.assertEqual({'answer': 42}, runbook.extra)
|
self.assertEqual({'answer': 42}, runbook.extra)
|
||||||
|
|
||||||
runbook = self.conn.baremetal.get_runbook(runbook.id)
|
runbook = self.operator_cloud.baremetal.get_runbook(runbook.id)
|
||||||
|
|
||||||
self.conn.baremetal.delete_runbook(runbook.id, ignore_missing=False)
|
self.operator_cloud.baremetal.delete_runbook(
|
||||||
|
runbook.id, ignore_missing=False
|
||||||
|
)
|
||||||
|
|
||||||
def test_baremetal_runbook_update(self):
|
def test_baremetal_runbook_update(self):
|
||||||
steps = [
|
steps = [
|
||||||
@@ -100,16 +105,16 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
runbook = self.create_runbook(name='CUSTOM_RUNBOOK4', steps=steps)
|
runbook = self.create_runbook(name='CUSTOM_RUNBOOK4', steps=steps)
|
||||||
runbook.extra = {'answer': 42}
|
runbook.extra = {'answer': 42}
|
||||||
|
|
||||||
runbook = self.conn.baremetal.update_runbook(runbook)
|
runbook = self.operator_cloud.baremetal.update_runbook(runbook)
|
||||||
self.assertEqual({'answer': 42}, runbook.extra)
|
self.assertEqual({'answer': 42}, runbook.extra)
|
||||||
|
|
||||||
runbook = self.conn.baremetal.get_runbook(runbook.id)
|
runbook = self.operator_cloud.baremetal.get_runbook(runbook.id)
|
||||||
self.assertEqual({'answer': 42}, runbook.extra)
|
self.assertEqual({'answer': 42}, runbook.extra)
|
||||||
|
|
||||||
def test_runbook_patch(self):
|
def test_runbook_patch(self):
|
||||||
@@ -121,33 +126,33 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
runbook = self.create_runbook(name=name, steps=steps)
|
runbook = self.create_runbook(name=name, steps=steps)
|
||||||
runbook = self.conn.baremetal.patch_runbook(
|
runbook = self.operator_cloud.baremetal.patch_runbook(
|
||||||
runbook, dict(path='/extra/answer', op='add', value=42)
|
runbook, dict(path='/extra/answer', op='add', value=42)
|
||||||
)
|
)
|
||||||
self.assertEqual({'answer': 42}, runbook.extra)
|
self.assertEqual({'answer': 42}, runbook.extra)
|
||||||
self.assertEqual(name, runbook.name)
|
self.assertEqual(name, runbook.name)
|
||||||
|
|
||||||
runbook = self.conn.baremetal.get_runbook(runbook.id)
|
runbook = self.operator_cloud.baremetal.get_runbook(runbook.id)
|
||||||
self.assertEqual({'answer': 42}, runbook.extra)
|
self.assertEqual({'answer': 42}, runbook.extra)
|
||||||
|
|
||||||
def test_runbook_negative_non_existing(self):
|
def test_runbook_negative_non_existing(self):
|
||||||
uuid = "b4145fbb-d4bc-0d1d-4382-e1e922f9035c"
|
uuid = "b4145fbb-d4bc-0d1d-4382-e1e922f9035c"
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.get_runbook,
|
self.operator_cloud.baremetal.get_runbook,
|
||||||
uuid,
|
uuid,
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.NotFoundException,
|
exceptions.NotFoundException,
|
||||||
self.conn.baremetal.delete_runbook,
|
self.operator_cloud.baremetal.delete_runbook,
|
||||||
uuid,
|
uuid,
|
||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
)
|
)
|
||||||
self.assertIsNone(self.conn.baremetal.delete_runbook(uuid))
|
self.assertIsNone(self.operator_cloud.baremetal.delete_runbook(uuid))
|
||||||
|
|
||||||
def test_runbook_rbac_project_scoped(self):
|
def test_runbook_rbac_project_scoped(self):
|
||||||
steps = [
|
steps = [
|
||||||
@@ -157,20 +162,23 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
runbook = self.create_runbook(
|
runbook = self.operator_cloud.baremetal.create_runbook(
|
||||||
name='CUSTOM_PROJ_AWESOME',
|
name='CUSTOM_PROJ_AWESOME', steps=steps
|
||||||
steps=steps,
|
)
|
||||||
owner=self.conn.current_project_id,
|
self.addCleanup(
|
||||||
|
lambda: self.operator_cloud.baremetal.delete_runbook(
|
||||||
|
runbook.id, ignore_missing=True
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(runbook.public)
|
self.assertFalse(runbook.public)
|
||||||
self.assertEqual(self.conn.current_project_id, runbook.owner)
|
self.assertEqual(self.operator_cloud.current_project_id, runbook.owner)
|
||||||
|
|
||||||
# is accessible to the owner
|
# is accessible to the owner
|
||||||
loaded = self.conn.baremetal.get_runbook(runbook.id)
|
loaded = self.operator_cloud.baremetal.get_runbook(runbook.id)
|
||||||
self.assertEqual(loaded.id, runbook.id)
|
self.assertEqual(loaded.id, runbook.id)
|
||||||
|
|
||||||
def test_runbook_rbac_system_scoped(self):
|
def test_runbook_rbac_system_scoped(self):
|
||||||
@@ -181,14 +189,22 @@ class TestBareMetalRunbook(base.BaseBaremetalTest):
|
|||||||
"args": {
|
"args": {
|
||||||
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
"settings": [{"name": "LogicalProc", "value": "Enabled"}]
|
||||||
},
|
},
|
||||||
"priority": 150,
|
"order": 150,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
runbook = self.create_runbook(name='CUSTOM_SYS_AWESOME', steps=steps)
|
runbook = self.system_admin_cloud.baremetal.create_runbook(
|
||||||
|
name='CUSTOM_SYS_AWESOME', steps=steps
|
||||||
|
)
|
||||||
|
self.addCleanup(
|
||||||
|
lambda: self.system_admin_cloud.baremetal.delete_runbook(
|
||||||
|
runbook.id, ignore_missing=True
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
self.assertFalse(runbook.public)
|
self.assertFalse(runbook.public)
|
||||||
self.assertIsNone(runbook.owner)
|
self.assertIsNone(runbook.owner)
|
||||||
|
|
||||||
# is accessible to system-scoped users
|
# is accessible to system-scoped users
|
||||||
loaded = self.conn.baremetal.get_runbook(runbook.id)
|
loaded = self.system_admin_cloud.baremetal.get_runbook(runbook.id)
|
||||||
self.assertEqual(loaded.id, runbook.id)
|
self.assertEqual(loaded.id, runbook.id)
|
||||||
|
@@ -854,7 +854,7 @@ class TestCase(base.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def assert_no_calls(self):
|
def assert_no_calls(self):
|
||||||
# TODO(mordred) For now, creating the adapter for self.conn is
|
# TODO(mordred) For now, creating the adapter for connections is
|
||||||
# triggering catalog lookups. Make sure no_calls is only 2.
|
# triggering catalog lookups. Make sure no_calls is only 2.
|
||||||
# When we can make that on-demand through a descriptor object,
|
# When we can make that on-demand through a descriptor object,
|
||||||
# drop this to 0.
|
# drop this to 0.
|
||||||
|
@@ -30,8 +30,7 @@
|
|||||||
# [1] https://review.opendev.org/c/openstack/masakari/+/949153
|
# [1] https://review.opendev.org/c/openstack/masakari/+/949153
|
||||||
- openstacksdk-functional-devstack-masakari:
|
- openstacksdk-functional-devstack-masakari:
|
||||||
voting: false
|
voting: false
|
||||||
- openstacksdk-functional-devstack-ironic:
|
- openstacksdk-functional-devstack-ironic
|
||||||
voting: false
|
|
||||||
- osc-functional-devstack-tips:
|
- osc-functional-devstack-tips:
|
||||||
voting: false
|
voting: false
|
||||||
- ansible-collections-openstack-functional-devstack:
|
- ansible-collections-openstack-functional-devstack:
|
||||||
@@ -42,3 +41,4 @@
|
|||||||
- openstacksdk-functional-devstack
|
- openstacksdk-functional-devstack
|
||||||
- openstacksdk-functional-devstack-networking
|
- openstacksdk-functional-devstack-networking
|
||||||
- openstacksdk-functional-devstack-networking-ext
|
- openstacksdk-functional-devstack-networking-ext
|
||||||
|
- openstacksdk-functional-devstack-ironic
|
||||||
|
Reference in New Issue
Block a user