@@ -59,17 +59,22 @@ def get_parser(self, prog_name):
5959 enable_group .add_argument (
6060 '--enable' ,
6161 action = 'store_true' ,
62+ dest = 'enabled' ,
63+ default = True ,
6264 help = _ ('Enable project' ),
6365 )
6466 enable_group .add_argument (
6567 '--disable' ,
66- action = 'store_true' ,
68+ action = 'store_false' ,
69+ dest = 'enabled' ,
70+ default = True ,
6771 help = _ ('Disable project' ),
6872 )
6973 parser .add_argument (
7074 '--property' ,
7175 metavar = '<key=value>' ,
7276 action = parseractions .KeyValueAction ,
77+ dest = 'properties' ,
7378 help = _ (
7479 'Add a property to <name> '
7580 '(repeat option to set multiple properties)'
@@ -98,15 +103,9 @@ def take_action(self, parsed_args):
98103 parsed_args .parent ,
99104 ).id
100105
101- enabled = True
102- if parsed_args .disable :
103- enabled = False
104-
105- options = common .get_immutable_options (parsed_args )
106-
107106 kwargs = {}
108- if parsed_args .property :
109- kwargs = parsed_args .property .copy ()
107+ if parsed_args .properties :
108+ kwargs = parsed_args .properties .copy ()
110109 if 'is_domain' in kwargs .keys ():
111110 if kwargs ['is_domain' ].lower () == "true" :
112111 kwargs ['is_domain' ] = True
@@ -117,13 +116,17 @@ def take_action(self, parsed_args):
117116
118117 kwargs ['tags' ] = list (set (parsed_args .tags ))
119118
119+ options = {}
120+ if parsed_args .immutable is not None :
121+ options ['immutable' ] = parsed_args .immutable
122+
120123 try :
121124 project = identity_client .projects .create (
122125 name = parsed_args .name ,
123126 domain = domain ,
124127 parent = parent ,
125128 description = parsed_args .description ,
126- enabled = enabled ,
129+ enabled = parsed_args . enabled ,
127130 options = options ,
128131 ** kwargs ,
129132 )
@@ -356,16 +359,21 @@ def get_parser(self, prog_name):
356359 enable_group .add_argument (
357360 '--enable' ,
358361 action = 'store_true' ,
362+ dest = 'enabled' ,
363+ default = None ,
359364 help = _ ('Enable project' ),
360365 )
361366 enable_group .add_argument (
362367 '--disable' ,
363- action = 'store_true' ,
368+ action = 'store_false' ,
369+ dest = 'enabled' ,
370+ default = None ,
364371 help = _ ('Disable project' ),
365372 )
366373 parser .add_argument (
367374 '--property' ,
368375 metavar = '<key=value>' ,
376+ dest = 'properties' ,
369377 action = parseractions .KeyValueAction ,
370378 help = _ (
371379 'Set a property on <project> '
@@ -388,15 +396,12 @@ def take_action(self, parsed_args):
388396 kwargs ['name' ] = parsed_args .name
389397 if parsed_args .description :
390398 kwargs ['description' ] = parsed_args .description
391- if parsed_args .enable :
392- kwargs ['enabled' ] = True
393- if parsed_args .disable :
394- kwargs ['enabled' ] = False
395- options = common .get_immutable_options (parsed_args )
396- if options :
397- kwargs ['options' ] = options
398- if parsed_args .property :
399- kwargs .update (parsed_args .property )
399+ if parsed_args .enabled is not None :
400+ kwargs ['enabled' ] = parsed_args .enabled
401+ if parsed_args .immutable is not None :
402+ kwargs ['options' ] = {'immutable' : parsed_args .immutable }
403+ if parsed_args .properties :
404+ kwargs .update (parsed_args .properties )
400405 tag .update_tags_in_args (parsed_args , project , kwargs )
401406
402407 identity_client .projects .update (project .id , ** kwargs )
0 commit comments