@@ -143,11 +143,26 @@ def build_option_parser(self, description, version):
143143 metavar = '<auth-url>' ,
144144 default = env ('OS_AUTH_URL' ),
145145 help = 'Authentication URL (Env: OS_AUTH_URL)' )
146+ parser .add_argument (
147+ '--os-domain-name' ,
148+ metavar = '<auth-domain-name>' ,
149+ default = env ('OS_DOMAIN_NAME' ),
150+ help = 'Domain name of the requested domain-level'
151+ 'authorization scope (Env: OS_DOMAIN_NAME)' ,
152+ )
153+ parser .add_argument (
154+ '--os-domain-id' ,
155+ metavar = '<auth-domain-id>' ,
156+ default = env ('OS_DOMAIN_ID' ),
157+ help = 'Domain ID of the requested domain-level'
158+ 'authorization scope (Env: OS_DOMAIN_ID)' ,
159+ )
146160 parser .add_argument (
147161 '--os-project-name' ,
148162 metavar = '<auth-project-name>' ,
149163 default = env ('OS_PROJECT_NAME' , default = env ('OS_TENANT_NAME' )),
150- help = 'Authentication project name (Env: OS_PROJECT_NAME)' ,
164+ help = 'Project name of the requested project-level'
165+ 'authorization scope (Env: OS_PROJECT_NAME)' ,
151166 )
152167 parser .add_argument (
153168 '--os-tenant-name' ,
@@ -159,7 +174,8 @@ def build_option_parser(self, description, version):
159174 '--os-project-id' ,
160175 metavar = '<auth-project-id>' ,
161176 default = env ('OS_PROJECT_ID' , default = env ('OS_TENANT_ID' )),
162- help = 'Authentication project ID (Env: OS_PROJECT_ID)' ,
177+ help = 'Project ID of the requested project-level'
178+ 'authorization scope (Env: OS_PROJECT_ID)' ,
163179 )
164180 parser .add_argument (
165181 '--os-tenant-id' ,
@@ -177,6 +193,30 @@ def build_option_parser(self, description, version):
177193 metavar = '<auth-password>' ,
178194 default = utils .env ('OS_PASSWORD' ),
179195 help = 'Authentication password (Env: OS_PASSWORD)' )
196+ parser .add_argument (
197+ '--os-user-domain-name' ,
198+ metavar = '<auth-user-domain-name>' ,
199+ default = utils .env ('OS_USER_DOMAIN_NAME' ),
200+ help = 'Domain name of the user (Env: OS_USER_DOMAIN_NAME)' )
201+ parser .add_argument (
202+ '--os-user-domain-id' ,
203+ metavar = '<auth-user-domain-id>' ,
204+ default = utils .env ('OS_USER_DOMAIN_ID' ),
205+ help = 'Domain ID of the user (Env: OS_USER_DOMAIN_ID)' )
206+ parser .add_argument (
207+ '--os-project-domain-name' ,
208+ metavar = '<auth-project-domain-name>' ,
209+ default = utils .env ('OS_PROJECT_DOMAIN_NAME' ),
210+ help = 'Domain name of the project which is the requested '
211+ 'project-level authorization scope '
212+ '(Env: OS_PROJECT_DOMAIN_NAME)' )
213+ parser .add_argument (
214+ '--os-project-domain-id' ,
215+ metavar = '<auth-project-domain-id>' ,
216+ default = utils .env ('OS_PROJECT_DOMAIN_ID' ),
217+ help = 'Domain ID of the project which is the requested '
218+ 'project-level authorization scope '
219+ '(Env: OS_PROJECT_DOMAIN_ID)' )
180220 parser .add_argument (
181221 '--os-region-name' ,
182222 metavar = '<auth-region-name>' ,
@@ -284,11 +324,16 @@ def authenticate_user(self):
284324 " either --os-password, or env[OS_PASSWORD], "
285325 " or prompted response" )
286326
287- if not (self .options .os_project_id
288- or self .options .os_project_name ):
327+ if not ((self .options .os_project_id
328+ or self .options .os_project_name ) or
329+ (self .options .os_domain_id
330+ or self .options .os_domain_name )):
289331 raise exc .CommandError (
290- "You must provide a project id via"
291- " either --os-project-id or via env[OS_PROJECT_ID]" )
332+ "You must provide authentication scope as a project "
333+ "or a domain via --os-project-id or env[OS_PROJECT_ID], "
334+ "--os-project-name or env[OS_PROJECT_NAME], "
335+ "--os-domain-id or env[OS_DOMAIN_ID], or"
336+ "--os-domain-name or env[OS_DOMAIN_NAME]." )
292337
293338 if not self .options .os_auth_url :
294339 raise exc .CommandError (
@@ -299,8 +344,14 @@ def authenticate_user(self):
299344 token = self .options .os_token ,
300345 url = self .options .os_url ,
301346 auth_url = self .options .os_auth_url ,
347+ domain_id = self .options .os_domain_id ,
348+ domain_name = self .options .os_domain_name ,
302349 project_name = self .options .os_project_name ,
303350 project_id = self .options .os_project_id ,
351+ user_domain_id = self .options .os_user_domain_id ,
352+ user_domain_name = self .options .os_user_domain_name ,
353+ project_domain_id = self .options .os_project_domain_id ,
354+ project_domain_name = self .options .os_project_domain_name ,
304355 username = self .options .os_username ,
305356 password = self .options .os_password ,
306357 region_name = self .options .os_region_name ,
0 commit comments