'Run before any live migration operation.
:param source_nf_sg: The non fast storage group
:param source_sg: The source storage group
:param source_parent_sg: The parent storage group
:param is_source_nf_sg: if the non fast storage group already exists
:param device_info_dict: the data dict
:param extra_specs: extra specifications'

def pre_live_migration(self, source_nf_sg, source_sg, source_parent_sg, is_source_nf_sg, device_info_dict, extra_specs):

    if (is_source_nf_sg is False):
        storage_group = self.rest.get_storage_group(device_info_dict['array'], source_nf_sg)
        if (storage_group is None):
            self.provision.create_storage_group(device_info_dict['array'], source_nf_sg, None, None, None, extra_specs)
        self.add_child_sg_to_parent_sg(device_info_dict['array'], source_nf_sg, source_parent_sg, extra_specs, default_version=False)
    self.move_volume_between_storage_groups(device_info_dict['array'], device_info_dict['device_id'], source_sg, source_nf_sg, extra_specs)
