Get all :class:`rtcclient.project_area.ProjectArea` id(s)
        by project area name

        If `projectarea_name` is `None`, all the
        :class:`rtcclient.project_area.ProjectArea` id(s) will be returned.

        :param projectarea_name: the project area name
        :param archived: (default is False) whether the project area
            is archived
        :return: a :class:`list` that contains all the :class:`ProjectArea` ids
        :rtype: list

def getProjectAreaIDs(self, projectarea_name=None, archived=False):
        """Get all :class:`rtcclient.project_area.ProjectArea` id(s)
        by project area name

        If `projectarea_name` is `None`, all the
        :class:`rtcclient.project_area.ProjectArea` id(s) will be returned.

        :param projectarea_name: the project area name
        :param archived: (default is False) whether the project area
            is archived
        :return: a :class:`list` that contains all the :class:`ProjectArea` ids
        :rtype: list
        """

        projectarea_ids = list()
        if projectarea_name and isinstance(projectarea_name,
                                           six.string_types):
            projectarea_id = self.getProjectAreaID(projectarea_name,
                                                   archived=archived)
            projectarea_ids.append(projectarea_id)
        elif projectarea_name is None:
            projectareas = self.getProjectAreas(archived=archived)
            if projectareas is None:
                return None
            projectarea_ids = [proj_area.id for proj_area in projectareas]
        else:
            error_msg = "Invalid ProjectArea name: [%s]" % projectarea_name
            self.log.error(error_msg)
            raise exception.BadValue(error_msg)

        return projectarea_ids