def remove_group_by_name(self, group_name, recursive=True):
        """
        Remove the groups matching the given name. If recursive is True, all descendants of this group are also removed.
        This method could cause the removal of multiple groups that not necessarily are intended to be removed, use with
        caution
        :param group_name: The group name to be removed
        :param recursive: All descendants should be removed as well
        :return: True if the element was removed successfully, False otherwise
        """
        groups = self.get_groups_by_name(name=group_name)

        if groups.__len__() == 0:
            return False

        for group in groups:
            if not self.remove_group_by_id(group.get_id(), recursive):
                return False

        return True
Remove the groups matching the given name. If recursive is True, all descendants of this group are also removed.
        This method could cause the removal of multiple groups that not necessarily are intended to be removed, use with
        caution
        :param group_name: The group name to be removed
        :param recursive: All descendants should be removed as well
        :return: True if the element was removed successfully, False otherwise