'Function to set attributes for live migration.
:param device_info_dict: the data dict
:param source_storage_group_list:
:returns: source_nf_sg: The non fast storage group
:returns: source_sg: The source storage group
:returns: source_parent_sg: The parent storage group
:returns: is_source_nf_sg:if the non fast storage group already exists'

def _setup_for_live_migration(self, device_info_dict, source_storage_group_list):

    array = device_info_dict['array']
    source_sg = None
    is_source_nf_sg = False
    source_parent_sg = self.rest.get_element_from_masking_view(array, device_info_dict['maskingview'], storagegroup=True)
    source_nf_sg = (source_parent_sg[:(-2)] + 'NONFAST')
    for sg in source_storage_group_list:
        is_descendant = self.rest.is_child_sg_in_parent_sg(array, sg, source_parent_sg)
        if is_descendant:
            source_sg = sg
    is_descendant = self.rest.is_child_sg_in_parent_sg(array, source_nf_sg, source_parent_sg)
    if is_descendant:
        is_source_nf_sg = True
    return (source_nf_sg, source_sg, source_parent_sg, is_source_nf_sg)
