26
Python & Google Apps Domains

Google apps and Python para Python Brasil [7]

Embed Size (px)

DESCRIPTION

Slides for my presentation briefly describing how to automate user management in a google apps for business domain, using python.

Citation preview

Page 1: Google apps and Python para Python Brasil [7]

Python & Google AppsDomains

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.
Page 2: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 3: Google apps and Python para Python Brasil [7]

ContatoEduardo Marcel Maçan@eduardomacan

[email protected]

[email protected]

Page 4: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 5: Google apps and Python para Python Brasil [7]

Como o trabalho deveria serUma nova tarefa chega após o término da anterior

Page 6: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 7: Google apps and Python para Python Brasil [7]

Como ele realmente éUma tarefa demora mais do que o tempo médio de chegada deuma nova

Page 8: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 9: Google apps and Python para Python Brasil [7]

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

Page 10: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 11: Google apps and Python para Python Brasil [7]

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

Page 12: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 13: Google apps and Python para Python Brasil [7]

Enable Google Provisioning APISó funciona para a versão "Business" ou "Educational" do apps(Para testar, você pode habilitar gratuitamente por 30 dias)

Page 14: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 15: Google apps and Python para Python Brasil [7]

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!)

Page 16: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 17: Google apps and Python para Python Brasil [7]

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

Page 18: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 19: Google apps and Python para Python Brasil [7]

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..."

Page 20: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 21: Google apps and Python para Python Brasil [7]

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"

Page 22: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 23: Google apps and Python para Python Brasil [7]

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/

Page 24: Google apps and Python para Python Brasil [7]

Presenter Notes

Page 25: Google apps and Python para Python Brasil [7]

Obrigado!

Page 26: Google apps and Python para Python Brasil [7]

Presenter Notes