def METHOD_NAME(self):
    for index in range(self.snapshot_num + 1):
        snapshot_tag = "sn%s" % index
        if snapshot_tag not in self.snapshot_chains:
            self.snapshot_chains.append(snapshot_tag)
        params = self.params.copy()
        params.setdefault("target_path", data_dir.get_data_dir())
        params["image_size_%s" % snapshot_tag] = self.base_image.size
        params["image_name_%s" % snapshot_tag] = snapshot_tag
        self.params["image_name_%s" % snapshot_tag] = snapshot_tag
        snapshot_format = params.get("snapshot_format", "qcow2")
        params["image_format_%s" % snapshot_tag] = snapshot_format
        self.params["image_format_%s" % snapshot_tag] = snapshot_format
        if self.params["image_backend"] == "iscsi_direct":
            self.params.update({"enable_iscsi_%s" % snapshot_tag: "no"})
            self.params.update({"image_raw_device_%s" % snapshot_tag: "no"})
        elif self.params["image_backend"] == "ceph":
            self.params.update({"enable_ceph_%s" % snapshot_tag: "no"})
        elif self.params["image_backend"] == "nbd":
            self.params.update({"enable_nbd_%s" % snapshot_tag: "no"})
        image = sp_admin.volume_define_by_params(snapshot_tag, params)
        image.hotplug(self.main_vm)