git://git.onelab.eu
/
nodemanager.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Setting tag nodemanager-7.0-0
[nodemanager.git]
/
api_calls.py
diff --git
a/api_calls.py
b/api_calls.py
index
084bf66
..
e39032d
100644
(file)
--- a/
api_calls.py
+++ b/
api_calls.py
@@
-9,16
+9,16
@@
domain socket that is accessible by ssh-ing into a delegate account
with the forward_api_calls shell.
"""
with the forward_api_calls shell.
"""
-import
SimpleXMLRPCS
erver
-import
SocketS
erver
+import
xmlrpc.s
erver
+import
sockets
erver
import errno
import os
import pwd
import socket
import struct
import threading
import errno
import os
import pwd
import socket
import struct
import threading
-import xmlrpc
lib
-import sliver
_lxc
+import xmlrpc
.client
+import sliver
manager
try:
from PLC.Parameter import Parameter, Mixed
try:
from PLC.Parameter import Parameter, Mixed
@@
-36,8
+36,6
@@
import logger
# A better approach will involve more extensive code splitting, I think.
try: import database
except: import logger as database
# A better approach will involve more extensive code splitting, I think.
try: import database
except: import logger as database
-#try: import sliver_vs
-#except: import logger as sliver_vs
import ticket as ticket_module
import tools
import ticket as ticket_module
import tools
@@
-67,8
+65,8
@@
def export_to_docbook(**kwargs):
def export(method):
def args():
# Inspect method. Remove self from the argument list.
def export(method):
def args():
# Inspect method. Remove self from the argument list.
- max_args = method.
func_code.co_varnames[0:method.func_code
.co_argcount]
- defaults = method.
func_defaults
+ max_args = method.
__code__.co_varnames[0:method.__code__
.co_argcount]
+ defaults = method.
__defaults__
if defaults is None:
defaults = ()
min_args = max_args[0:len(max_args) - len(defaults)]
if defaults is None:
defaults = ()
min_args = max_args[0:len(max_args) - len(defaults)]
@@
-99,7
+97,7
@@
def export_to_docbook(**kwargs):
@export_to_api(0)
def Help():
"""Get a list of functions currently supported by the Node Manager API"""
@export_to_api(0)
def Help():
"""Get a list of functions currently supported by the Node Manager API"""
- names=
api_method_dict.keys(
)
+ names=
list(api_method_dict.keys()
)
names.sort()
return ''.join(['**** ' + api_method_dict[name].__name__ + '\n' + api_method_dict[name].__doc__ + '\n'
for name in names])
names.sort()
return ''.join(['**** ' + api_method_dict[name].__name__ + '\n' + api_method_dict[name].__doc__ + '\n'
for name in names])
@@
-122,8
+120,8
@@
def Ticket(ticket):
deliver_ticket(data)
logger.log('api_calls: Ticket delivered for %s' % name)
Create(database.db.get(name))
deliver_ticket(data)
logger.log('api_calls: Ticket delivered for %s' % name)
Create(database.db.get(name))
- except Exception
,
err:
- raise xmlrpc
lib
.Fault(102, 'Ticket error: ' + str(err))
+ except Exception
as
err:
+ raise xmlrpc
.client
.Fault(102, 'Ticket error: ' + str(err))
@export_to_docbook(roles=['self'],
accepts=[Parameter(str, 'A ticket returned from GetSlivers()')],
@export_to_docbook(roles=['self'],
accepts=[Parameter(str, 'A ticket returned from GetSlivers()')],
@@
-132,14
+130,14
@@
def Ticket(ticket):
def AdminTicket(ticket):
"""Admin interface to create slivers based on ticket returned by GetSlivers()."""
try:
def AdminTicket(ticket):
"""Admin interface to create slivers based on ticket returned by GetSlivers()."""
try:
- data, = xmlrpc
lib
.loads(ticket)[0]
+ data, = xmlrpc
.client
.loads(ticket)[0]
name = data['slivers'][0]['name']
if data != None:
deliver_ticket(data)
logger.log('api_calls: Admin Ticket delivered for %s' % name)
Create(database.db.get(name))
name = data['slivers'][0]['name']
if data != None:
deliver_ticket(data)
logger.log('api_calls: Admin Ticket delivered for %s' % name)
Create(database.db.get(name))
- except Exception
,
err:
- raise xmlrpc
lib
.Fault(102, 'Ticket error: ' + str(err))
+ except Exception
as
err:
+ raise xmlrpc
.client
.Fault(102, 'Ticket error: ' + str(err))
@export_to_docbook(roles=['self'],
@export_to_docbook(roles=['self'],
@@
-148,7
+146,7
@@
def AdminTicket(ticket):
@export_to_api(0)
def GetXIDs():
"""Return an dictionary mapping Slice names to XIDs"""
@export_to_api(0)
def GetXIDs():
"""Return an dictionary mapping Slice names to XIDs"""
- return dict([(pwent[0], pwent[2]) for pwent in pwd.getpwall() if pwent[6] == sliver
_lxc.Sliver_LXC.SHELL
])
+ return dict([(pwent[0], pwent[2]) for pwent in pwd.getpwall() if pwent[6] == sliver
manager.sliver_password_shell
])
@export_to_docbook(roles=['self'],
accepts=[],
@export_to_docbook(roles=['self'],
accepts=[],
@@
-157,7
+155,7
@@
def GetXIDs():
def GetSSHKeys():
"""Return an dictionary mapping slice names to SSH keys"""
keydict = {}
def GetSSHKeys():
"""Return an dictionary mapping slice names to SSH keys"""
keydict = {}
- for rec in database.db.
iter
values():
+ for rec in database.db.values():
if 'keys' in rec:
keydict[rec['name']] = rec['keys']
return keydict
if 'keys' in rec:
keydict[rec['name']] = rec['keys']
return keydict
@@
-174,7
+172,7
@@
def Create(sliver_name):
account.get(rec['name']).ensure_created(rec)
logger.log("api_calls: Create %s"%rec['name'])
else:
account.get(rec['name']).ensure_created(rec)
logger.log("api_calls: Create %s"%rec['name'])
else:
- raise Exception
, "Only PLC can create non delegated slivers."
+ raise Exception
("Only PLC can create non delegated slivers.")
@export_to_docbook(roles=['nm-controller', 'self'],
@export_to_docbook(roles=['nm-controller', 'self'],
@@
-188,7
+186,7
@@
def Destroy(sliver_name):
account.get(rec['name']).ensure_destroyed()
logger.log("api_calls: Destroy %s"%rec['name'])
else:
account.get(rec['name']).ensure_destroyed()
logger.log("api_calls: Destroy %s"%rec['name'])
else:
- raise Exception
, "Only PLC can destroy non delegated slivers."
+ raise Exception
("Only PLC can destroy non delegated slivers.")
@export_to_docbook(roles=['nm-controller', 'self'],
@export_to_docbook(roles=['nm-controller', 'self'],
@@
-282,7
+280,7
@@
def SetLoans(sliver_name, loans):
of loss of resources."""
rec = sliver_name
if not validate_loans(loans):
of loss of resources."""
rec = sliver_name
if not validate_loans(loans):
- raise xmlrpc
lib
.Fault(102, 'Invalid argument: the second argument must be a well-formed loan specification')
+ raise xmlrpc
.client
.Fault(102, 'Invalid argument: the second argument must be a well-formed loan specification')
rec['_loans'] = loans
database.db.sync()
rec['_loans'] = loans
database.db.sync()