Advertisement
Guest User

Untitled

a guest
Jun 10th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. from xivo_auth_client import Client as Auth
  4. from xivo_confd_client import Client as Confd
  5. import sys
  6.  
  7. # Please add a web service user with acl confd.#
  8. # To use ./add-user Sylvain Boily 8010
  9.  
  10. username = "change_it" # Fill with your username
  11. password = "change_it" # Fill with your password
  12.  
  13. ################ Do no modify ##############
  14.  
  15. firstname = sys.argv[1]
  16. lastname = sys.argv[2]
  17. extension = sys.argv[3]
  18. data = {}
  19. error = None
  20.  
  21. def get_token(username, password):
  22.  
  23. auth = Auth('127.0.0.1', username=username, password=password, verify_certificate=False)
  24. token_data = auth.token.new('xivo_service', expiration=10)
  25. return token_data['token']
  26.  
  27. def create_user(user):
  28. try:
  29. u = confd.users.create(user)
  30. return u['uuid']
  31. except Exception as e:
  32. print 'There is an error to create user :', e
  33. delete_on_error(data)
  34.  
  35. def create_extension(extension):
  36. try:
  37. e = confd.extensions.create(extension)
  38. return e['id']
  39. except Exception as e:
  40. print 'There is an error to create extension :', e
  41. delete_on_error(data)
  42.  
  43. def create_line(line):
  44. try:
  45. l = confd.lines.create(extension)
  46. return l['id']
  47. except Exception as e:
  48. print 'There is an error to create extension :', e
  49. delete_on_error(data)
  50.  
  51. def create_endpoint_sip(endpoint):
  52. try:
  53. sip = confd.endpoints_sip.create(endpoint)
  54. return sip['id']
  55. except Exception as e:
  56. print 'There is an error to create endpoint SIP :', e
  57. delete_on_error(data)
  58.  
  59. def associate_user(data):
  60. confd.endpoints_sip.relations(data['id_endpoint_sip']).associate_line(data['id_line'])
  61. confd.users.relations(data['uuid']).add_line(data['id_line'])
  62. confd.extensions.relations(data['id_exten']).add_line(data['id_line'])
  63.  
  64. def delete_on_error(data):
  65. global error
  66. error = 1
  67. try:
  68. confd.users.delete(data['uuid'])
  69. confd.extensions.delete(data['id_exten'])
  70. confd.line.delete(data['id_line'])
  71. confd.endpoints_sip.delete(data['id_endpoint_sip'])
  72. except:
  73. pass
  74.  
  75.  
  76. confd = Confd('localhost', verify_certificate=False, token=get_token(username, password))
  77.  
  78. user = {
  79. 'firstname': firstname,
  80. 'lastname': lastname
  81. }
  82.  
  83. data['uuid'] = create_user(user)
  84.  
  85. extension = {
  86. 'context': 'default',
  87. 'exten' : extension
  88. }
  89.  
  90. data['id_exten'] = create_extension(extension)
  91.  
  92. line = {
  93. 'context': 'default'
  94. }
  95.  
  96. data['id_line'] = create_line(line)
  97.  
  98. endpoint = {
  99. 'type': 'friend',
  100. 'host': 'dynamic'
  101. }
  102.  
  103. data['id_endpoint_sip'] = create_endpoint_sip(endpoint)
  104.  
  105. if data and error != 1:
  106. associate_user(data)
  107. print data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement