Revision a57e502a lib/cmdlib/instance.py

b/lib/cmdlib/instance.py
1272 1272
        for t_dsk, a_dsk in zip(tmp_disks, self.disks):
1273 1273
          rename_to.append(t_dsk.logical_id)
1274 1274
          t_dsk.logical_id = (t_dsk.logical_id[0], a_dsk[constants.IDISK_ADOPT])
1275
          self.cfg.SetDiskID(t_dsk, self.pnode.uuid)
1276 1275
        result = self.rpc.call_blockdev_rename(self.pnode.uuid,
1277 1276
                                               zip(tmp_disks, rename_to))
1278 1277
        result.Raise("Failed to rename adoped LVs")
......
1337 1336
    ReleaseLocks(self, locking.LEVEL_NODE_RES)
1338 1337

  
1339 1338
    if iobj.disk_template != constants.DT_DISKLESS and not self.adopt_disks:
1340
      # we need to set the disks ID to the primary node, since the
1341
      # preceding code might or might have not done it, depending on
1342
      # disk template and other options
1343
      for disk in iobj.disks:
1344
        self.cfg.SetDiskID(disk, self.pnode.uuid)
1345 1339
      if self.op.mode == constants.INSTANCE_CREATE:
1346 1340
        if not self.op.no_install:
1347 1341
          pause_sync = (iobj.disk_template in constants.DTS_INT_MIRROR and
......
1573 1567
    info = GetInstanceInfoText(renamed_inst)
1574 1568
    for (idx, disk) in enumerate(renamed_inst.disks):
1575 1569
      for node_uuid in renamed_inst.all_nodes:
1576
        self.cfg.SetDiskID(disk, node_uuid)
1577 1570
        result = self.rpc.call_blockdev_setinfo(node_uuid,
1578 1571
                                                (disk, renamed_inst), info)
1579 1572
        result.Warn("Error setting info on node %s for disk %s" %
......
3132 3125
    except errors.GenericError, e:
3133 3126
      feedback_fn("Initializing of DRBD devices failed;"
3134 3127
                  " renaming back original volumes...")
3135
      for disk in new_disks:
3136
        self.cfg.SetDiskID(disk, pnode_uuid)
3137 3128
      rename_back_list = [(n.children[0], o.logical_id)
3138 3129
                          for (n, o) in zip(new_disks, self.instance.disks)]
3139 3130
      result = self.rpc.call_blockdev_rename(pnode_uuid, rename_back_list)
......
3194 3185

  
3195 3186
    feedback_fn("Removing volumes on the secondary node...")
3196 3187
    for disk in old_disks:
3197
      self.cfg.SetDiskID(disk, snode_uuid)
3198 3188
      result = self.rpc.call_blockdev_remove(snode_uuid, (disk, self.instance))
3199 3189
      result.Warn("Could not remove block device %s on node %s,"
3200 3190
                  " continuing anyway" %
......
3204 3194
    feedback_fn("Removing unneeded volumes on the primary node...")
3205 3195
    for idx, disk in enumerate(old_disks):
3206 3196
      meta = disk.children[1]
3207
      self.cfg.SetDiskID(meta, pnode_uuid)
3208 3197
      result = self.rpc.call_blockdev_remove(pnode_uuid, (meta, self.instance))
3209 3198
      result.Warn("Could not remove metadata for disk %d on node %s,"
3210 3199
                  " continuing anyway" %
......
3264 3253
    (anno_disk,) = AnnotateDiskParams(self.instance, [root], self.cfg)
3265 3254
    for node_uuid, disk in anno_disk.ComputeNodeTree(
3266 3255
                             self.instance.primary_node):
3267
      self.cfg.SetDiskID(disk, node_uuid)
3268 3256
      msg = self.rpc.call_blockdev_remove(node_uuid, (disk, self.instance)) \
3269 3257
              .fail_msg
3270 3258
      if msg:

Also available in: Unified diff