Articles avec le tag ‘Python’

XmlRPC en python et OpenERP

Il est très facile d’interagir avec OpenERP grâce aux requêtes xmlrpc.
Ex de code en python :

#!/usr/bin/python

import xmlrpclib
import sys

username = 'admin' #the user
pwd = 'admin'      #the password of the user
dbname = 'demo'    #the database

sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
search = sock.execute(dbname, uid, pwd, 'project.project', 'search', [])
print "search", search

read = sock.execute(dbname, uid, pwd, 'project.project', 'read', search)
print "read", read

for row in read:
    print " >> ", row, "\n\n"

On peut faire en xmlrpc tout ce qu’on peut faire avec le client lourd ou web.
On peut voir avec le mode debug du client lourd observer les requêtes et leurs résultats (cf : http://www.openerp.com/forum/post47115.html?sid=4e83cd21190ce368079c783d6b216726)

Sous linux :

openerp-client -l dump_rpc

Contrôler les Oracle VM en XML-RPC

Il est possible de contrôler les Hyperviseurs Oracle en XML-RPC.

Voici quelques exemples de commande :

/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vm_names
xen_get_vm_names [] =>
success:vm_names=OVM-TEST,OVM_MANAGER

/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vm_path OVM-TEST
xen_get_vm_path ['OVM-TEST'] =>
success:path=/OVS/remote/OVM-TEST

/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_migrate_vm /OVS/remote/OVM-TEST IP_DE_LA_VM
xen_migrate_vm ['/OVS/remote/OVM-TEST', 'IP_DE_LA_VM'] =>
success:target_host=IPdelHYPERVISEUR

/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vnc_port /OVS/remote/OVM-TEST
xen_get_vnc_port ['/OVS/remote/OVM-TEST'] =>
success:vnc_port=5901

Il ne reste plus qu’à faire une interface web ou graphique de gestion plus légère que l’Oracle VM Manager :-)

Pages
Catégories