@@ -2440,47 +2440,57 @@ def get_parser(self, prog_name):
24402440 parser .add_argument (
24412441 '--image' ,
24422442 metavar = '<image>' ,
2443- help = _ ('Recreate server from the specified image (name or ID).'
2444- ' Defaults to the currently used one.' ),
2443+ help = _ (
2444+ 'Recreate server from the specified image (name or ID).'
2445+ 'Defaults to the currently used one.'
2446+ ),
24452447 )
24462448 parser .add_argument (
24472449 '--password' ,
24482450 metavar = '<password>' ,
2449- help = _ (" Set the password on the rebuilt instance" ),
2451+ help = _ (' Set a password on the rebuilt server' ),
24502452 )
24512453 parser .add_argument (
24522454 '--property' ,
24532455 metavar = '<key=value>' ,
24542456 action = parseractions .KeyValueAction ,
2455- help = _ ('Set a property on the rebuilt instance '
2456- '(repeat option to set multiple values)' ),
2457+ help = _ (
2458+ 'Set a new property on the rebuilt server '
2459+ '(repeat option to set multiple values)'
2460+ ),
24572461 )
24582462 parser .add_argument (
24592463 '--description' ,
24602464 metavar = '<description>' ,
2461- help = _ ('New description for the server (supported by '
2462- '--os-compute-api-version 2.19 or above' ),
2463- )
2464- parser .add_argument (
2465- '--wait' ,
2466- action = 'store_true' ,
2467- help = _ ('Wait for rebuild to complete' ),
2465+ help = _ (
2466+ 'Set a new description on the rebuilt server '
2467+ '(supported by --os-compute-api-version 2.19 or above)'
2468+ ),
24682469 )
24692470 key_group = parser .add_mutually_exclusive_group ()
24702471 key_group .add_argument (
24712472 '--key-name' ,
24722473 metavar = '<key-name>' ,
2473- help = _ ("Set the key name of key pair on the rebuilt instance."
2474- " Cannot be specified with the '--key-unset' option."
2475- " (Supported by API versions '2.54' - '2.latest')" ),
2474+ help = _ (
2475+ 'Set the key name of key pair on the rebuilt server. '
2476+ 'Cannot be specified with the --key-unset option. '
2477+ '(supported by --os-compute-api-version 2.54 or above)'
2478+ ),
24762479 )
24772480 key_group .add_argument (
24782481 '--key-unset' ,
24792482 action = 'store_true' ,
24802483 default = False ,
2481- help = _ ("Unset the key name of key pair on the rebuilt instance."
2482- " Cannot be specified with the '--key-name' option."
2483- " (Supported by API versions '2.54' - '2.latest')" ),
2484+ help = _ (
2485+ 'Unset the key name of key pair on the rebuilt server. '
2486+ 'Cannot be specified with the --key-name option. '
2487+ '(supported by --os-compute-api-version 2.54 or above)'
2488+ ),
2489+ )
2490+ parser .add_argument (
2491+ '--wait' ,
2492+ action = 'store_true' ,
2493+ help = _ ('Wait for rebuild to complete' ),
24842494 )
24852495 return parser
24862496
@@ -2506,24 +2516,38 @@ def _show_progress(progress):
25062516 image = image_client .get_image (image_id )
25072517
25082518 kwargs = {}
2519+
25092520 if parsed_args .property :
25102521 kwargs ['meta' ] = parsed_args .property
2522+
25112523 if parsed_args .description :
25122524 if server .api_version < api_versions .APIVersion ("2.19" ):
2513- msg = _ ("Description is not supported for "
2514- "--os-compute-api-version less than 2.19" )
2525+ msg = _ (
2526+ '--os-compute-api-version 2.19 or greater is required to '
2527+ 'support the --description option'
2528+ )
25152529 raise exceptions .CommandError (msg )
2530+
25162531 kwargs ['description' ] = parsed_args .description
25172532
2518- if parsed_args .key_name or parsed_args .key_unset :
2533+ if parsed_args .key_name :
2534+ if compute_client .api_version < api_versions .APIVersion ('2.54' ):
2535+ msg = _ (
2536+ '--os-compute-api-version 2.54 or greater is required to '
2537+ 'support the --key-name option'
2538+ )
2539+ raise exceptions .CommandError (msg )
2540+
2541+ kwargs ['key_name' ] = parsed_args .key_name
2542+ elif parsed_args .key_unset :
25192543 if compute_client .api_version < api_versions .APIVersion ('2.54' ):
2520- msg = _ ('--os-compute-api-version 2.54 or later is required' )
2544+ msg = _ (
2545+ '--os-compute-api-version 2.54 or greater is required to '
2546+ 'support the --no-key-name option'
2547+ )
25212548 raise exceptions .CommandError (msg )
25222549
2523- if parsed_args .key_unset :
25242550 kwargs ['key_name' ] = None
2525- if parsed_args .key_name :
2526- kwargs ['key_name' ] = parsed_args .key_name
25272551
25282552 server = server .rebuild (image , parsed_args .password , ** kwargs )
25292553 if parsed_args .wait :
@@ -2534,13 +2558,12 @@ def _show_progress(progress):
25342558 ):
25352559 self .app .stdout .write (_ ('Complete\n ' ))
25362560 else :
2537- LOG .error (_ ('Error rebuilding server: %s' ),
2538- server .id )
2561+ LOG .error (_ ('Error rebuilding server: %s' ), server .id )
25392562 self .app .stdout .write (_ ('Error rebuilding server\n ' ))
25402563 raise SystemExit
25412564
2542- details = _prep_server_detail (compute_client , image_client , server ,
2543- refresh = False )
2565+ details = _prep_server_detail (
2566+ compute_client , image_client , server , refresh = False )
25442567 return zip (* sorted (details .items ()))
25452568
25462569
0 commit comments