File: //usr/bin/lwmyctrl
#!/usr/bin/python
import argparse
import sys
from lwdbadmin.mysql import libmysql
def parse_args():
parser = argparse.ArgumentParser(description='MySQL command line for Locaweb machines')
# comandos
subparsers = parser.add_subparsers(dest='command', help='commands help')
criar_parser = subparsers.add_parser('criarbase', help='criar uma base nova')
remover_parser = subparsers.add_parser('removerbase', help='remover uma base')
ativar_parser = subparsers.add_parser('ativarbase', help='reativar uma base')
desativar_parser = subparsers.add_parser('desativarbase', help='desativar uma base')
trocasenha_parser = subparsers.add_parser('trocasenha', help='troca a senha de um usuario')
status_parser = subparsers.add_parser('statusbase', help='retorna se uma base esta ativa / desativada')
# TODO: para depois
#tamanho_parser = subparsers.add_parser('tamanhobase', help='retorna o tamanho de uma base')
#criarusuario_parser = subparsers.add_parser('criarusuario', help='criar usuario adicional, sem uma base')
#removerusuario_parser = subparsers.add_parser('removerusuario', help='remover usuario adicional, sem uma base')
matarconexoes_parser = subparsers.add_parser('matarconexoes', help='matar todas as conexoes de um usuario')
criar_parser.add_argument('base', type=str, help="Nome da base")
criar_parser.add_argument('login', type=str, help="Login da base")
criar_parser.add_argument('senha', type=str, help="Senha do cliente")
criar_parser.add_argument('osuser', type=str, default=None, nargs='?', help="Usuario do SO (default None)")
criar_parser.add_argument('host', type=str, default="%", nargs='?', help="Host (default '%%')")
remover_parser.add_argument('base', type=str, help="Nome da base")
ativar_parser.add_argument('base', type=str, help="Nome da base")
desativar_parser.add_argument('base', type=str, help="Nome da base")
trocasenha_parser.add_argument('login', type=str, help="Login do cliente")
trocasenha_parser.add_argument('senha', type=str, help="Nova senha")
status_parser.add_argument('base', type=str, help="Nome da base")
matarconexoes_parser.add_argument('login', type=str, help="Nome do usuario")
return parser.parse_args()
if __name__ == '__main__':
args = parse_args()
try:
if args.command == 'criarbase':
libmysql.createdatabase(args.base, args.login, args.senha, args.host, args.osuser)
elif args.command == 'removerbase':
libmysql.removedatabase(args.base)
elif args.command == 'ativarbase':
libmysql.activatedatabase(args.base)
elif args.command == 'desativarbase':
libmysql.deactivedatabase(args.base)
elif args.command == 'trocasenha':
libmysql.setpassword(args.login, args.senha)
elif args.command == 'statusbase':
if libmysql.isactive(args.base):
print "A base esta ativa"
else:
print "Base desativada"
elif args.command == 'matarconexoes':
x = libmysql.killqueries(args.login)
print "{0} conexoes do usuario {1} terminadas".format(x, args.login)
else:
raise Exception("No command error")
except Exception, e:
print str(e)
sys.exit(1)