X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/a82d93947e7ad06f13574b6fa44b08851dab826e..802ed2aa856d2cee888f8972e5ac7e865f1d936c:/lib/server/noded.py diff --git a/lib/server/noded.py b/lib/server/noded.py index 96ad1ac..aedd321 100644 --- a/lib/server/noded.py +++ b/lib/server/noded.py @@ -45,7 +45,7 @@ from ganeti import jstore from ganeti import daemon from ganeti import http from ganeti import utils -from ganeti import storage +from ganeti.storage import container from ganeti import serializer from ganeti import netutils from ganeti import pathutils @@ -57,6 +57,16 @@ import ganeti.http.server # pylint: disable=W0611 queue_lock = None +def _extendReasonTrail(trail, source, reason=""): + """Extend the reason trail with noded information + + The trail is extended by appending the name of the noded functionality + """ + assert trail is not None + trail_source = "%s:%s" % (constants.OPCODE_REASON_SRC_NODED, source) + trail.append((trail_source, reason, utils.EpochNano())) + + def _PrepareQueueLock(): """Try to prepare the queue lock. @@ -369,12 +379,12 @@ class NodeRequestHandler(http.server.HttpServerHandler): return backend.BlockdevClose(params[0], disks) @staticmethod - def perspective_blockdev_getsize(params): + def perspective_blockdev_getdimensions(params): """Compute the sizes of the given block devices. """ disks = [objects.Disk.FromDict(cf) for cf in params[0]] - return backend.BlockdevGetsize(disks) + return backend.BlockdevGetdimensions(disks) @staticmethod def perspective_blockdev_export(params): @@ -522,7 +532,7 @@ class NodeRequestHandler(http.server.HttpServerHandler): """ (su_name, su_args, name, fields) = params - return storage.GetStorage(su_name, *su_args).List(name, fields) + return container.GetStorage(su_name, *su_args).List(name, fields) @staticmethod def perspective_storage_modify(params): @@ -530,7 +540,7 @@ class NodeRequestHandler(http.server.HttpServerHandler): """ (su_name, su_args, name, changes) = params - return storage.GetStorage(su_name, *su_args).Modify(name, changes) + return container.GetStorage(su_name, *su_args).Modify(name, changes) @staticmethod def perspective_storage_execute(params): @@ -538,7 +548,7 @@ class NodeRequestHandler(http.server.HttpServerHandler): """ (su_name, su_args, name, op) = params - return storage.GetStorage(su_name, *su_args).Execute(name, op) + return container.GetStorage(su_name, *su_args).Execute(name, op) # bridge -------------------------- @@ -579,16 +589,19 @@ class NodeRequestHandler(http.server.HttpServerHandler): """ instance = objects.Instance.FromDict(params[0]) timeout = params[1] - return backend.InstanceShutdown(instance, timeout) + trail = params[2] + _extendReasonTrail(trail, "shutdown") + return backend.InstanceShutdown(instance, timeout, trail) @staticmethod def perspective_instance_start(params): """Start an instance. """ - (instance_name, startup_paused) = params + (instance_name, startup_paused, trail) = params instance = objects.Instance.FromDict(instance_name) - return backend.StartInstance(instance, startup_paused) + _extendReasonTrail(trail, "start") + return backend.StartInstance(instance, startup_paused, trail) @staticmethod def perspective_migration_info(params): @@ -650,12 +663,10 @@ class NodeRequestHandler(http.server.HttpServerHandler): instance = objects.Instance.FromDict(params[0]) reboot_type = params[1] shutdown_timeout = params[2] - (reason_source, reason_text) = params[3] - reason_text = _DefaultAlternative(reason_text, - constants.INSTANCE_REASON_REBOOT) - reason = backend.InstReason(reason_source, reason_text) + trail = params[3] + _extendReasonTrail(trail, "reboot") return backend.InstanceReboot(instance, reboot_type, shutdown_timeout, - reason) + trail) @staticmethod def perspective_instance_balloon_memory(params): @@ -709,8 +720,8 @@ class NodeRequestHandler(http.server.HttpServerHandler): """Query node information. """ - (vg_names, hv_names, excl_stor) = params - return backend.GetNodeInfo(vg_names, hv_names, excl_stor) + (storage_units, hv_names, excl_stor) = params + return backend.GetNodeInfo(storage_units, hv_names, excl_stor) @staticmethod def perspective_etc_hosts_modify(params): @@ -1166,7 +1177,8 @@ def Main(): """ parser = OptionParser(description="Ganeti node daemon", - usage="%prog [-f] [-d] [-p port] [-b ADDRESS]", + usage="%prog [-f] [-d] [-p port] [-b ADDRESS]\ + \ [-i INTERFACE]", version="%%prog (ganeti) %s" % constants.RELEASE_VERSION) parser.add_option("--no-mlock", dest="mlock",