Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 24th, 2012  |  syntax: Python  |  size: 4.09 KB  |  hits: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5. import random, string
  6. import urllib
  7. import httplib2
  8. from django.utils import simplejson
  9.  
  10. #===========================================================================
  11. #   CONFIGURACOES
  12. #===========================================================================
  13. root_usuario = 'admin'
  14. root_senha = 'admin'
  15.  
  16. ftp_host = '127.0.0.1'
  17. ftp_porta = 21
  18.  
  19. sftp_host = '127.0.0.1'
  20. sftp_porta  = 22
  21.  
  22. auth_user = 'admin'
  23. auth_password = 'admin'
  24.  
  25. camera_pendentes_url    = "http://localhost:90/webservice/camera/pendentes"
  26. acessoftp_criar_url     = "http://localhost:90/webservice/acessoftp/criar"
  27. acessosftp_criar_url    = "http://localhost:90/webservice/acessosftp/criar"
  28. acessoemail_criar_url   = "http://localhost:90/webservice/acessoemail/criar"
  29.  
  30. def camera_ativa_url(id_camera):
  31.     return "http://localhost:90/webservice/camera/%s/ativa" %(id_camera)
  32.  
  33. #===========================================================================
  34. #   RESTFUL WEBSERVICE
  35. #===========================================================================    
  36. def rest_service_request(url, method, content_type='application/json', data=None):
  37.     h = httplib2.Http()
  38.  
  39.     headers = {'Content-type': content_type}
  40.  
  41.     h.add_credentials(auth_user, auth_password)
  42.     resp, content = h.request(url, method.upper(), data, headers=headers)
  43.  
  44.     return content
  45.  
  46.  
  47. #===========================================================================
  48. #   FUNCOES
  49. #===========================================================================
  50. def gerar_acesso_usuario(id_cliente, id_camera):
  51.     return 'c%s-c%s' %(id_cliente, id_camera)
  52.  
  53.  
  54. def gerar_acesso_senha(length=10, chr_set=string.ascii_uppercase + string.digits):
  55.     output = ''
  56.     for n in range(length):
  57.         output += random.choice(chr_set)
  58.     return output
  59.  
  60.  
  61. def get_cameras_pendentes():
  62.     url = camera_pendentes_url
  63.     method = 'get'
  64.  
  65.     r = rest_service_request(url=url, method=method)
  66.     r = simplejson.loads(r)
  67.  
  68.     return r
  69.  
  70.     #print '%s:%s' %('get_cameras_pendentes',r)
  71.  
  72.  
  73. def get_camera_ativa(id_camera):
  74.     url = camera_ativa_url(id_camera)
  75.     method = 'get'
  76.  
  77.     r = rest_service_request(url=url, method=method)
  78.  
  79.     #print '%s:%s' %('get_camera_ativa',r)
  80.  
  81.  
  82. def post_acesso_ftp_criar(data):
  83.     url = acessoftp_criar_url
  84.     data = simplejson.dumps(data)
  85.     method = 'post'
  86.  
  87.     r = rest_service_request(url=url, method=method, data=data)
  88.  
  89.     #print '%s:%s' %('post_acesso_ftp_criar',r)
  90.  
  91. def post_acesso_sftp_criar(data):
  92.     url = acessosftp_criar_url
  93.     data = simplejson.dumps(data)
  94.     method = 'post'
  95.  
  96.     r = rest_service_request(url=url, method=method, data=data)
  97.  
  98.     #print '%s:%s' %('post_acesso_sftp_criar',r)
  99.  
  100. #===========================================================================
  101. #   SCRIPT
  102. #===========================================================================
  103.  
  104. cameras_pendentes = get_cameras_pendentes()
  105.  
  106. if cameras_pendentes:
  107.  
  108.     acessoftp_result = []
  109.     acessosftp_result = []
  110.  
  111.     for camera in cameras_pendentes:
  112.         id_camera = camera.get('id')
  113.         id_cliente = camera.get('cliente_id')
  114.  
  115.         acessoftp_result.append({
  116.             'id_camera' : id_camera,
  117.             'host' : ftp_host,
  118.             'porta' : ftp_porta,
  119.             'usuario' : gerar_acesso_usuario(id_camera, id_cliente),
  120.             'senha' : gerar_acesso_senha()
  121.         })
  122.  
  123.         acessosftp_result.append({
  124.             'id_camera' : id_camera,
  125.             'host' : sftp_host,
  126.             'porta' : sftp_porta,
  127.             'usuario' : gerar_acesso_usuario(id_camera, id_cliente),
  128.             'senha' : gerar_acesso_senha()
  129.         })
  130.  
  131.         #ativando as cameras
  132.         get_camera_ativa(id_camera)
  133.  
  134.     #inserindo os acessos
  135.  
  136.     post_acesso_ftp_criar(acessoftp_result)
  137.     post_acesso_sftp_criar(acessosftp_result)
  138.  
  139. #===========================================================================
  140. #   FINAL
  141. #===========================================================================
  142. print 'Fim'