From eaa21881191e3413a387fc53866253fb8616e893 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 15 May 2023 17:46:10 +0200 Subject: [PATCH] cloud-setup: refactor handling of environment variables Previously, there was NMCS_ENV_VARIABLE() macro. That macro did nothing, it merely acted as something to grep for, when searching the source for which environment variables nm-cloud-setup honors. That is an interesting thing to know, because nm-cloud-setup is configured via environment variables. Change that. Instead add a define for each environment variable. You can now instead grep for "NMCS_ENV_" to find them all. --- src/nm-cloud-setup/main.c | 2 +- src/nm-cloud-setup/nm-cloud-setup-utils.h | 16 +++++++++++++--- src/nm-cloud-setup/nmcs-provider-aliyun.c | 4 ++-- src/nm-cloud-setup/nmcs-provider-azure.c | 4 ++-- src/nm-cloud-setup/nmcs-provider-ec2.c | 4 ++-- src/nm-cloud-setup/nmcs-provider-gcp.c | 4 ++-- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/nm-cloud-setup/main.c b/src/nm-cloud-setup/main.c index 5efa87bd3d..d9a4a51e21 100644 --- a/src/nm-cloud-setup/main.c +++ b/src/nm-cloud-setup/main.c @@ -633,7 +633,7 @@ main(int argc, const char *const *argv) nm_auto_free_nmcs_provider_get_config_result NMCSProviderGetConfigResult *result = NULL; gs_free_error GError *error = NULL; - _nm_logging_enabled_init(g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_LOG"))); + _nm_logging_enabled_init(g_getenv(NMCS_ENV_NM_CLOUD_SETUP_LOG)); _LOGD("nm-cloud-setup %s starting...", NM_DIST_VERSION); diff --git a/src/nm-cloud-setup/nm-cloud-setup-utils.h b/src/nm-cloud-setup/nm-cloud-setup-utils.h index d7669b1ed5..e4c7a28534 100644 --- a/src/nm-cloud-setup/nm-cloud-setup-utils.h +++ b/src/nm-cloud-setup/nm-cloud-setup-utils.h @@ -7,9 +7,19 @@ /*****************************************************************************/ -/* mark names for variables that can be used as configuration. Search - * for NMCS_ENV_VARIABLE() to find all honored environment variables. */ -#define NMCS_ENV_VARIABLE(var) "" var "" +/* Environment variables for configuring nm-cloud-setup */ +#define NMCS_ENV_NM_CLOUD_SETUP_ALIYUN "NM_CLOUD_SETUP_ALIYUN" +#define NMCS_ENV_NM_CLOUD_SETUP_AZURE "NM_CLOUD_SETUP_AZURE" +#define NMCS_ENV_NM_CLOUD_SETUP_EC2 "NM_CLOUD_SETUP_EC2" +#define NMCS_ENV_NM_CLOUD_SETUP_GCP "NM_CLOUD_SETUP_GCP" +#define NMCS_ENV_NM_CLOUD_SETUP_LOG "NM_CLOUD_SETUP_LOG" + +/* Undocumented/internal environment variables for configuring nm-cloud-setup. + * These are mainly for testing/debugging. */ +#define NMCS_ENV_NM_CLOUD_SETUP_ALIYUN_HOST "NM_CLOUD_SETUP_ALIYUN_HOST" +#define NMCS_ENV_NM_CLOUD_SETUP_AZURE_HOST "NM_CLOUD_SETUP_AZURE_HOST" +#define NMCS_ENV_NM_CLOUD_SETUP_EC2_HOST "NM_CLOUD_SETUP_EC2_HOST" +#define NMCS_ENV_NM_CLOUD_SETUP_GCP_HOST "NM_CLOUD_SETUP_GCP_HOST" /*****************************************************************************/ diff --git a/src/nm-cloud-setup/nmcs-provider-aliyun.c b/src/nm-cloud-setup/nmcs-provider-aliyun.c index 7f51f431bc..aa98ca7115 100644 --- a/src/nm-cloud-setup/nmcs-provider-aliyun.c +++ b/src/nm-cloud-setup/nmcs-provider-aliyun.c @@ -30,7 +30,7 @@ again: /* The base URI can be set via environment variable. * This is mainly for testing, it's not usually supposed to be configured. * Consider this private API! */ - base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_ALIYUN_HOST")); + base = g_getenv(NMCS_ENV_NM_CLOUD_SETUP_ALIYUN_HOST); base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_ALIYUN_HOST); if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base)) @@ -558,7 +558,7 @@ nmcs_provider_aliyun_class_init(NMCSProviderAliyunClass *klass) NMCSProviderClass *provider_class = NMCS_PROVIDER_CLASS(klass); provider_class->_name = "aliyun"; - provider_class->_env_provider_enabled = NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_ALIYUN"); + provider_class->_env_provider_enabled = NMCS_ENV_NM_CLOUD_SETUP_ALIYUN; provider_class->detect = detect; provider_class->get_config = get_config; } diff --git a/src/nm-cloud-setup/nmcs-provider-azure.c b/src/nm-cloud-setup/nmcs-provider-azure.c index 418d380a5d..89013aa4ee 100644 --- a/src/nm-cloud-setup/nmcs-provider-azure.c +++ b/src/nm-cloud-setup/nmcs-provider-azure.c @@ -29,7 +29,7 @@ again: /* The base URI can be set via environment variable. * This is mainly for testing, it's not usually supposed to be configured. * Consider this private API! */ - base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_AZURE_HOST")); + base = g_getenv(NMCS_ENV_NM_CLOUD_SETUP_AZURE_HOST); base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_AZURE_BASE); if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base)) @@ -586,7 +586,7 @@ nmcs_provider_azure_class_init(NMCSProviderAzureClass *klass) NMCSProviderClass *provider_class = NMCS_PROVIDER_CLASS(klass); provider_class->_name = "azure"; - provider_class->_env_provider_enabled = NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_AZURE"); + provider_class->_env_provider_enabled = NMCS_ENV_NM_CLOUD_SETUP_AZURE; provider_class->detect = detect; provider_class->get_config = get_config; } diff --git a/src/nm-cloud-setup/nmcs-provider-ec2.c b/src/nm-cloud-setup/nmcs-provider-ec2.c index 65a8f6298f..9975a4fe47 100644 --- a/src/nm-cloud-setup/nmcs-provider-ec2.c +++ b/src/nm-cloud-setup/nmcs-provider-ec2.c @@ -33,7 +33,7 @@ again: /* The base URI can be set via environment variable. * This is mainly for testing, it's not usually supposed to be configured. * Consider this private API! */ - base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_EC2_HOST")); + base = g_getenv(NMCS_ENV_NM_CLOUD_SETUP_EC2_HOST); base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_EC2_BASE); if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base)) @@ -435,7 +435,7 @@ nmcs_provider_ec2_class_init(NMCSProviderEC2Class *klass) object_class->dispose = dispose; provider_class->_name = "ec2"; - provider_class->_env_provider_enabled = NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_EC2"); + provider_class->_env_provider_enabled = NMCS_ENV_NM_CLOUD_SETUP_EC2; provider_class->detect = detect; provider_class->get_config = get_config; } diff --git a/src/nm-cloud-setup/nmcs-provider-gcp.c b/src/nm-cloud-setup/nmcs-provider-gcp.c index 33d0fe08f9..6f037282aa 100644 --- a/src/nm-cloud-setup/nmcs-provider-gcp.c +++ b/src/nm-cloud-setup/nmcs-provider-gcp.c @@ -32,7 +32,7 @@ again: /* The base URI can be set via environment variable. * This is mainly for testing, it's not usually supposed to be configured. * Consider this private API! */ - base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_GCP_HOST")); + base = g_getenv(NMCS_ENV_NM_CLOUD_SETUP_GCP_HOST); base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_GCP_BASE); if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base)) @@ -482,7 +482,7 @@ nmcs_provider_gcp_class_init(NMCSProviderGCPClass *klass) NMCSProviderClass *provider_class = NMCS_PROVIDER_CLASS(klass); provider_class->_name = "GCP"; - provider_class->_env_provider_enabled = NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_GCP"); + provider_class->_env_provider_enabled = NMCS_ENV_NM_CLOUD_SETUP_GCP; provider_class->detect = detect; provider_class->get_config = get_config; }