~tempo-openerp/+junk/hamster-tempo-precise-pangolin_dev

« back to all changes in this revision

Viewing changes to tempo-addons/jira-task-import.py

  • Committer: vg at tempo-consulting
  • Date: 2013-08-26 15:21:43 UTC
  • Revision ID: vg@tempo-consulting.fr-20130826152143-mlckswq67roqsx32
[NEW] Jira Pre-Integration

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
# -*- encoding: utf-8 -*-
 
3
 
 
4
from mx import DateTime
 
5
import re
 
6
import xmlrpclib
 
7
import optparse
 
8
import os.path 
 
9
import getpass
 
10
import socket 
 
11
import sys
 
12
 
 
13
usage = "usage: %prog [options] terpproject terpvals terp_user terp_password"
 
14
parser = optparse.OptionParser(usage=usage)
 
15
parser.add_option("-d", "--database", dest="terpdb", help=u"nom de la base [défaut: %default]",default="tempo-vg")
 
16
parser.add_option("-H", "--host", dest="terphost", help=u"nom/ip du serveur openerp [défaut: %default]",default="localhost")
 
17
parser.add_option("-p", "--port", dest="terpport", help=u"port du serveur openerp [défaut: %default]",default="8069")
 
18
parser.add_option("-P", "--project", dest="terpproject", help="projet")
 
19
parser.add_option("-v", "--vals", dest="terpvals", help="vals")
 
20
parser.add_option("-u", "--user", dest="terpuser", help="utilisateur")
 
21
parser.add_option("-w", "--password", dest="terppwd", help="mot de passe")
 
22
 
 
23
(opt, args) = parser.parse_args()
 
24
nargs = len(args)
 
25
 
 
26
if nargs >= 1:
 
27
    project = args[0]
 
28
else:
 
29
    parser.error("Indiquez le projet dans la base OpenERP")
 
30
 
 
31
if nargs >= 2:
 
32
    vals_str = args[1]
 
33
    vals = eval(vals_str)
 
34
    if isinstance(vals, (list, tuple)):
 
35
        for v in vals:
 
36
            if not isinstance(v, (list, tuple)):
 
37
                parser.error("Valeurs incorrectes")
 
38
    else:
 
39
        parser.error("Valeurs incorrectes")
 
40
else:
 
41
    parser.error("Indiquez les données à importer")
 
42
 
 
43
if nargs >= 3:
 
44
    user = args[2]
 
45
elif 'terpuser' in opt:
 
46
    user = opt['terpuser']
 
47
else:
 
48
    parser.error("Indiquez un nom d'utilisateur pour la base OpenERP")
 
49
    
 
50
if nargs >= 4:
 
51
    passwd = args[3]
 
52
elif 'terppwd' in opt:
 
53
    passwd = opt['terppwd']
 
54
else:
 
55
    passwd = getpass.getpass('Mot de passe OpenERP: ')
 
56
 
 
57
try:
 
58
    sock = xmlrpclib.ServerProxy('http://%s:%s/xmlrpc/common'%(opt.terphost,opt.terpport))
 
59
    uid = sock.login(opt.terpdb, user, passwd)
 
60
    sock = xmlrpclib.ServerProxy('http://%s:%s/xmlrpc/object'%(opt.terphost,opt.terpport))
 
61
except socket.error, err:
 
62
    sys.exit(str(err))
 
63
except xmlrpclib.Fault:
 
64
    sys.exit('Erreur nom base')
 
65
 
 
66
if not uid:
 
67
    sys.exit('Utilisateur ou mot de passe incorrect')
 
68
 
 
69
# list new project tasks
 
70
res = sock.execute(opt.terpdb, uid, passwd, 'project.project',
 
71
                    'xmlrpc_service_jira_task_import_from_data',
 
72
                    project, vals)
 
73
print res