Skip to content

Commit 4a51fa6

Browse files
authored
Merge pull request #43 from StarryInternet/kcollinssibley/PSST-1290
PSST-1290: Remove key type from output
2 parents 44365d9 + 82f9d75 commit 4a51fa6

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

clients/python/sysadminctl

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,23 +82,30 @@ def get_existing_type(response):
8282
return response.get.kvs[0].value.WhichOneof("value").replace("val", "")
8383

8484

85-
def format_kvs(kvs):
85+
def format_kvs(kvs, verbose=False):
8686
kvstrings = []
8787
for kv in kvs:
8888
if kv.value:
8989
key_type = kv.value.WhichOneof("value").replace("val", "")
9090
value = UnpackFromProto(kv.value)
9191
if isinstance(value, str) or isinstance(value, unicode):
9292
value = "\"%s\"" % value
93-
kvstrings.append("%s = %s, type = %s" % (kv.key, value, key_type))
93+
94+
output_str = (
95+
"%s = %s, type = %s" % (kv.key, value, key_type)
96+
if verbose
97+
else "%s = %s" % (kv.key, value))
98+
kvstrings.append(output_str)
9499
return "\n".join(sorted(kvstrings))
95100

96101

97-
def format_set_output(response):
102+
def format_set_output(response, verbose=False):
98103
if response.status == sysadminctl_pb2.SUCCESS_KEY_CREATED:
99-
return "Uncommitted created new entry\n" + format_kvs(response.get.kvs)
104+
return "Uncommitted created new entry\n" + format_kvs(response.get.kvs,
105+
verbose)
100106
elif response.status == sysadminctl_pb2.SUCCESS:
101-
return "Uncommitted modified entry\n" + format_kvs(response.get.kvs)
107+
return "Uncommitted modified entry\n" + format_kvs(response.get.kvs,
108+
verbose)
102109
return response
103110

104111

@@ -112,6 +119,8 @@ class SetCommand(object):
112119
self.parser.add_argument("--type", type=str, default="str",
113120
choices=type_choices,
114121
help="value type, default: str")
122+
self.parser.add_argument("-v", "--verbose", action='store_true',
123+
help="Enable verbose output")
115124

116125
def run(self, args):
117126
client = SysAdminClient(args.host, args.port, args.xid)
@@ -127,7 +136,7 @@ class SetCommand(object):
127136
pyvalue = convertToType(args.value, new_type)
128137
except ValueError as err:
129138
return err
130-
return format_set_output(client.set(args.key, pyvalue))
139+
return format_set_output(client.set(args.key, pyvalue), args.verbose)
131140

132141

133142
class ModifyCommand(object):
@@ -148,6 +157,8 @@ class ModifyCommand(object):
148157
self.parser.add_argument("--type", type=str,
149158
choices=type_choices,
150159
help="value type")
160+
self.parser.add_argument("-v", "--verbose", action='store_true',
161+
help="Enable verbose output")
151162

152163
def run(self, args):
153164
client = SysAdminClient(args.host, args.port, args.xid)
@@ -164,12 +175,14 @@ class ModifyCommand(object):
164175
pyvalue = convertToType(args.value, existing_type)
165176
except ValueError as err:
166177
return err
167-
return format_set_output(client.set(args.key, pyvalue))
178+
return format_set_output(
179+
client.set(args.key, pyvalue),
180+
args.verbose)
168181

169182

170-
def format_get_output(key, response):
183+
def format_get_output(key, response, verbose=False):
171184
if response.status == sysadminctl_pb2.SUCCESS:
172-
return format_kvs(response.get.kvs)
185+
return format_kvs(response.get.kvs, verbose)
173186
elif response.status == sysadminctl_pb2.KEY_NOT_FOUND:
174187
return "Key not found: " + key
175188
else:
@@ -181,10 +194,12 @@ class GetCommand(object):
181194
self.parser = argparser.add_parser("get")
182195
self.parser.add_argument("key", type=str,
183196
help="key")
197+
self.parser.add_argument("-v", "--verbose", action='store_true',
198+
help="get output with variable type")
184199

185200
def run(self, args):
186201
client = SysAdminClient(args.host, args.port, args.xid)
187-
return format_get_output(args.key, client.get(args.key))
202+
return format_get_output(args.key, client.get(args.key), args.verbose)
188203

189204

190205
def format_commit_output(response):

0 commit comments

Comments
 (0)