diff --git a/metalsmith/_provisioner.py b/metalsmith/_provisioner.py index 0723722..eedfbaf 100644 --- a/metalsmith/_provisioner.py +++ b/metalsmith/_provisioner.py @@ -62,8 +62,10 @@ class Provisioner(object): raise TypeError('Either session or cloud_region must be provided, ' 'but not both') else: - session = cloud_region.get_session() self.connection = connection.Connection(config=cloud_region) + # NOTE(dtantsur): Connection.baremetal is a keystoneauth Adapter + # for baremetal API. + session = self.connection.baremetal self._api = _os_api.API(session, self.connection) self._dry_run = dry_run diff --git a/metalsmith/test/test_provisioner.py b/metalsmith/test/test_provisioner.py index d5258d7..780e59b 100644 --- a/metalsmith/test/test_provisioner.py +++ b/metalsmith/test/test_provisioner.py @@ -50,6 +50,8 @@ class TestInit(testtools.TestCase): @mock.patch.object(_provisioner.connection, 'Connection', autospec=True) def test_cloud_region_only(self, mock_conn): region = mock.Mock() + mock_conn.return_value.baremetal = mock.Mock(spec=['get_endpoint']) + mock_conn.return_value.baremetal.get_endpoint.return_value = 'http://' _provisioner.Provisioner(cloud_region=region) mock_conn.assert_called_once_with(config=region)