Revision a1a7bc78
b/lib/mcpu.py | ||
---|---|---|
1 | 1 |
# |
2 | 2 |
# |
3 | 3 |
|
4 |
# Copyright (C) 2006, 2007 Google Inc. |
|
4 |
# Copyright (C) 2006, 2007, 2011 Google Inc.
|
|
5 | 5 |
# |
6 | 6 |
# This program is free software; you can redistribute it and/or modify |
7 | 7 |
# it under the terms of the GNU General Public License as published by |
... | ... | |
41 | 41 |
from ganeti import utils |
42 | 42 |
|
43 | 43 |
|
44 |
_OP_PREFIX = "Op" |
|
45 |
_LU_PREFIX = "LU" |
|
46 |
|
|
47 |
|
|
44 | 48 |
class LockAcquireTimeout(Exception): |
45 | 49 |
"""Exception to report timeouts on acquiring locks. |
46 | 50 |
|
... | ... | |
140 | 144 |
""" |
141 | 145 |
|
142 | 146 |
|
147 |
def _LUNameForOpName(opname): |
|
148 |
"""Computes the LU name for a given OpCode name. |
|
149 |
|
|
150 |
""" |
|
151 |
assert opname.startswith(_OP_PREFIX), \ |
|
152 |
"Invalid OpCode name, doesn't start with %s: %s" % (_OP_PREFIX, opname) |
|
153 |
|
|
154 |
return _LU_PREFIX + opname[len(_OP_PREFIX):] |
|
155 |
|
|
156 |
|
|
157 |
def _ComputeDispatchTable(): |
|
158 |
"""Computes the opcode-to-lu dispatch table. |
|
159 |
|
|
160 |
""" |
|
161 |
return dict((op, getattr(cmdlib, _LUNameForOpName(op.__name__))) |
|
162 |
for op in opcodes.OP_MAPPING.values() |
|
163 |
if op.WITH_LU) |
|
164 |
|
|
165 |
|
|
143 | 166 |
class Processor(object): |
144 | 167 |
"""Object which runs OpCodes""" |
145 |
DISPATCH_TABLE = { |
|
146 |
# Cluster |
|
147 |
opcodes.OpPostInitCluster: cmdlib.LUPostInitCluster, |
|
148 |
opcodes.OpDestroyCluster: cmdlib.LUDestroyCluster, |
|
149 |
opcodes.OpQueryClusterInfo: cmdlib.LUQueryClusterInfo, |
|
150 |
opcodes.OpVerifyCluster: cmdlib.LUVerifyCluster, |
|
151 |
opcodes.OpQueryConfigValues: cmdlib.LUQueryConfigValues, |
|
152 |
opcodes.OpRenameCluster: cmdlib.LURenameCluster, |
|
153 |
opcodes.OpVerifyDisks: cmdlib.LUVerifyDisks, |
|
154 |
opcodes.OpSetClusterParams: cmdlib.LUSetClusterParams, |
|
155 |
opcodes.OpRedistributeConfig: cmdlib.LURedistributeConfig, |
|
156 |
opcodes.OpRepairDiskSizes: cmdlib.LURepairDiskSizes, |
|
157 |
opcodes.OpQuery: cmdlib.LUQuery, |
|
158 |
opcodes.OpQueryFields: cmdlib.LUQueryFields, |
|
159 |
# node lu |
|
160 |
opcodes.OpAddNode: cmdlib.LUAddNode, |
|
161 |
opcodes.OpQueryNodes: cmdlib.LUQueryNodes, |
|
162 |
opcodes.OpQueryNodeVolumes: cmdlib.LUQueryNodeVolumes, |
|
163 |
opcodes.OpQueryNodeStorage: cmdlib.LUQueryNodeStorage, |
|
164 |
opcodes.OpModifyNodeStorage: cmdlib.LUModifyNodeStorage, |
|
165 |
opcodes.OpRepairNodeStorage: cmdlib.LURepairNodeStorage, |
|
166 |
opcodes.OpRemoveNode: cmdlib.LURemoveNode, |
|
167 |
opcodes.OpSetNodeParams: cmdlib.LUSetNodeParams, |
|
168 |
opcodes.OpPowercycleNode: cmdlib.LUPowercycleNode, |
|
169 |
opcodes.OpMigrateNode: cmdlib.LUMigrateNode, |
|
170 |
opcodes.OpNodeEvacuationStrategy: cmdlib.LUNodeEvacuationStrategy, |
|
171 |
# instance lu |
|
172 |
opcodes.OpCreateInstance: cmdlib.LUCreateInstance, |
|
173 |
opcodes.OpReinstallInstance: cmdlib.LUReinstallInstance, |
|
174 |
opcodes.OpRemoveInstance: cmdlib.LURemoveInstance, |
|
175 |
opcodes.OpRenameInstance: cmdlib.LURenameInstance, |
|
176 |
opcodes.OpActivateInstanceDisks: cmdlib.LUActivateInstanceDisks, |
|
177 |
opcodes.OpShutdownInstance: cmdlib.LUShutdownInstance, |
|
178 |
opcodes.OpStartupInstance: cmdlib.LUStartupInstance, |
|
179 |
opcodes.OpRebootInstance: cmdlib.LURebootInstance, |
|
180 |
opcodes.OpDeactivateInstanceDisks: cmdlib.LUDeactivateInstanceDisks, |
|
181 |
opcodes.OpReplaceDisks: cmdlib.LUReplaceDisks, |
|
182 |
opcodes.OpRecreateInstanceDisks: cmdlib.LURecreateInstanceDisks, |
|
183 |
opcodes.OpFailoverInstance: cmdlib.LUFailoverInstance, |
|
184 |
opcodes.OpMigrateInstance: cmdlib.LUMigrateInstance, |
|
185 |
opcodes.OpMoveInstance: cmdlib.LUMoveInstance, |
|
186 |
opcodes.OpConnectConsole: cmdlib.LUConnectConsole, |
|
187 |
opcodes.OpQueryInstances: cmdlib.LUQueryInstances, |
|
188 |
opcodes.OpQueryInstanceData: cmdlib.LUQueryInstanceData, |
|
189 |
opcodes.OpSetInstanceParams: cmdlib.LUSetInstanceParams, |
|
190 |
opcodes.OpGrowDisk: cmdlib.LUGrowDisk, |
|
191 |
# node group lu |
|
192 |
opcodes.OpAddGroup: cmdlib.LUAddGroup, |
|
193 |
opcodes.OpQueryGroups: cmdlib.LUQueryGroups, |
|
194 |
opcodes.OpSetGroupParams: cmdlib.LUSetGroupParams, |
|
195 |
opcodes.OpRemoveGroup: cmdlib.LURemoveGroup, |
|
196 |
opcodes.OpRenameGroup: cmdlib.LURenameGroup, |
|
197 |
# os lu |
|
198 |
opcodes.OpDiagnoseOS: cmdlib.LUDiagnoseOS, |
|
199 |
# exports lu |
|
200 |
opcodes.OpQueryExports: cmdlib.LUQueryExports, |
|
201 |
opcodes.OpPrepareExport: cmdlib.LUPrepareExport, |
|
202 |
opcodes.OpExportInstance: cmdlib.LUExportInstance, |
|
203 |
opcodes.OpRemoveExport: cmdlib.LURemoveExport, |
|
204 |
# tags lu |
|
205 |
opcodes.OpGetTags: cmdlib.LUGetTags, |
|
206 |
opcodes.OpSearchTags: cmdlib.LUSearchTags, |
|
207 |
opcodes.OpAddTags: cmdlib.LUAddTags, |
|
208 |
opcodes.OpDelTags: cmdlib.LUDelTags, |
|
209 |
# test lu |
|
210 |
opcodes.OpTestDelay: cmdlib.LUTestDelay, |
|
211 |
opcodes.OpTestAllocator: cmdlib.LUTestAllocator, |
|
212 |
opcodes.OpTestJobqueue: cmdlib.LUTestJobqueue, |
|
213 |
# OOB lu |
|
214 |
opcodes.OpOobCommand: cmdlib.LUOobCommand, |
|
215 |
} |
|
168 |
DISPATCH_TABLE = _ComputeDispatchTable() |
|
216 | 169 |
|
217 | 170 |
def __init__(self, context, ec_id): |
218 | 171 |
"""Constructor for Processor |
Also available in: Unified diff