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
blind and brutal 2to3
[nodemanager.git]
/
api_calls.py
diff --git
a/api_calls.py
b/api_calls.py
index
4a5558e
..
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
@@
-27,7
+27,7
@@
except:
def Mixed(a = None, b = None, c = None): pass
def Mixed(a = None, b = None, c = None): pass
-import account
s
+import account
import logger
# TODO: These try/excepts are a hack to allow doc/DocBookLocal.py to
import logger
# TODO: These try/excepts are a hack to allow doc/DocBookLocal.py to
@@
-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
@@
-171,10
+169,10
@@
def Create(sliver_name):
"""Create a non-PLC-instantiated sliver"""
rec = sliver_name
if rec['instantiation'] == 'delegated':
"""Create a non-PLC-instantiated sliver"""
rec = sliver_name
if rec['instantiation'] == 'delegated':
- account
s
.get(rec['name']).ensure_created(rec)
+ account.get(rec['name']).ensure_created(rec)
logger.log("api_calls: Create %s"%rec['name'])
else:
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'],
@@
-185,10
+183,10
@@
def Destroy(sliver_name):
"""Destroy a non-PLC-instantiated sliver"""
rec = sliver_name
if rec['instantiation'] == 'delegated':
"""Destroy a non-PLC-instantiated sliver"""
rec = sliver_name
if rec['instantiation'] == 'delegated':
- account
s
.get(rec['name']).ensure_destroyed()
+ account.get(rec['name']).ensure_destroyed()
logger.log("api_calls: Destroy %s"%rec['name'])
else:
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'],
@@
-198,7
+196,7
@@
def Destroy(sliver_name):
def Start(sliver_name):
"""Configure and start sliver."""
rec = sliver_name
def Start(sliver_name):
"""Configure and start sliver."""
rec = sliver_name
- account
s
.get(rec['name']).start(rec)
+ account.get(rec['name']).start(rec)
logger.log("api_calls: Start %s"%rec['name'])
logger.log("api_calls: Start %s"%rec['name'])
@@
-209,7
+207,7
@@
def Start(sliver_name):
def Stop(sliver_name):
"""Kill all processes belonging to the specified sliver"""
rec = sliver_name
def Stop(sliver_name):
"""Kill all processes belonging to the specified sliver"""
rec = sliver_name
- account
s
.get(rec['name']).stop()
+ account.get(rec['name']).stop()
logger.log("api_calls: Stop %s"%rec['name'])
logger.log("api_calls: Stop %s"%rec['name'])
@@
-220,9
+218,9
@@
def Stop(sliver_name):
def ReCreate(sliver_name):
"""Stop, Destroy, Create, Start sliver in order to reinstall it."""
rec = sliver_name
def ReCreate(sliver_name):
"""Stop, Destroy, Create, Start sliver in order to reinstall it."""
rec = sliver_name
- account
s
.get(rec['name']).stop()
- account
s
.get(rec['name']).ensure_created(rec)
- account
s
.get(rec['name']).start(rec)
+ account.get(rec['name']).stop()
+ account.get(rec['name']).ensure_created(rec)
+ account.get(rec['name']).start(rec)
logger.log("api_calls: ReCreate %s"%rec['name'])
@export_to_docbook(roles=['nm-controller', 'self'],
logger.log("api_calls: ReCreate %s"%rec['name'])
@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()