Ejemplo n.º 1
0
def create_image_target(image_name, file_path, loop_dev, iqn_prefix):
    """
    :returns : string
        "0:info" specifies SUCCESS, info="target_id:loop_dev"
        "1:info" specifies WARNING, info indicates image_name exists
        "2:info" specifies WARNING, info indicates image file_path not exists
    """
    LOG.debug("Virtman: Image Service: create image target started! "
              "image_name = %s, file_path = %s" % (image_name, file_path))
    if not image_name.startswith("volume-"):
        image_name = "volume-" + image_name
    if image_name in targetlist:
        LOG.warn("Virtman: Image Service: Warning! image_name = %s exists! "
                  "Please use another name" % image_name)
        return "1:" + "Virtman: Image Service: Warning! " \
                      "image_name = %s exists! Please use another name" \
                      % image_name
    if not os.path.exists(file_path):
        LOG.warn("Virtman: Image Service: Warning! "
                 "image file_path = %s not exists! Please use another "
                 "image file" % file_path)
        return "2:" + "Virtman: Image Service: Warning!" \
                      "image file_path = %s not exists! Please use " \
                      "another image file" % file_path
    if loop_dev is None:
        loop_dev = blockservice.findloop()
    else:
        blockservice.unlinkloop(loop_dev)
    blockservice.linkloop(loop_dev, file_path)
    target_id = iscsi.create_iscsi_target(iqn_prefix + image_name, loop_dev)
    targetlist[image_name] = target_id + ':' + loop_dev
    LOG.debug("Virtman: Image Service: create image target completed! "
              "image_target_id = %s loop_dev = %s"
              % (target_id, loop_dev))
    return "0:" + target_id + ":" + loop_dev
Ejemplo n.º 2
0
 def _destroy_snap_dev(self):
     LOG.debug("Virtman: deleting the snapshot for the VM instance")
     if self.snapshot_with_cache:
         self._delete_cache(self.snapshot_dev)
     blockservice.unlinkloop(self.snapshot_dev)
     LOG.debug("Virtman: succeed to delete snapshot!")
     return True
Ejemplo n.º 3
0
def destroy_image_target(image_name):
    """
    :returns : string
        "0:info" specifies SUCCESS, info="nothing", nothing is None
        "1:info" specifies WARNING, info indicates image_name not exists
    """
    LOG.debug("Virtman: Image Service: remove image target started! image_name = %s" % image_name)
    if not image_name.startswith("volume-"):
        image_name = "volume-" + image_name
    if not targetlist.has_key(image_name):
        LOG.debug("Virtman: Image Service: Warning! image_name = %s not exists!" % image_name)
        return "1:" + "Virtman: Image Service: Warning! image_name = %s not exists!" % image_name
    nothing = iscsi.remove_iscsi_target(image_name, image_name)
    blockservice.unlinkloop(targetlist[image_name].split(':')[1])
    del targetlist[image_name]
    LOG.debug("Virtman: Image Service: remove image target completed!")
    return "0:" + str(nothing)
Ejemplo n.º 4
0
 def test_unlinkloop(self):
     expected_commands = ["losetup -d /dev/loop1"]
     self.mock_object(blockservice, "is_looped", mock.Mock(side_effect=lambda x: True))
     blockservice.unlinkloop("/dev/loop1")
     self.assertEqual(expected_commands, self.cmds)