Browse Source

Merge "Fix broken configdrive_use_object_store"

changes/00/730000/17
Zuul 1 week ago
committed by Gerrit Code Review
parent
commit
6e0682377c
4 changed files with 20 additions and 8 deletions
  1. +6
    -0
      devstack/lib/ironic
  2. +2
    -1
      ironic/conductor/deployments.py
  3. +7
    -7
      ironic/tests/unit/conductor/test_deployments.py
  4. +5
    -0
      releasenotes/notes/configdrive_use_object_store-93cfd7dc27d90003.yaml

+ 6
- 0
devstack/lib/ironic View File

@ -1445,6 +1445,12 @@ function configure_ironic {
# Set fast track options
iniset $IRONIC_CONF_FILE deploy fast_track $IRONIC_DEPLOY_FAST_TRACK
# FIXME(dtantsur): configdrive downloading code does not respect IPA TLS
# configuration, not even ipa-insecure.
if is_service_enabled swift && ! is_service_enabled tls-proxy; then
iniset $IRONIC_CONF_FILE deploy configdrive_use_object_store True
fi
# No need to check if RabbitMQ is enabled, this call does it in a smart way
if [[ "$IRONIC_RPC_TRANSPORT" == "oslo" ]]; then
iniset_rpc_backend ironic $IRONIC_CONF_FILE


+ 2
- 1
ironic/conductor/deployments.py View File

@ -415,7 +415,8 @@ def _store_configdrive(node, configdrive):
object_headers = {'X-Delete-After': str(timeout)}
with tempfile.NamedTemporaryFile(dir=CONF.tempdir) as fileobj:
with tempfile.NamedTemporaryFile(dir=CONF.tempdir,
mode="wt") as fileobj:
fileobj.write(configdrive)
fileobj.flush()


+ 7
- 7
ironic/tests/unit/conductor/test_deployments.py View File

@ -248,7 +248,7 @@ class DoNodeDeployTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
self.assertRaises(exception.SwiftOperationError,
deployments.do_node_deploy, task,
self.service.conductor.id,
configdrive=b'fake config drive')
configdrive='fake config drive')
node.refresh()
self.assertEqual(states.DEPLOYFAIL, node.provision_state)
self.assertEqual(states.ACTIVE, node.target_provision_state)
@ -273,8 +273,8 @@ class DoNodeDeployTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
self.assertRaises(db_exception.DBDataError,
deployments.do_node_deploy, task,
self.service.conductor.id,
configdrive=b'fake config drive')
expected_instance_info.update(configdrive=b'fake config drive')
configdrive='fake config drive')
expected_instance_info.update(configdrive='fake config drive')
expected_calls = [
mock.call(node.uuid,
{'version': mock.ANY,
@ -310,7 +310,7 @@ class DoNodeDeployTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
self.assertRaises(RuntimeError,
deployments.do_node_deploy, task,
self.service.conductor.id,
configdrive=b'fake config drive')
configdrive='fake config drive')
node.refresh()
self.assertEqual(states.DEPLOYFAIL, node.provision_state)
self.assertEqual(states.ACTIVE, node.target_provision_state)
@ -964,7 +964,7 @@ class StoreConfigDriveTestCase(db_base.DbTestCase):
group='conductor')
mock_swift.return_value.get_temp_url.return_value = 'http://1.2.3.4'
deployments._store_configdrive(self.node, b'foo')
deployments._store_configdrive(self.node, 'foo')
mock_swift.assert_called_once_with()
mock_swift.return_value.create_object.assert_called_once_with(
@ -992,7 +992,7 @@ class StoreConfigDriveTestCase(db_base.DbTestCase):
group='conductor')
mock_swift.return_value.get_temp_url.return_value = 'http://1.2.3.4'
deployments._store_configdrive(self.node, b'foo')
deployments._store_configdrive(self.node, 'foo')
mock_swift.assert_called_once_with()
mock_swift.return_value.create_object.assert_called_once_with(
@ -1019,7 +1019,7 @@ class StoreConfigDriveTestCase(db_base.DbTestCase):
group='conductor')
mock_swift.return_value.get_temp_url.return_value = 'http://1.2.3.4'
deployments._store_configdrive(self.node, b'foo')
deployments._store_configdrive(self.node, 'foo')
mock_swift.assert_called_once_with()
mock_swift.return_value.create_object.assert_called_once_with(


+ 5
- 0
releasenotes/notes/configdrive_use_object_store-93cfd7dc27d90003.yaml View File

@ -0,0 +1,5 @@
---
fixes:
- |
Fixes the ``[deploy]configdrive_use_object_store`` option that was
broken during the Python 3 transition.

Loading…
Cancel
Save