From af5ebcb1bdeb3ee46876d847707e3d4947f8d75d Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Fri, 8 Aug 2008 11:21:35 +0000 Subject: [PATCH] noded: Add RPC function to rename job queue files This will be used to archive jobs. Reviewed-by: iustinp --- daemons/ganeti-noded | 10 ++++++++++ lib/backend.py | 12 ++++++++++++ lib/rpc.py | 13 +++++++++++++ 3 files changed, 35 insertions(+) diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded index 31a74d5e5..8cdda21df 100755 --- a/daemons/ganeti-noded +++ b/daemons/ganeti-noded @@ -569,6 +569,16 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler): """ return backend.JobQueuePurge() + @staticmethod + @_RequireJobQueueLock + def perspective_jobqueue_rename(params): + """Rename a job queue file. + + """ + (old, new) = params + + return backend.JobQueueRename(old, new) + class NodeDaemonHttpServer(http.HTTPServer): def __init__(self, server_address): diff --git a/lib/backend.py b/lib/backend.py index f157c196f..2d7f6c984 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1690,6 +1690,18 @@ def JobQueuePurge(): _CleanDirectory(constants.JOB_QUEUE_ARCHIVE_DIR) +def JobQueueRename(old, new): + """Renames a job queue file. + + """ + if not (_IsJobQueueFile(old) and _IsJobQueueFile(new)): + return False + + os.rename(old, new) + + return True + + def CloseBlockDevices(disks): """Closes the given block devices. diff --git a/lib/rpc.py b/lib/rpc.py index 368d1f713..9fd542ccb 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -826,3 +826,16 @@ def call_jobqueue_purge(node): c.connect(node) c.run() return c.getresult().get(node, False) + + +def call_jobqueue_rename(node_list, old, new): + """Rename a job queue file. + + This is a multi-node call. + + """ + c = Client("jobqueue_rename", [old, new]) + c.connect_list(node_list) + c.run() + result = c.getresult() + return result -- GitLab