Revision e2800fca lib/hypervisor/hv_kvm.py

b/lib/hypervisor/hv_kvm.py
188 188
  return found[0]
189 189

  
190 190

  
191
def _AnalyzeSerializedRuntime(serialized_runtime):
192
  """Return runtime entries for a serialized runtime file
191
def _UpgradeSerializedRuntime(serialized_runtime):
192
  """Upgrade runtime data
193

  
194
  Remove any deprecated fields or change the format of the data.
195
  The runtime files are not upgraded when Ganeti is upgraded, so the required
196
  modification have to be performed here.
193 197

  
194 198
  @type serialized_runtime: string
195 199
  @param serialized_runtime: raw text data read from actual runtime file
196
  @return: (cmd, nics, hvparams, bdevs)
197
  @rtype: list
200
  @return: (cmd, nic dicts, hvparams, bdev dicts)
201
  @rtype: tuple
198 202

  
199 203
  """
200 204
  loaded_runtime = serializer.Load(serialized_runtime)
201
  if len(loaded_runtime) == 3:
202
    serialized_disks = []
203
    kvm_cmd, serialized_nics, hvparams = loaded_runtime
205
  kvm_cmd, serialized_nics, hvparams = loaded_runtime[:3]
206
  if len(loaded_runtime) >= 4:
207
    serialized_disks = loaded_runtime[3]
204 208
  else:
205
    kvm_cmd, serialized_nics, hvparams, serialized_disks = loaded_runtime
209
    serialized_disks = []
210

  
211
  for nic in serialized_nics:
212
    # Add a dummy uuid slot if an pre-2.8 NIC is found
213
    if "uuid" not in nic:
214
      nic["uuid"] = utils.NewUUID()
215

  
216
  return kvm_cmd, serialized_nics, hvparams, serialized_disks
217

  
206 218

  
219
def _AnalyzeSerializedRuntime(serialized_runtime):
220
  """Return runtime entries for a serialized runtime file
221

  
222
  @type serialized_runtime: string
223
  @param serialized_runtime: raw text data read from actual runtime file
224
  @return: (cmd, nics, hvparams, bdevs)
225
  @rtype: tuple
226

  
227
  """
228
  kvm_cmd, serialized_nics, hvparams, serialized_disks = \
229
    _UpgradeSerializedRuntime(serialized_runtime)
207 230
  kvm_nics = [objects.NIC.FromDict(snic) for snic in serialized_nics]
208 231
  kvm_disks = [(objects.Disk.FromDict(sdisk), link)
209 232
               for sdisk, link in serialized_disks]

Also available in: Unified diff