Add new arg "--update-config" to update user config.
Bug: 152727427
Test: acloud-dev setup --update-config stable_host_image_family acloud-release
Change-Id: I671959621d6bcab7f24097a33d3c33acbb9cb76a
diff --git a/setup/setup.py b/setup/setup.py
index 39513dc..c424318 100644
--- a/setup/setup.py
+++ b/setup/setup.py
@@ -24,6 +24,7 @@
from acloud.internal import constants
from acloud.internal.lib import utils
+from acloud.public import config
from acloud.setup import host_setup_runner
from acloud.setup import gcp_setup_runner
@@ -39,6 +40,10 @@
Args:
args: Namespace object from argparse.parse_args.
"""
+ if args.update_config:
+ _UpdateConfig(args.config_file, args.update_config[0], args.update_config[1])
+ return
+
_RunPreSetup()
# Setup process will be in the following manner:
@@ -113,3 +118,18 @@
if os.path.exists(pre_setup_sh):
subprocess.call([pre_setup_sh])
+
+def _UpdateConfig(config_file, field, value):
+ """Update the user config.
+
+ Args:
+ config_file: String of config file path.
+ field: String, field name in user config.
+ value: String, the value of field.
+ """
+ config_mgr = config.AcloudConfigManager(config_file)
+ config_mgr.Load()
+ user_config = config_mgr.user_config_path
+ print("Your config (%s) is updated." % user_config)
+ gcp_setup_runner.UpdateConfigFile(user_config, field, value)
+ _PrintUsage()