From ad7bc313f7bf91ee1ae434fcbf7b107e452795fa Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Fri, 3 Aug 2018 10:52:16 +0900 Subject: [PATCH] dist/common/scripts: pass format variables to colorprint() When we use str.format() to pass variables on the message it will always causes Exception like "KeyError: 'red'", since the message contains color variables but it's not passed to str.format(). To avoid the error we need to pass all format variables to colorprint() and run str.format() inside the function. Fixes #3649 Signed-off-by: Takuya ASADA Message-Id: <20180803015216.14328-1-syuu@scylladb.com> --- dist/common/scripts/scylla_ec2_check | 2 +- dist/common/scripts/scylla_setup | 2 +- dist/common/scripts/scylla_util.py | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dist/common/scripts/scylla_ec2_check b/dist/common/scripts/scylla_ec2_check index 066630f97d..2e4af38086 100755 --- a/dist/common/scripts/scylla_ec2_check +++ b/dist/common/scripts/scylla_ec2_check @@ -43,7 +43,7 @@ if __name__ == '__main__': driver = match.group(1) if not en: - colorprint('{red}{instance_class} doesn\'t support enahanced networking!{nocolor}'.format(instance_class)) + colorprint('{red}{instance_class} doesn\'t support enahanced networking!{nocolor}', instance_class=instance_class) print('''To enable enhanced networking, please use the instance type which supports it. More documentation available at: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking''') diff --git a/dist/common/scripts/scylla_setup b/dist/common/scripts/scylla_setup index 5a00a68cf4..7efa99a65b 100755 --- a/dist/common/scripts/scylla_setup +++ b/dist/common/scripts/scylla_setup @@ -102,7 +102,7 @@ def run_setup_script(name, script): res = run(script, exception=False) if res != 0: if interactive: - colorprint('{red}{name} setup failed. Press any key to continue...{nocolor}'.format(name=name)) + colorprint('{red}{name} setup failed. Press any key to continue...{nocolor}', name=name) input() else: print('{} setup failed.'.format(name)) diff --git a/dist/common/scripts/scylla_util.py b/dist/common/scripts/scylla_util.py index ae584b19bc..c4876515d5 100644 --- a/dist/common/scripts/scylla_util.py +++ b/dist/common/scripts/scylla_util.py @@ -350,8 +350,10 @@ def is_unused_disk(dev): return False CONCOLORS = {'green':'\033[1;32m', 'red':'\033[1;31m', 'nocolor':'\033[0m'} -def colorprint(msg): - print(msg.format(**CONCOLORS)) +def colorprint(msg, **kwargs): + fmt = dict(CONCOLORS) + fmt.update(kwargs) + print(msg.format(**fmt)) def get_mode_cpuset(nic, mode): try: