~openerp/openobject-server/old_trunk

« back to all changes in this revision

Viewing changes to bin/addons/quality_integration_server/base_quality_interrogation.py

  • Committer: Harry (Open ERP)
  • Date: 2009-08-21 08:30:41 UTC
  • Revision ID: hmo@tinyerp.com-20090821083041-w35pw58mmto48ehh
[IMP] base_quality_interrogation : make common execute function to call remote method of rpc conenction

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
import time
31
31
import pickle
32
32
import base64
 
33
import socket
33
34
 
34
35
admin_passwd = 'admin'
 
36
waittime = 2
35
37
 
36
38
def start_server(root_path, port, addons_path):
37
39
    if root_path:
38
40
        root_path += '/'
39
 
    os.system('python '+root_path+'openerp-server.py  --pidfile=openerp.pid  --port=%s --no-netrpc --addons-path=%s' %(str(port),addons_path))    
 
41
    os.system('python2.5 '+root_path+'openerp-server.py  --pidfile=openerp.pid  --port=%s --no-netrpc --addons-path=%s' %(str(port),addons_path))    
40
42
def clean():
41
43
    if os.path.isfile('openerp.pid'):
42
44
        ps = open('openerp.pid') 
46
48
            if pid:    
47
49
                os.kill(pid,9)
48
50
 
 
51
def execute(connector, method, *args):
 
52
    res = False
 
53
    try:        
 
54
        res = getattr(connector,method)(*args)
 
55
    except socket.error,e:        
 
56
        if e.errno == 111:
 
57
            print 'Please wait %d sec to start server....'%(waittime)
 
58
            time.sleep(waittime)
 
59
            res = execute(connector, method, *args)
 
60
        else:
 
61
            raise e
 
62
    return res        
 
63
 
49
64
def login(uri, dbname, user, pwd):
50
65
    conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/common')
51
 
    uid = conn.login(dbname, user, pwd) 
 
66
    uid = execute(conn,'login',dbname, user, pwd) 
52
67
    return uid
53
68
 
54
69
def import_translate(uri, user, pwd, dbname, translate_in):      
55
70
    uid = login(uri, dbname, user, pwd)    
56
71
    if uid:        
57
72
        conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
58
 
        wiz_id = conn.create(dbname, uid, pwd, 'module.lang.import')
 
73
        wiz_id = execute(conn,'create',dbname, uid, pwd, 'module.lang.import')
59
74
        for trans_in in translate_in:
60
75
            lang,ext = os.path.splitext(trans_in.split('/')[-1])                
61
76
            state = 'init'  
62
77
            datas = {'form':{}}
63
78
            while state!='end':                
64
 
                res = conn.execute(dbname, uid, pwd, wiz_id, datas, state, {})
 
79
                res = execute(conn,'execute',dbname, uid, pwd, wiz_id, datas, state, {})
65
80
                if 'datas' in res:
66
81
                    datas['form'].update( res['datas'].get('form',{}) )
67
82
                if res['type']=='form':
87
102
        final = {}   
88
103
        test_detail = {}
89
104
        for module in modules:            
90
 
            quality_result = conn.execute(dbname, uid, pwd,'module.quality.check','check_quality',module)
 
105
            quality_result = execute(conn,'execute', dbname, uid, pwd,'module.quality.check','check_quality',module)
91
106
            detail_html = ''
92
107
            html = '''<html><html><html><html><body><a name="TOP"></a>'''
93
108
            html +="<h1> Module : %s </h1>"%(quality_result['name'])   
120
135
    progress=0.0
121
136
    sock2 = xmlrpclib.ServerProxy(url+'/db')
122
137
    while not progress==1.0:
123
 
        progress,users = sock2.get_progress(admin_passwd, id)
 
138
        progress,users = execute(sock2,'get_progress',admin_passwd, id)
124
139
    return True
125
140
 
126
141
 
129
144
    obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
130
145
    wiz_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
131
146
    login_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/common')
132
 
    db_list = conn.list()
 
147
    db_list = execute(conn, 'list')
133
148
    if dbname not in db_list:
134
 
        id = conn.create(admin_passwd, dbname, True, lang) 
 
149
        id = execute(conn,'create',admin_passwd, dbname, True, lang) 
135
150
        wait(id,uri)
136
151
    uid = login_conn.login(dbname, user, pwd)   
137
152
 
138
 
    wiz_id = wiz_conn.create(dbname, uid, user, 'base_setup.base_setup')
 
153
    wiz_id = execute(wiz_conn,'create', dbname, uid, user, 'base_setup.base_setup')
139
154
 
140
155
    state = 'init'
141
156
    datas = {'form':{}}
142
157
 
143
158
    while state!='config':        
144
 
        res = wiz_conn.execute(dbname, uid, pwd, wiz_id, datas, state, {})
 
159
        res = execute(wiz_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})
145
160
        if state=='init':
146
161
            datas['form'].update( res['datas'] )
147
162
        if res['type']=='form':
153
168
            })
154
169
        elif res['type']=='state':
155
170
            state = res['state']
156
 
    res = wiz_conn.execute(dbname, uid, pwd, wiz_id, datas, state, {})
 
171
    res = execute(wiz_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})
157
172
    install_module(uri, dbname, ['base_module_quality'],user,pwd)
158
173
    return True
159
174
 
160
175
def drop_db(uri, dbname):
161
176
    conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/db')
162
 
    db_list = conn.list()
 
177
    db_list = execute(conn,'list')
163
178
    if dbname in db_list:
164
 
        conn.drop(admin_passwd, dbname)    
 
179
        execute(conn, 'drop', admin_passwd, dbname)    
165
180
    return True
166
181
 
167
182
def install_module(uri, dbname, modules, user='admin', pwd='admin'):
169
184
    if uid: 
170
185
        obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
171
186
        wizard_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
172
 
        module_ids = obj_conn.execute(dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])  
173
 
        obj_conn.execute(dbname, uid, pwd, 'ir.module.module', 'button_install', module_ids)           
174
 
        wiz_id = wizard_conn.create(dbname, uid, pwd, 'module.upgrade.simple')
 
187
        module_ids = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])  
 
188
        execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'button_install', module_ids)           
 
189
        wiz_id = execute(wizard_conn, 'create', dbname, uid, pwd, 'module.upgrade.simple')
175
190
        state = 'init'
176
191
        datas = {}
177
192
        #while state!='menu':
178
193
        while state!='end':                
179
 
            res = wizard_conn.execute(dbname, uid, pwd, wiz_id, datas, state, {})                
 
194
            res = execute(wizard_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})                
180
195
            if state == 'init':
181
196
                state = 'start'
182
197
            elif state == 'start':
188
203
    if uid: 
189
204
        obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
190
205
        wizard_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')        
191
 
        module_ids = obj_conn.execute(dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])  
192
 
        obj_conn.execute(dbname, uid, pwd, 'ir.module.module', 'button_upgrade', module_ids)           
193
 
        wiz_id = wizard_conn.create(dbname, uid, pwd, 'module.upgrade.simple')
 
206
        module_ids = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])  
 
207
        execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'button_upgrade', module_ids)           
 
208
        wiz_id = execute(wizard_conn, 'create', dbname, uid, pwd, 'module.upgrade.simple')
194
209
        state = 'init'
195
210
        datas = {}
196
211
        #while state!='menu':
197
212
        while state!='end':                
198
 
            res = wizard_conn.execute(dbname, uid, pwd, wiz_id, datas, state, {})                
 
213
            res = execute(wizard_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})                
199
214
            if state == 'init':
200
215
                state = 'start'
201
216
            elif state == 'start':
264
279
 
265
280
server_thread = threading.Thread(target=start_server,
266
281
                args=(options['root-path'], options['port'], options['addons-path']))
267
 
try:    
268
 
    server_thread.start()   
269
 
    print 'Please wait 20 sec to start server....',uri
270
 
    time.sleep(20) 
271
 
    if command == 'create-db': 
272
 
        create_db(uri, options['database'], options['login'], options['pwd'])
273
 
    if command == 'drop-db': 
274
 
        drop_db(uri, options['database'])
275
 
    if command == 'install-module': 
276
 
        install_module(uri, options['database'], options['modules'], options['login'], options['pwd'])
277
 
    if command == 'upgrade-module': 
278
 
        upgrade_module(uri, options['database'], options['modules'], options['login'], options['pwd'])
279
 
    if command == 'check-quality':
280
 
        check_quality(uri, options['login'], options['pwd'], options['database'], options['modules'])
281
 
    if command == 'install-translation':        
282
 
        import_translate(uri, options['login'], options['pwd'], options['database'], options['translate_in'])
283
 
    clean()
284
 
    sys.exit(0)
 
282
#try:    
 
283
server_thread.start()       
 
284
if command == 'create-db': 
 
285
    create_db(uri, options['database'], options['login'], options['pwd'])
 
286
if command == 'drop-db': 
 
287
    drop_db(uri, options['database'])
 
288
if command == 'install-module': 
 
289
    install_module(uri, options['database'], options['modules'], options['login'], options['pwd'])
 
290
if command == 'upgrade-module': 
 
291
    upgrade_module(uri, options['database'], options['modules'], options['login'], options['pwd'])
 
292
if command == 'check-quality':
 
293
    check_quality(uri, options['login'], options['pwd'], options['database'], options['modules'])
 
294
if command == 'install-translation':        
 
295
    import_translate(uri, options['login'], options['pwd'], options['database'], options['translate_in'])
 
296
clean()
 
297
sys.exit(0)
285
298
    
286
 
except xmlrpclib.Fault, e:
287
 
    print e.faultString
288
 
    clean()
289
 
    sys.exit(1)
290
 
except Exception, e:
291
 
    print e
292
 
    clean()
293
 
    sys.exit(1)
 
299
 
294
300
 
295
301
 
296
302