@@ -582,7 +582,8 @@ def deploy(self, vm_name, **kwargs):
582
582
class OpenstackSystem (System , VmMixin , TemplateMixin ):
583
583
"""Openstack management system
584
584
585
- Uses novaclient.
585
+ Uses novaclient. If using openstack auth_url version 3 (URL ending in v3)
586
+ then domain_id or domain_name is required (you can use both).
586
587
587
588
Args:
588
589
tenant: The tenant to log in with.
@@ -592,6 +593,7 @@ class OpenstackSystem(System, VmMixin, TemplateMixin):
592
593
593
594
Keywords:
594
595
domain_id: required only if using openstack auth_url version 3 (URL ending in v3)
596
+ domain_name: required only if using openstack auth_url version 3 (URL ending in v3)
595
597
596
598
Returns: A :py:class:`OpenstackSystem` object.
597
599
"""
@@ -620,7 +622,8 @@ def __init__(self, tenant, username, password, auth_url, **kwargs):
620
622
self .username = username
621
623
self .password = password
622
624
self .auth_url = auth_url
623
- self .domain_id = kwargs ["domain_id" ] if self .keystone_version == 3 else None
625
+ self .domain_id = kwargs .get ("domain_id" ) if self .keystone_version == 3 else None
626
+ self .domain_name = kwargs .get ("domain_name" ) if self .keystone_version == 3 else None
624
627
self ._session = None
625
628
self ._api = None
626
629
self ._gapi = None
@@ -654,7 +657,12 @@ def session(self):
654
657
)
655
658
if self .keystone_version == 3 :
656
659
auth_kwargs .update (
657
- dict (user_domain_id = self .domain_id , project_domain_id = self .domain_id )
660
+ dict (
661
+ user_domain_id = self .domain_id ,
662
+ user_domain_name = self .domain_name ,
663
+ project_domain_id = self .domain_id ,
664
+ project_domain_name = self .domain_name ,
665
+ )
658
666
)
659
667
pass_auth = Password (** auth_kwargs )
660
668
self ._session = Session (auth = pass_auth , verify = False )
0 commit comments