From ef63e2e1bb063f285fd669021dd70fbbbaca95f0 Mon Sep 17 00:00:00 2001 From: ricolin Date: Tue, 8 Aug 2023 11:39:57 +0800 Subject: [PATCH] Allow directly output cluster config Allow cluster config directly return configs instead of writing file. This is useful when using magnum client utils from non-commandline interfaces. Change-Id: Ie6717e1f2d673fe3e92c58a926a82f255a6d20ca --- magnumclient/common/utils.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/magnumclient/common/utils.py b/magnumclient/common/utils.py index a1851151..cadacfcf 100644 --- a/magnumclient/common/utils.py +++ b/magnumclient/common/utils.py @@ -160,11 +160,12 @@ def handle_json_from_file(json_arg): def config_cluster(cluster, cluster_template, cfg_dir, force=False, - certs=None, use_keystone=False): + certs=None, use_keystone=False, direct_output=False): """Return and write configuration for the given cluster.""" if cluster_template.coe == 'kubernetes': return _config_cluster_kubernetes(cluster, cluster_template, cfg_dir, - force, certs, use_keystone) + force, certs, use_keystone, + direct_output) elif (cluster_template.coe == 'swarm' or cluster_template.coe == 'swarm-mode'): return _config_cluster_swarm(cluster, cluster_template, cfg_dir, @@ -172,7 +173,8 @@ def config_cluster(cluster, cluster_template, cfg_dir, force=False, def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir, - force=False, certs=None, use_keystone=False): + force=False, certs=None, use_keystone=False, + direct_output=False): """Return and write configuration for the given kubernetes cluster.""" cfg_file = "%s/config" % cfg_dir if cluster_template.tls_disabled or certs is None: @@ -252,6 +254,8 @@ def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir, 'api_address': cluster.api_address, 'ca': base64.encode_as_text(certs['ca'])}) + if direct_output: + return cfg if os.path.exists(cfg_file) and not force: raise exc.CommandError("File %s exists, aborting." % cfg_file) else: