#!/usr/bin/bash # coding: utf-8 import argparse from SWSCloudCore.controllers.settings import ControllerSettings class SettingsCli(object): def __init__(self): self.parser = argparse.ArgumentParser(description='Process some integers.') self.parser.add_argument('--key', metavar='k', type=str, default='', help='settings key') self.parser.add_argument('--value', metavar='v', type=str, default='', help='settings value') # get, set, delete self.parser.add_argument('--action', metavar='a', type=str, help='action to invoke (get is default)') self.controller = ControllerSettings() def run(self): args = self.parser.parse_args() if args.action: action = args.action.lower() if hasattr(self, action): # invoke method if it exists in self return getattr(self, action)(args.key, args.value) # unsupported action else: self.parser.print_help() def get(self, key, value=None): key = self.controller.get(key) return 1 if not key else key def set(self, key, value): if self.controller.exists(key): code = int(self.controller.update(key, value)) else: code = int(self.controller.create(key, value)) return code def delete(self, key, value=None): return int(self.controller.delete(key)) if __name__ == '__main__': x = SettingsCli().run() exit(x)