def METHOD_NAME(self, project_filename: str) -> List[str]:
    """Validate one project file, returning a list of error messages for problems found with that file.
    Current validations are for ResourceAllocations:
    1. Check ResourceGroups are in the topology tree
    2. Check AllowedSchedds are Resources with "Submit Node" services
    """
    project_filebn = os.path.basename(project_filename)
    try:
        project = project_reader.get_one_project(
            project_filename, self.campus_grid_ids, self.vos_data
        )
    except Exception as err:
        return ["%s: exception while reading: %r" % (project_filebn, err)]
    errors = []
    if not is_null(project, "ResourceAllocations", "ResourceAllocation"):
        for resource_allocation in project["ResourceAllocations"]["ResourceAllocation"]:
            # Check 1
            if not is_null(resource_allocation, "ExecuteResourceGroups", "ExecuteResourceGroup"):
                project_ergs = resource_allocation["ExecuteResourceGroups"]["ExecuteResourceGroup"]
                project_erg_names = {x["GroupName"] for x in project_ergs}
                errors.extend([
                    f"{project_filebn}: ExecuteResourceGroup '{missing}' not found in topology"
                    for missing in (project_erg_names - self.resource_group_names)
                ])
            # Check 2
            if not is_null(resource_allocation, "SubmitResources", "SubmitResource"):
                project_schedd_names = resource_allocation["SubmitResources"]["SubmitResource"]
                for sn in project_schedd_names:
                    resource = self._get_resource_by_name(sn)
                    if not resource:
                        errors.append(
                            "%s: SubmitResource '%s' not found in topology"
                            % (project_filebn, sn)
                        )
                    elif "Submit Node" not in resource.service_names:
                        errors.append(
                            "%s: SubmitResource '%s' does not provide a Submit Node"
                            % (project_filebn, sn)
                        )
    return errors