'Retrieve an existing masking view or create a new one.
:param serial_number: the array serial number
:param masking_view_dict: the masking view dict
:param default_sg_name: the name of the default sg
:param extra_specs: the extra specifications
:returns: error message'

def _get_or_create_masking_view(self, serial_number, masking_view_dict, default_sg_name, extra_specs):

    maskingview_name = masking_view_dict[utils.MV_NAME]
    masking_view_details = self.rest.get_masking_view(serial_number, masking_view_name=maskingview_name)
    if (not masking_view_details):
        error_message = self._create_new_masking_view(serial_number, masking_view_dict, maskingview_name, default_sg_name, extra_specs)
    else:
        (storagegroup_name, error_message) = self._validate_existing_masking_view(serial_number, masking_view_dict, maskingview_name, default_sg_name, extra_specs)
    return error_message
