pgtool 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #!/usr/bin/python
  2. import os
  3. import sys
  4. # print 'Number of arguments:', len(sys.argv), 'arguments.'
  5. # print 'Argument List:', str(sys.argv)
  6. actions = ['help', 'drop_user', 'create_user', 'delete_user', 'delete_database', 'create_database', 'grant_all_privileges']
  7. def usage():
  8. print('')
  9. print('USAGE: '+__file__+' ['+'|'.join(action for action in actions)+'] [parameters]')
  10. print('')
  11. print(' '+__file__+' create_user <user_name> <password>')
  12. print(' '+__file__+' delete_user <user_name>')
  13. print(' '+__file__+' create_database <database_name>')
  14. print(' '+__file__+' delete_database <database_name> --force')
  15. print(' '+__file__+' grant_all_privileges <database_name> <user_name>')
  16. print('')
  17. print('')
  18. print('NOTE: this tool is intended to be used as \'postgres\' system user')
  19. print('')
  20. print('')
  21. def show_help_and_exit():
  22. usage()
  23. exit()
  24. def on_result_and_exit(result):
  25. if result==0:
  26. exit(0)
  27. print('ERRROR')
  28. exit(error_code)
  29. #######
  30. if len(sys.argv)<=1:
  31. show_help_and_exit()
  32. if sys.argv[1] not in actions:
  33. print('Unknown command %s'%sys.argv[1])
  34. show_help_and_exit()
  35. if sys.argv[1]=='help':
  36. show_help_and_exit()
  37. if sys.argv[1]=='create_user':
  38. if len(sys.argv)!=4:
  39. show_help_and_exit()
  40. user_name = sys.argv[2]
  41. user_pass = sys.argv[3]
  42. print('PG - CREATE USER')
  43. print('- name: '+user_name)
  44. print('- password: XXX')
  45. sql = '"CREATE USER %s WITH PASSWORD \'%s\';"' %(user_name, user_pass)
  46. result = os.system('echo %s|psql' % (sql))
  47. on_result_and_exit(result)
  48. if sys.argv[1]=='delete_user':
  49. if len(sys.argv)!=3:
  50. show_help_and_exit()
  51. user_name = sys.argv[2]
  52. print('PG - DELETE USER')
  53. print('- name: '+user_name)
  54. sql = '"DROP ROLE %s;"' %(user_name)
  55. result = os.system('echo %s|psql' % (sql))
  56. on_result_and_exit(result)
  57. if sys.argv[1]=='create_database':
  58. if len(sys.argv)!=3:
  59. show_help_and_exit()
  60. name = sys.argv[2]
  61. print('PG - CREATE DATABASE')
  62. print('- name: '+name)
  63. sql = '"CREATE DATABASE %s;"' %(name)
  64. result = os.system('echo %s|psql' % (sql))
  65. on_result_and_exit(result)
  66. if sys.argv[1]=='delete_database':
  67. if len(sys.argv)!=4:
  68. show_help_and_exit()
  69. name = sys.argv[2]
  70. force = sys.argv[3]
  71. print('PG - DROP DATABASE')
  72. print('- name: '+name)
  73. if force!='--force':
  74. print('Add --force option in order to drop a database')
  75. on_result_and_exit(-1)
  76. sql = '"DROP DATABASE %s;"' %(name)
  77. result = os.system('echo %s|psql' % (sql))
  78. on_result_and_exit(result)
  79. if sys.argv[1]=='grant_all_privileges':
  80. if len(sys.argv)!=4:
  81. show_help_and_exit()
  82. database_name = sys.argv[2]
  83. user_name = sys.argv[3]
  84. print('PG - GRANT ALL PRIVILEGES ON DATABASE')
  85. print('- database: '+database_name)
  86. print('- user: '+user_name)
  87. sql = '"GRANT ALL PRIVILEGES ON DATABASE %s to %s;"' % (database_name, user_name)
  88. result = os.system('echo %s|psql' % (sql))
  89. on_result_and_exit(result)