#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import random, string
import urllib
import httplib2
from django.utils import simplejson
#===========================================================================
# CONFIGURACOES
#===========================================================================
root_usuario = 'admin'
root_senha = 'admin'
ftp_host = '127.0.0.1'
ftp_porta = 21
sftp_host = '127.0.0.1'
sftp_porta = 22
auth_user = 'admin'
auth_password = 'admin'
camera_pendentes_url = "http://localhost:90/webservice/camera/pendentes"
acessoftp_criar_url = "http://localhost:90/webservice/acessoftp/criar"
acessosftp_criar_url = "http://localhost:90/webservice/acessosftp/criar"
acessoemail_criar_url = "http://localhost:90/webservice/acessoemail/criar"
def camera_ativa_url(id_camera):
return "http://localhost:90/webservice/camera/%s/ativa" %(id_camera)
#===========================================================================
# RESTFUL WEBSERVICE
#===========================================================================
def rest_service_request(url, method, content_type='application/json', data=None):
h = httplib2.Http()
headers = {'Content-type': content_type}
h.add_credentials(auth_user, auth_password)
resp, content = h.request(url, method.upper(), data, headers=headers)
return content
#===========================================================================
# FUNCOES
#===========================================================================
def gerar_acesso_usuario(id_cliente, id_camera):
return 'c%s-c%s' %(id_cliente, id_camera)
def gerar_acesso_senha(length=10, chr_set=string.ascii_uppercase + string.digits):
output = ''
for n in range(length):
output += random.choice(chr_set)
return output
def get_cameras_pendentes():
url = camera_pendentes_url
method = 'get'
r = rest_service_request(url=url, method=method)
r = simplejson.loads(r)
return r
#print '%s:%s' %('get_cameras_pendentes',r)
def get_camera_ativa(id_camera):
url = camera_ativa_url(id_camera)
method = 'get'
r = rest_service_request(url=url, method=method)
#print '%s:%s' %('get_camera_ativa',r)
def post_acesso_ftp_criar(data):
url = acessoftp_criar_url
data = simplejson.dumps(data)
method = 'post'
r = rest_service_request(url=url, method=method, data=data)
#print '%s:%s' %('post_acesso_ftp_criar',r)
def post_acesso_sftp_criar(data):
url = acessosftp_criar_url
data = simplejson.dumps(data)
method = 'post'
r = rest_service_request(url=url, method=method, data=data)
#print '%s:%s' %('post_acesso_sftp_criar',r)
#===========================================================================
# SCRIPT
#===========================================================================
cameras_pendentes = get_cameras_pendentes()
if cameras_pendentes:
acessoftp_result = []
acessosftp_result = []
for camera in cameras_pendentes:
id_camera = camera.get('id')
id_cliente = camera.get('cliente_id')
acessoftp_result.append({
'id_camera' : id_camera,
'host' : ftp_host,
'porta' : ftp_porta,
'usuario' : gerar_acesso_usuario(id_camera, id_cliente),
'senha' : gerar_acesso_senha()
})
acessosftp_result.append({
'id_camera' : id_camera,
'host' : sftp_host,
'porta' : sftp_porta,
'usuario' : gerar_acesso_usuario(id_camera, id_cliente),
'senha' : gerar_acesso_senha()
})
#ativando as cameras
get_camera_ativa(id_camera)
#inserindo os acessos
post_acesso_ftp_criar(acessoftp_result)
post_acesso_sftp_criar(acessosftp_result)
#===========================================================================
# FINAL
#===========================================================================
print 'Fim'