@@ -58,6 +58,8 @@ def secrets():
5858@secrets .group (name = 'providers' )
5959@cfy .options .common_options
6060def providers ():
61+ """Handle Cloudify Secrets Providers
62+ """
6163 pass
6264
6365
@@ -359,9 +361,11 @@ def set_owner(key, username, tenant_name, logger, client):
359361 name = 'create' ,
360362 short_help = 'Create a new secrets provider' ,
361363)
362- @cfy .options .secret_provider_name
363- @cfy .options .secret_provider_type
364- @cfy .options .connection_parameters
364+ @cfy .argument ('secret_provider_name' )
365+ @cfy .options .secret_provider_type ()
366+ @cfy .options .connection_parameters (
367+ required = False ,
368+ )
365369@cfy .options .tenant_name (
366370 required = False ,
367371 resource_name_for_help = 'secret_provider' ,
@@ -375,7 +379,7 @@ def set_owner(key, username, tenant_name, logger, client):
375379 use_tenant_in_header = True ,
376380)
377381@cfy .pass_logger
378- def provider_create (
382+ def providers_create (
379383 secret_provider_name ,
380384 secret_provider_type ,
381385 connection_parameters ,
@@ -397,6 +401,114 @@ def provider_create(
397401 )
398402
399403
404+ @providers .command (
405+ name = 'update' ,
406+ short_help = 'Update an existing Secrets Provider' ,
407+ )
408+ @cfy .argument ('secret_provider_name' )
409+ @cfy .options .secret_provider_type (
410+ required = False ,
411+ )
412+ @cfy .options .connection_parameters (
413+ required = False ,
414+ )
415+ @cfy .options .tenant_name (
416+ required = False ,
417+ resource_name_for_help = 'secret_provider' ,
418+ )
419+ @cfy .options .visibility (
420+ mutually_exclusive_required = False ,
421+ )
422+ @cfy .options .common_options
423+ @cfy .assert_manager_active ()
424+ @cfy .pass_client (
425+ use_tenant_in_header = True ,
426+ )
427+ @cfy .pass_logger
428+ def providers_update (
429+ secret_provider_name ,
430+ secret_provider_type ,
431+ connection_parameters ,
432+ tenant_name ,
433+ visibility ,
434+ logger ,
435+ client ,
436+ ):
437+ client .secrets_providers .update (
438+ secret_provider_name ,
439+ secret_provider_type ,
440+ connection_parameters ,
441+ visibility ,
442+ )
443+
444+ logger .info (
445+ 'Secrets provider `%s` updated' ,
446+ secret_provider_name ,
447+ )
448+
449+
450+ @providers .command (
451+ name = 'delete' ,
452+ short_help = 'Delete a secrets provider' ,
453+ )
454+ @cfy .argument ('secret_provider_name' )
455+ @cfy .options .tenant_name (
456+ required = False ,
457+ resource_name_for_help = 'secret' ,
458+ )
459+ @cfy .options .common_options
460+ @cfy .assert_manager_active ()
461+ @cfy .pass_client ()
462+ @cfy .pass_logger
463+ def providers_delete (secret_provider_name , tenant_name , logger , client ):
464+ """Delete a secrets provider
465+ """
466+ utils .explicit_tenant_name_message (tenant_name , logger )
467+ graceful_msg = 'Requested secrets provider with name `{0}` was not found' \
468+ .format (secret_provider_name )
469+
470+ with handle_client_error (404 , graceful_msg , logger ):
471+ logger .info (
472+ 'Deleting secrets provider `%s`...' ,
473+ secret_provider_name
474+ )
475+ client .secrets_providers .delete (secret_provider_name )
476+ logger .info ('Secrets provider removed' )
477+
478+
479+ @providers .command (
480+ name = 'get' ,
481+ short_help = 'Get details for a single secrets provider' ,
482+ )
483+ @cfy .argument ('secret_provider_name' )
484+ @cfy .options .tenant_name (
485+ required = False ,
486+ resource_name_for_help = 'secret' ,
487+ )
488+ @cfy .options .common_options
489+ @cfy .assert_manager_active ()
490+ @cfy .pass_client (
491+ use_tenant_in_header = True ,
492+ )
493+ @cfy .pass_logger
494+ def providers_get (secret_provider_name , tenant_name , logger , client ):
495+ """Get details for a single secrets provider
496+ """
497+ utils .explicit_tenant_name_message (tenant_name , logger )
498+ graceful_msg = 'Requested secrets provider with name `{0}`' \
499+ ' was not found in this tenant' .format (
500+ secret_provider_name
501+ )
502+ with handle_client_error (404 , graceful_msg , logger ):
503+ logger .info (
504+ 'Getting info for secrets provider `%s`...' ,
505+ secret_provider_name ,
506+ )
507+ details = client .secrets_providers .get (secret_provider_name )
508+
509+ print_details (details , 'Requested secrets provider info:' )
510+
511+
400512@providers .command (
401513 name = 'list' ,
402514 short_help = "List all secret providers" ,
@@ -406,7 +518,7 @@ def provider_create(
406518@cfy .pass_logger
407519@cfy .options .extended_view
408520@cfy .options .common_options
409- def provider_list (
521+ def providers_list (
410522 logger ,
411523 client ,
412524):
0 commit comments