~jfb-tempo-consulting/unifield-wm/sync-env-py3

« back to all changes in this revision

Viewing changes to scripts/common.py

  • Committer: Cecile Tonglet
  • Date: 2013-10-17 14:40:19 UTC
  • Revision ID: cto@openerp.com-20131017144019-grjgxx09qz1q311p
[FIX] Version problem with openerplib

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from sys import stdout, stderr, exit
2
2
 
3
 
from xmlrpc.client import Fault
 
3
from xmlrpclib import Fault
4
4
import openerplib103 as openerplib
5
5
 
6
6
from tests.openerplib import db
7
7
 
8
8
import config
9
 
import os
10
 
import breezy.bzr
11
 
from breezy.workingtree import WorkingTree
12
 
from breezy.branch import Branch
13
 
#from bzrlib.workingtree import WorkingTree
14
 
#from bzrlib.branch import BzrBranch
15
 
 
16
 
 
17
 
__all__ = ['server', 'client', 'db_instance', 'Synchro', 'HQ', 'Coordo', 'Project', 'Project2', 'check_lp_update', 'get_revno_from_path']
 
9
 
 
10
__all__ = ['server', 'client', 'db_instance', 'Synchro', 'HQ', 'Coordo', 'Project', 'Project2']
18
11
 
19
12
server, client = None, None
20
13
 
84
77
    server=client,
85
78
    name=hq_name,
86
79
    synchro={
87
 
        'protocol' : 'xmlrpc',
 
80
        'protocol' : 'netrpc',
88
81
        'host' : config.server_host,
89
 
        'port' : config.server_port,
 
82
        'port' : config.netrpc_port,
90
83
        'database' : Synchro.name,
91
84
        'login' : hq_name,
92
85
        'password' : hq_name,
98
91
    server=client,
99
92
    name=coordo_name,
100
93
    synchro={
101
 
        'protocol' : 'xmlrpc',
 
94
        'protocol' : 'netrpc',
102
95
        'host' : config.server_host,
103
 
        'port' : config.server_port,
 
96
        'port' : config.netrpc_port,
104
97
        'database' : Synchro.name,
105
98
        'login' : coordo_name,
106
99
        'password' : coordo_name,
112
105
    server=client,
113
106
    name=project_name,
114
107
    synchro={
115
 
        'protocol' : 'xmlrpc',
 
108
        'protocol' : 'netrpc',
116
109
        'host' : config.server_host,
117
 
        'port' : config.server_port,
 
110
        'port' : config.netrpc_port,
118
111
        'database' : Synchro.name,
119
112
        'login' : project_name,
120
113
        'password' : project_name,
126
119
    server=client,
127
120
    name=project2_name,
128
121
    synchro={
129
 
        'protocol' : 'xmlrpc',
 
122
        'protocol' : 'netrpc',
130
123
        'host' : config.server_host,
131
 
        'port' : config.server_port,
 
124
        'port' : config.netrpc_port,
132
125
        'database' : Synchro.name,
133
126
        'login' : project2_name,
134
127
        'password' : project2_name,
135
128
    }
136
129
)
137
130
 
138
 
def get_lp_branch(wk):
139
 
    if isinstance(wk.branch, Branch):
140
 
        parent = wk.branch.get_parent()
141
 
        if parent is None:
142
 
            parent = wk.branch.get_bound_location()
143
 
    else:
144
 
        parent = wk.branch.bzrdir.root_transport.base
145
 
    return parent
146
 
 
147
 
def get_revno_from_path(path):
148
 
    if os.path.islink(path):
149
 
        path = os.path.realpath(path)
150
 
    wt = WorkingTree.open(path)
151
 
    lr = wt.last_revision()
152
 
    try:
153
 
        revno = wt.branch.revision_id_to_dotted_revno(lr)[0]
154
 
    except:
155
 
        revno = False
156
 
    rev = wt.branch.repository.get_revision(lr)
157
 
    return {'revno': revno, 'lastmsg': rev.get_summary(), 'lpurl': get_lp_branch(wt)}
158
 
 
159
 
def check_lp_update(update=False):
160
 
    to_update = []
161
 
    for ad in config.addons:
162
 
        src_path = os.path.join(config.source_path, ad)
163
 
        info = get_revno_from_path(src_path)
164
 
 
165
 
        br = Branch.open(info['lpurl'])
166
 
        lr = br.last_revision()
167
 
        revno = br.revision_id_to_dotted_revno(lr)[0]
168
 
 
169
 
        if revno > info['revno']:
170
 
            to_update.append(ad)
171
 
            if update:
172
 
                wt = WorkingTree.open(src_path)
173
 
                wt.pull(br)
174
 
                wt.update()
175
 
    return to_update