SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Python & Google Apps
      Domains
Presenter Notes
Contato
Eduardo Marcel Maçan
@eduardomacan

eduardomacan@gmail.com

macan@debian.org
Presenter Notes
Como o trabalho deveria ser
Uma 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 de
uma 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ção
Automatizar:
• 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 API
Só funciona para a versão "Business" ou "Educational" do apps
(Para testar, você pode habilitar gratuitamente por 30 dias)
Presenter Notes
Warning
Isso significa que se você estiver gerenciando suas contas a
partir de outra aplicação/base, contas criadas via web não
serão autoMAGICAmente importadas para sua base
proprietária e.g. LDAP (duh!)
Presenter Notes
Sample Code
Lists all users in a Domain
 1   from getpass import getpass
 2   import gdata.apps.service
 3
 4   DOMAIN = 'macan.eng.br'
 5   username = raw_input('Admin account : ')
 6   password = getpass('Admin password : ')
 7
 8   service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,
 9                                             password=password)
10   service.ProgrammaticLogin()
11
12   userfeed = service.RetrieveAllUsers()
13
14   for user in userfeed.entry:
15     print user.login.user_name
Presenter Notes
Sample Code
Create a new apps account
 1   from getpass import getpass
 2   import gdata.apps.service
 3   DOMAIN = 'macan.eng.br'
 4   username = raw_input('Admin email    : ')
 5   password = getpass('Admin password : ')
 6
 7   service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,
 8                                            password=password)
 9   service.ProgrammaticLogin()
10
11   cont = True
12   while cont:
13     nome = raw_input("Nome : ")
14     sobrenome = raw_input("Sobrenome : ")
15     login = raw_input("Login : ")
16     senha = getpass("Senha : ")
17
18     service.CreateUser(login, sobrenome, nome, senha )
19
20     yesno= raw_input('Digite "s" para adicionar outro: ')
21     cont = yesno=="s" or yesno == "S"
22   else:
23     print "Saindo..."
Presenter Notes
Sample Code
Add an alias
 1   from getpass import getpass
 2   import gdata.apps.service
 3
 4   #change this to your google apps domain
 5   DOMAIN='macan.eng.br'
 6
 7   username   =   raw_input('Admin    email   : ')
 8   password   =   getpass('Admin password :   ')
 9   olduser    =   raw_input('Old user login   : ')
10   manager    =   raw_input('Add alias to     : ')
11
12   service = gdata.apps.service.AppsService(email=username, domain=DOMAIN,
13                                        password=password)
14   service.ProgrammaticLogin()
15
16   print "Adding nickname %s to %s" % (olduser,manager)
17   service.CreateNickname(manager,olduser)
18   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

Mais conteúdo relacionado

Destaque

Презентация Гая Ханова
Презентация Гая ХановаПрезентация Гая Ханова
Презентация Гая Хановаguesta73f046
 
A+ Update Endpoint Encryption
A+ Update Endpoint EncryptionA+ Update Endpoint Encryption
A+ Update Endpoint EncryptionOSU - East
 
Mn1 sec 2 - les 3 - (suratun-noor 35-40)
Mn1   sec 2 - les 3 - (suratun-noor 35-40)Mn1   sec 2 - les 3 - (suratun-noor 35-40)
Mn1 sec 2 - les 3 - (suratun-noor 35-40)Fawad Kiyani
 
Pro Syst Enterprise OSGi
Pro Syst Enterprise OSGiPro Syst Enterprise OSGi
Pro Syst Enterprise OSGiRoman Roelofsen
 
Outsourcing : How not to get screwed
Outsourcing : How not to get screwedOutsourcing : How not to get screwed
Outsourcing : How not to get screwedNayana Somaratna
 
Responsive Research: how trying to meet contextual needs dictated my research...
Responsive Research: how trying to meet contextual needs dictated my research...Responsive Research: how trying to meet contextual needs dictated my research...
Responsive Research: how trying to meet contextual needs dictated my research...Guzel Gunler Poliklinigi
 
Digital dance march 2012
Digital dance march 2012Digital dance march 2012
Digital dance march 2012Sian Jamieson
 
To Christians with Love
To Christians with LoveTo Christians with Love
To Christians with LoveFawad Kiyani
 
תקדים צארלס קוריאה
תקדים צארלס קוריאהתקדים צארלס קוריאה
תקדים צארלס קוריאהIlan Langer
 
Quranic supplication (Duas) from The Only God (Allah)
Quranic supplication (Duas) from The Only God (Allah)Quranic supplication (Duas) from The Only God (Allah)
Quranic supplication (Duas) from The Only God (Allah)Fawad Kiyani
 
Mobile and Social Networks 23/11/2007
Mobile and Social Networks  23/11/2007Mobile and Social Networks  23/11/2007
Mobile and Social Networks 23/11/2007Luigi Greco
 
Crowdfunding Workshop in Orkney
Crowdfunding Workshop in OrkneyCrowdfunding Workshop in Orkney
Crowdfunding Workshop in OrkneySian Jamieson
 
Programando para o Jack daemon
Programando para o Jack daemonProgramando para o Jack daemon
Programando para o Jack daemonEduardo Maçan
 
Prognosis : Your Diagnosis
Prognosis : Your DiagnosisPrognosis : Your Diagnosis
Prognosis : Your DiagnosisNayana Somaratna
 
Tobacco & Smoking ( Naveed)
Tobacco &  Smoking ( Naveed)Tobacco &  Smoking ( Naveed)
Tobacco & Smoking ( Naveed)Fawad Kiyani
 

Destaque (19)

Презентация Гая Ханова
Презентация Гая ХановаПрезентация Гая Ханова
Презентация Гая Ханова
 
A+ Update Endpoint Encryption
A+ Update Endpoint EncryptionA+ Update Endpoint Encryption
A+ Update Endpoint Encryption
 
ED610 Final
ED610 FinalED610 Final
ED610 Final
 
Mn1 sec 2 - les 3 - (suratun-noor 35-40)
Mn1   sec 2 - les 3 - (suratun-noor 35-40)Mn1   sec 2 - les 3 - (suratun-noor 35-40)
Mn1 sec 2 - les 3 - (suratun-noor 35-40)
 
Pro Syst Enterprise OSGi
Pro Syst Enterprise OSGiPro Syst Enterprise OSGi
Pro Syst Enterprise OSGi
 
Outsourcing : How not to get screwed
Outsourcing : How not to get screwedOutsourcing : How not to get screwed
Outsourcing : How not to get screwed
 
Responsive Research: how trying to meet contextual needs dictated my research...
Responsive Research: how trying to meet contextual needs dictated my research...Responsive Research: how trying to meet contextual needs dictated my research...
Responsive Research: how trying to meet contextual needs dictated my research...
 
Siddet Siddeti Dogurur (Diyarbakir)
Siddet Siddeti Dogurur (Diyarbakir)Siddet Siddeti Dogurur (Diyarbakir)
Siddet Siddeti Dogurur (Diyarbakir)
 
Digital dance march 2012
Digital dance march 2012Digital dance march 2012
Digital dance march 2012
 
Orhidee
OrhideeOrhidee
Orhidee
 
To Christians with Love
To Christians with LoveTo Christians with Love
To Christians with Love
 
תקדים צארלס קוריאה
תקדים צארלס קוריאהתקדים צארלס קוריאה
תקדים צארלס קוריאה
 
Quranic supplication (Duas) from The Only God (Allah)
Quranic supplication (Duas) from The Only God (Allah)Quranic supplication (Duas) from The Only God (Allah)
Quranic supplication (Duas) from The Only God (Allah)
 
Mobile and Social Networks 23/11/2007
Mobile and Social Networks  23/11/2007Mobile and Social Networks  23/11/2007
Mobile and Social Networks 23/11/2007
 
Crowdfunding Workshop in Orkney
Crowdfunding Workshop in OrkneyCrowdfunding Workshop in Orkney
Crowdfunding Workshop in Orkney
 
Programando para o Jack daemon
Programando para o Jack daemonProgramando para o Jack daemon
Programando para o Jack daemon
 
Prognosis : Your Diagnosis
Prognosis : Your DiagnosisPrognosis : Your Diagnosis
Prognosis : Your Diagnosis
 
One Piece 549
One Piece 549One Piece 549
One Piece 549
 
Tobacco & Smoking ( Naveed)
Tobacco &  Smoking ( Naveed)Tobacco &  Smoking ( Naveed)
Tobacco & Smoking ( Naveed)
 

Semelhante a Google apps and Python para Python Brasil [7]

Projeto Integrador 2
Projeto Integrador 2Projeto Integrador 2
Projeto Integrador 2r7c4rd0
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)Eduardo Britto
 
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucessoGUTS-RS
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App EngineRodrigo Amaral
 
aula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdfaula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdfBrunoTorres978388
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteJohann Vivot
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
Ferramenta de gerência de projetos ser digital
Ferramenta de gerência de projetos   ser digitalFerramenta de gerência de projetos   ser digital
Ferramenta de gerência de projetos ser digitalTamires Guedes
 
User Interface (in portuguese)
User Interface (in portuguese)User Interface (in portuguese)
User Interface (in portuguese)Bruno Pedro
 
Forca de Digital & RPA
Forca de Digital & RPAForca de Digital & RPA
Forca de Digital & RPAEduardo Britto
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django ExtensionMoacir Filho
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 

Semelhante a Google apps and Python para Python Brasil [7] (20)

Projeto Integrador 2
Projeto Integrador 2Projeto Integrador 2
Projeto Integrador 2
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
 
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App Engine
 
aula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdfaula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdf
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonte
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Ferramenta de gerência de projetos ser digital
Ferramenta de gerência de projetos   ser digitalFerramenta de gerência de projetos   ser digital
Ferramenta de gerência de projetos ser digital
 
User Interface (in portuguese)
User Interface (in portuguese)User Interface (in portuguese)
User Interface (in portuguese)
 
Forca de Digital & RPA
Forca de Digital & RPAForca de Digital & RPA
Forca de Digital & RPA
 
Configurando o client sap business one para browser
Configurando o client sap business one para browser Configurando o client sap business one para browser
Configurando o client sap business one para browser
 
Google apps script - Parte - 1
Google apps script - Parte - 1Google apps script - Parte - 1
Google apps script - Parte - 1
 
Entrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao SucessoEntrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao Sucesso
 
Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django Extension
 
Aula 7 infraestrutura - 11022012
Aula 7   infraestrutura - 11022012Aula 7   infraestrutura - 11022012
Aula 7 infraestrutura - 11022012
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 

Mais de Eduardo Maçan

una breve storia del software libero in brasile
una breve storia del software libero in brasileuna breve storia del software libero in brasile
una breve storia del software libero in brasileEduardo Maçan
 
Produção Musical com Software Livre
Produção Musical com Software LivreProdução Musical com Software Livre
Produção Musical com Software LivreEduardo Maçan
 

Mais de Eduardo Maçan (6)

una breve storia del software libero in brasile
una breve storia del software libero in brasileuna breve storia del software libero in brasile
una breve storia del software libero in brasile
 
Mongo sp geoindexes
Mongo sp geoindexesMongo sp geoindexes
Mongo sp geoindexes
 
Produção Musical com Software Livre
Produção Musical com Software LivreProdução Musical com Software Livre
Produção Musical com Software Livre
 
Grafos sociais
Grafos sociaisGrafos sociais
Grafos sociais
 
Grafos Sociais
Grafos SociaisGrafos Sociais
Grafos Sociais
 
O Gerente Open Source
O Gerente Open SourceO Gerente Open Source
O Gerente Open Source
 

Google apps and Python para Python Brasil [7]

  • 1. Python & Google Apps Domains
  • 5. Como o trabalho deveria ser Uma nova tarefa chega após o término da anterior
  • 7. Como ele realmente é Uma tarefa demora mais do que o tempo médio de chegada de uma nova
  • 9. 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
  • 11. A solução Automatizar: • 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
  • 13. Enable Google Provisioning API Só funciona para a versão "Business" ou "Educational" do apps (Para testar, você pode habilitar gratuitamente por 30 dias)
  • 15. Warning Isso significa que se você estiver gerenciando suas contas a partir de outra aplicação/base, contas criadas via web não serão autoMAGICAmente importadas para sua base proprietária e.g. LDAP (duh!)
  • 17. Sample Code Lists all users in a Domain 1 from getpass import getpass 2 import gdata.apps.service 3 4 DOMAIN = 'macan.eng.br' 5 username = raw_input('Admin account : ') 6 password = getpass('Admin password : ') 7 8 service = gdata.apps.service.AppsService(email=username, domain=DOMAIN, 9 password=password) 10 service.ProgrammaticLogin() 11 12 userfeed = service.RetrieveAllUsers() 13 14 for user in userfeed.entry: 15 print user.login.user_name
  • 19. Sample Code Create a new apps account 1 from getpass import getpass 2 import gdata.apps.service 3 DOMAIN = 'macan.eng.br' 4 username = raw_input('Admin email : ') 5 password = getpass('Admin password : ') 6 7 service = gdata.apps.service.AppsService(email=username, domain=DOMAIN, 8 password=password) 9 service.ProgrammaticLogin() 10 11 cont = True 12 while cont: 13 nome = raw_input("Nome : ") 14 sobrenome = raw_input("Sobrenome : ") 15 login = raw_input("Login : ") 16 senha = getpass("Senha : ") 17 18 service.CreateUser(login, sobrenome, nome, senha ) 19 20 yesno= raw_input('Digite "s" para adicionar outro: ') 21 cont = yesno=="s" or yesno == "S" 22 else: 23 print "Saindo..."
  • 21. Sample Code Add an alias 1 from getpass import getpass 2 import gdata.apps.service 3 4 #change this to your google apps domain 5 DOMAIN='macan.eng.br' 6 7 username = raw_input('Admin email : ') 8 password = getpass('Admin password : ') 9 olduser = raw_input('Old user login : ') 10 manager = raw_input('Add alias to : ') 11 12 service = gdata.apps.service.AppsService(email=username, domain=DOMAIN, 13 password=password) 14 service.ProgrammaticLogin() 15 16 print "Adding nickname %s to %s" % (olduser,manager) 17 service.CreateNickname(manager,olduser) 18 print "Feito"
  • 23. 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/