MCPcopy Create free account
hub / github.com/StackStorm/st2 / KeyValuePairDeleteByPrefixCommand

Class KeyValuePairDeleteByPrefixCommand

st2client/st2client/commands/keyvalue.py:357–404  ·  view source on GitHub ↗

Commands which delete all the key value pairs which match the provided prefix.

Source from the content-addressed store, hash-verified

355
356
357class KeyValuePairDeleteByPrefixCommand(resource.ResourceCommand):
358 """
359 Commands which delete all the key value pairs which match the provided
360 prefix.
361 """
362
363 def __init__(self, resource, *args, **kwargs):
364 super(KeyValuePairDeleteByPrefixCommand, self).__init__(
365 resource,
366 "delete_by_prefix",
367 "Delete KeyValue pairs which \
368 match the provided prefix",
369 *args,
370 **kwargs,
371 )
372
373 self.parser.add_argument(
374 "-p",
375 "--prefix",
376 required=True,
377 help="Name prefix (e.g. twitter.TwitterSensor:)",
378 )
379
380 @resource.add_auth_token_to_kwargs_from_cli
381 def run(self, args, **kwargs):
382 prefix = args.prefix
383 key_pairs = self.manager.get_all(prefix=prefix)
384
385 to_delete = []
386 for key_pair in key_pairs:
387 key_pair.id = key_pair.name
388 to_delete.append(key_pair)
389
390 deleted = []
391 for key_pair in to_delete:
392 self.manager.delete(instance=key_pair, **kwargs)
393 deleted.append(key_pair)
394
395 return deleted
396
397 def run_and_print(self, args, **kwargs):
398 # TODO: Need to use args, instead of kwargs (args=) because of bad API
399 # FIX ME
400 deleted = self.run(args, **kwargs)
401 key_ids = [key_pair.id for key_pair in deleted]
402
403 print("Deleted %s keys" % (len(deleted)))
404 print("Deleted key ids: %s" % (", ".join(key_ids)))
405
406
407class KeyValuePairLoadCommand(resource.ResourceCommand):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected