google apps and python para python brasil [7]
DESCRIPTION
Slides for my presentation briefly describing how to automate user management in a google apps for business domain, using python.TRANSCRIPT
Python & Google AppsDomains
Presenter Notes
Presenter Notes
Como o trabalho deveria serUma nova tarefa chega após o término da anterior
Presenter Notes
Como ele realmente éUma tarefa demora mais do que o tempo médio de chegada deuma nova
Presenter Notes
O problema• Número fixo de Contas Google
• Número total de funcionários muito próximo ao limite
• Rotatividade de Funcionários
◦ Novas contas Precisam ser entregues rapidamente
◦ Antigas contas Precisam ser removidas
◦ Gestores querem acesso a emails antigos, futuros e documentos
• Consequência: Demora na entrega de novas contas
Presenter Notes
A soluçãoAutomatizar:
• Transferir documentos google docs para responsável
• Download de emails antigos para backup/"acesso offline"
• Remover conta antiga
• Criar nova conta google apps
• Adicionar Alias para responsável
• Remover alias para responsável após 30 dias
Presenter Notes
Enable Google Provisioning APISó funciona para a versão "Business" ou "Educational" do apps(Para testar, você pode habilitar gratuitamente por 30 dias)
Presenter Notes
WarningIsso significa que se você estiver gerenciando suas contas apartir de outra aplicação/base, contas criadas via web nãoserão autoMAGICAmente importadas para sua baseproprietária e.g. LDAP (duh!)
Presenter Notes
Sample CodeLists all users in a Domain
123456789
101112131415
from getpass import getpassimport gdata.apps.service
DOMAIN = 'macan.eng.br'username = raw_input('Admin account : ')password = getpass('Admin password : ')
service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,password=password)
service.ProgrammaticLogin()
userfeed = service.RetrieveAllUsers()
for user in userfeed.entry:print user.login.user_name
Presenter Notes
Sample CodeCreate a new apps account
123456789
1011121314151617181920212223
from getpass import getpassimport gdata.apps.serviceDOMAIN = 'macan.eng.br'username = raw_input('Admin email : ')password = getpass('Admin password : ')
service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,password=password)
service.ProgrammaticLogin()
cont = Truewhile cont:
nome = raw_input("Nome : ")sobrenome = raw_input("Sobrenome : ")login = raw_input("Login : ")senha = getpass("Senha : ")
service.CreateUser(login, sobrenome, nome, senha )
yesno= raw_input('Digite "s" para adicionar outro: ')cont = yesno=="s" or yesno == "S"
else:print "Saindo..."
Presenter Notes
Sample CodeAdd an alias
123456789
101112131415161718
from getpass import getpassimport gdata.apps.service
#change this to your google apps domainDOMAIN='macan.eng.br'
username = raw_input('Admin email : ')password = getpass('Admin password : ')olduser = raw_input('Old user login : ')manager = raw_input('Add alias to : ')
service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,password=password)
service.ProgrammaticLogin()
print "Adding nickname %s to %s" % (olduser,manager)service.CreateNickname(manager,olduser)print "Feito"
Presenter Notes
Referências• GData Python Client
◦ http://code.google.com/p/gdata-python-client/
◦ http://gdata-python-client.googlecode.com/hg/pydocs/gdata.html
• IMAP Backup (ferramenta simples em python)
◦ http://tamale.net/imapbackup/
• Landslide e Markdown (Esta apresentação)
◦ https://github.com/adamzap/landslide
◦ http://daringfireball.net/projects/markdown/syntax
• Apresentação, Fontes e Exemplos
◦ http://eduardo.macan.eng.br/software-livre/apresentacao-pythonbr7-google-apps/
Presenter Notes
Obrigado!
Presenter Notes