Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
14 septembre 2016

cups printer           Impression


ipptoolfile

ipptoolfile

Format de fichier ipptool

Le programme ipptool accepte les fichiers texte libre qui décrivent une ou plusieurs requêtes IPP. Par exemple:
# This is a comment
{
    # The name of the test
    NAME "Print PostScript File"
    
    # The request to send
    OPERATION Print-Job
    GROUP operation-attributes-tag
    ATTR charset attributes-charset utf-8
    ATTR language attributes-natural-language en
    ATTR uri printer-uri $uri
    ATTR name requesting-user-name $user
    FILE testfile.ps
    
    # The response to expect
    STATUS successful-ok
    EXPECT job-id OF-TYPE integer WITH-VALUE ؎
    EXPECT job-uri OF-TYPE uri
}
{
    # The name of the test
    NAME "Get Attributes of PostScript Job"
    
    # The request to send
    OPERATION Get-Job-Attributes
    GROUP operation-attributes-tag
    ATTR charset attributes-charset utf-8
    ATTR language attributes-natural-language en
    ATTR uri printer-uri $uri
    ATTR integer job-id $job-id
    ATTR name requesting-user-name $user
    
    # The response to expect
    STATUS successful-ok
    EXPECT job-id OF-TYPE integer WITH-VALUE $job-id
    EXPECT job-uri OF-TYPE uri
    EXPECT job-state OF-TYPE enum WITH-VALUE 3,4,5,6,7,8,9
    EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
}

Directives top-level

{ test } Définis un test
DEFINE variable-name value Définise une variable. Équivalent à -d variable-name=value.
DEFINE-DEFAULT variable-name value Définis la variable si elle n'a pas de valeur
FILE-ID "identifier" Spécifie un identifiant pour le fichier courant
IGNORE-ERRORS yes|no Spécifie si ipptool ignore les erreurs et continue par défaut.
INCLUDE "filename"|‹filename› Inclure un autre fichier de test. La première forme est relative au fichier courant.
INCLUDE-IF-DEFINED name "filename"|‹filename› Inclure un autre fichier de test si la variable nommée est définie
INCLUDE-IF-NOT-DEFINED name "filename"|‹filename› Inclus un autre fichier de test si la variable nommée n'est pas définie
SKIP-IF-DEFINED variable-name
SKIP-IF-NOT-DEFINED variable-name Spécifie si le reste du fichier test devrait être sauté quand la variable est ou n'est pas définie
STOP-AFTER-INCLUDE-ERROR yes|no Spécifie si les tests sont stoppés après une erreur dans un fichier inclus
TRANSFER auto|chunked|length Spécifie que les tests, par défaut, utilisent "Transfer-Encoding: chunked", ou "Content-Length:". auto utilise le premier avec les fichiers attachés et le second pour les requêtes sans fichier attaché.
VERSION 1.0|1.1|2.0|2.1|2.2 Spécifie le numéro de version IPP par défaut pour les tests.

Directives de test

ATTR tag attribute-name value(s) Ajoute un attribut à la demande de test. les valeurs sont séparées par ','
ATTR collection attribute-name { MEMBER tag member-name value(s) ... } [ ... ,{ ... } ] Ajoute une collection d'attribut à la demande de test. Les attributs membres suivent la même syntaxe que les attributs réguliers et peuvent eux-même être des collections imbriquées. Plusieurs collections peuvent être fournis, séparées par ','
COMPRESSION deflate|gzip|none Compression à utiliser dans le données suivant les attributs dans une requêtes Print-Job ou Send-Document
DELAY seconds délais avant de lancer ce test
DISPLAY attribute-name Spécifique la valeur d'un attribut à sortir dans le rapport de test
EXPECT attribute-name [ predicate(s) ]
EXPECT ?attribute-name predicate(s)
EXPECT !attribute-name Spécifie que la réponse doit|peut|ne doit pas incluse l'attribut nommé. Des prédicats peuvent être ajoutés. Les noms d'attribut peuvent spécifier des attributs membre en les séparant avec un '/' (ex: "media-col/media-size/x-dimension")
EXPECT-ALL attribute-name [ predicate(s) ]
EXPECT-ALL ?attribute-name predicate(s) Spécifie que la réponse doit/peut inclure l'attribut nommé et que toutes les occurrences de cet attriut doivent correspondre au prédicat donné
FILE filename Spécifie un fichier à inclure à la fin de la requête. Généralement utilisé en envoyant un fichier de test d'impression
GROUP tag Spécifie le tag de groupe pour les attributs sous-jacents dans la requête
IGNORE-ERRORS yes|no Spécifie si les erreurs sont ignorées ou non
NAME "literal string" Nom "human-readable" du test
OPERATION operation-code Spécifie l'opération à effectuer
PAUSE "message" Affiche le message fournis et attends que l'utilisateur appuie sur une touche pour continuer
REQUEST-ID ‹number›|random Spécifie le request-id à utiliser dans la requête.
RESOURCE path Chemin de ressource alternatif pour la requête HTTP POST. Par défaut, est pris dans l'URI fournie à ipptool
SKIP-IF-DEFINED variable-name
SKIP-IF-NOT-DEFINED variable-name Spécifie que le test courant devrait sauter quand la variable et ou non définie
SKIP-PREVIOUS-ERROR yes|no Indique si ipptool saute le test courant si le test précédent a généré une erreur
STATUS status-code [ predicate ] Spécifie un valeur de code de status attendus. Un prédicat peut être ajouté
TEST-ID "identifier" Spécifie une chaîne identifiant pour le test courant
TRANSFER auto|chunked|length Spécifie que les tests, par défaut, utilisent "Transfer-Encoding: chunked", ou "Content-Length:". auto utilise le premier avec les fichiers attachés et le second pour les requêtes sans fichier attaché.
VERSION 1.0|1.1|2.0|2.1|2.2 Spécifie le numéro de version IPP par défaut pour ce test

Prédicats attendus

COUNT number Nécessite que l'attribut EXPECT ait le nombre spécifié de valeurs
DEFINE-MATCH variable-name Définis la valiable à 1 quand la condition EXPECT correspond
DEFINE-NO-MATCH variable-name Définis la valiable à 1 quand la condition EXPECT ne correspond pas
DEFINE-VALUE variable-name Définis la variable quand la condition EXPECT correspond
IF-DEFINED variable-name Les conditions EXPECT ne s'appliquent que si la variable spécifiée est définie
IF-NOT-DEFINED variable-name Les conditions EXPECT ne s'appliquent que si la variable spécifiée n'est pas définie
IN-GROUP tag Nécessite que l'attribut EXPECT soit dans le group tag spécifié
OF-TYPE tag[,tag,...] Nécessite l'attribut EXPECT pour utiliser un des tag spécifiés
REPEAT-LIMIT number Spécifie le nombre max de répétitions si le prédicat REPEAT-MATCH ou REPEAT-NO-MATCH est spécifié. Défaut: 1000
REPEAT-MATCH
REPEAT-NO-MATCH Spécifie que le test courant devrait être répété quand la condition EXPECT correspond ou non
SAME-COUNT-AS attribute-name Nécessite que l'attribut EXPECT ait le même nombre de valeurs que l'attribut parallèle spécifié
WITH-ALL-HOSTNAMES "literal string"|"/regular expression/" Nécessite que toutes les valeurs URI contiennent un hostname correspondant
WITH-ALL-RESOURCES "literal string"|"/regular expression/" Nécessite que toutes les valeurs URI contiennent une ressource correspondante (incluant le /)
WITH-ALL-SCHEMES "literal string"|"/regular expression/" Nécessite que toutes les valeurs URI contiennent le schéma correspondant
WITH-ALL-VALUES ‹number|=number|›number|number[.....number]|false|true|"/regular expression/" Nécessite que toutes les valeurs de l'attribut EXPECT corresponde à la chaîne littérale ou la valeur booléenne
WITH-HOSTNAME "literal string"|"/regular expression/" Nécessite qu'au moins une valeur URI contienne un nom d'hôte correspondant
WITH-RESOURCE "literal string"|"/regular expression/" Nécessite qu'au moins une valeur URI contienne une ressource correspondante (incluant le /)
WITH-SCHEME "literal string"|"/regular expression/" Nécessite qu'au moins une valeur URI contienne une schéma correspondant
WITH-VALUE "literal string"|‹number|=number|›number|number[.....number]|false|true|"/regular expression/" Nécessite qu'au moins une valeur de l'attribut EXPECT corresponde aux nombres spécifiés.
WITH-VALUE-FROM attribute-name Nécessite que les valeurs de l'attribut EXPECT correspondent aux valeurs dans l'attribut spécifié (ex: "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" nécessite que la valeur job-sheets soit listé dans job-sheets-supported)

Prédicats de status

DEFINE-MATCH variable-name Définis la variable à 1 quand STATUS correspond
DEFINE-NO-MATCH variable-name Définis la variable à 1 quand STATUS ne correspond pas
IF-DEFINED variable-name STATUS s'applique seulement si la variable spécifiée est définie
IF-NOT-DEFINED variable-name STATUS s'applique seulement si la variable spécifiée n'est pas définie
REPEAT-LIMIT number Spécifie le nombre maximum de répetition du test courant. Défaut: 1000
REPEAT-MATCH
REPEAT-NO-MATCH Spécifie que le test courant devrait être répété quand le code de status de réponse correspond ou non à la valeur spécifiée par la directive STATUS

Codes d'opération

Les codes d'opération correspondent aux nombres hexadécimal (0xHHHH) et noms de la rfc2911 et d'autres spécifications d'extension IPP. Voici une liste complète de noms supportés par ipptool:
Activate-Printer
CUPS-Accept-Jobs
CUPS-Add-Modify-Class
CUPS-Add-Modify-Printer
CUPS-Authenticate-Job
CUPS-Delete-Class
CUPS-Delete-Printer
CUPS-Get-Classes
CUPS-Get-Default
CUPS-Get-Devices
CUPS-Get-Document
CUPS-Get-PPD
CUPS-Get-PPDs
CUPS-Get-Printers
CUPS-Move-Job
CUPS-Reject-Jobs
CUPS-Set-Default
Cancel-Current-Job
Cancel-Job
Cancel-Jobs
Cancel-My-Jobs
Cancel-Subscription
Close-Job
Create-Job
Create-Job-Subscriptions
Create-Printer-Subscriptions
Deactivate-Printer
Disable-Printer
Enable-Printer
Get-Job-Attributes
Get-Jobs
Get-Notifications
Get-Printer-Attributes
Get-Printer-Support-Files
Get-Printer-Supported-Values
Get-Subscription-Attributes
Get-Subscriptions
Hold-Job
Hold-New-Jobs
Identify-Printer
Pause-Printer
Pause-Printer-After-Current-Job
Print-Job
Print-URI
Promote-Job
Purge-Jobs
Release-Held-New-Jobs
Release-Job
Renew-Subscription
Reprocess-Job
Restart-Job
Restart-Printer
Resubmit-Job
Resume-Job
Resume-Printer
Schedule-Job-After
Send-Document
Send-Hardcopy-Document
Send-Notifications
Send-URI
Set-Job-Attributes
Set-Printer-Attributes
Shutdown-Printer
Startup-Printer
Suspend-Current-Job
Validate-Document
Validate-Job

Codes de status

Les codes de status correspondent aux nombres hexadécimal (0xHHHH) et noms de la rfc2911 et d'autres spécifications d'extension IPP. Voici une liste complète de noms supportés par ipptool:
client-error-account-authorization-failed
client-error-account-closed
client-error-account-info-needed
client-error-account-limit-reached
client-error-attributes-not-settable
client-error-attributes-or-values-not-supported
client-error-bad-request
client-error-charset-not-supported
client-error-compression-error
client-error-compression-not-supported
client-error-conflicting-attributes
client-error-document-access-error
client-error-document-format-error
client-error-document-format-not-supported
client-error-document-password-error
client-error-document-permission-error
client-error-document-security-error
client-error-document-unprintable-error
client-error-forbidden
client-error-gone
client-error-ignored-all-notifications
client-error-ignored-all-subscriptions
client-error-not-authenticated
client-error-not-authorized
client-error-not-found
client-error-not-possible
client-error-print-support-file-not-found
client-error-request-entity-too-large
client-error-request-value-too-long
client-error-timeout
client-error-too-many-subscriptions
client-error-uri-scheme-not-supported
cups-error-account-authorization-failed
cups-error-account-closed
cups-error-account-info-needed
cups-error-account-limit-reached
cups-see-other
redirection-other-site
server-error-busy
server-error-device-error
server-error-internal-error
server-error-job-canceled
server-error-multiple-document-jobs-not-supported
server-error-not-accepting-jobs
server-error-operation-not-supported
server-error-printer-is-deactivated
server-error-service-unavailable
server-error-temporary-error
server-error-version-not-supported
successful-ok
successful-ok-but-cancel-subscription
successful-ok-conflicting-attributes
successful-ok-events-complete
successful-ok-ignored-notifications
successful-ok-ignored-or-substituted-attributes
successful-ok-ignored-subscriptions
successful-ok-too-many-events

Tags

Les tags correspondent aux noms de la rfc2911 et autres spécifications d'extension IPP . Tags de groupe:
document-attributes-tag
event-notification-attributes-tag
job-attributes-tag
operation-attributes-tag
printer-attributes-tag
subscription-attributes-tag
unsupported-attributes-tag

Tags de valeurs:
admin-define
boolean
charset
collection
dateTime
default
delete-attribute
enum
integer
keyword
mimeMediaType
nameWithLanguage
nameWithoutLanguage
naturalLanguage
no-value
not-settable
octetString
rangeOfInteger
resolution
textWithLanguage
textWithoutLanguage
unknown
unsupported
uri
uriScheme

Variables

   ipptool maintient une liste de variables qui peuvent être utilisées dans les chaînes litérales ou les valeurs d'attribut.

$$ Le caractère $
$ENV[name] Insert la valeur de la variable d'environnement spécifiée
$filename Insert le fichier fournis à ipptool avec l'option -f
$filetype Insert le type mime pour le fichier fournis à ipptool
$hostname Insert le nom d'hôte depuis l'URI fournis à ipptool
$job-id Insert le dernier job-id retourné dans un test
$job-uri Insert le dernier job-uri retourné dans un test
$notify-subscription-id Insert le dernier notify-subscription-ip retourné dans un test
$port Insert le port depuis l'URI fournie à ipptool
$resource Insert le chemin de la ressource depuis l'URI fournie à ipptool
$scheme Insert le schéma depuis l'URI fournie à ipptool
$uri Insert l'URI fournie à ipptool
$uriuser Insert le username depuis l'URI fournie à ipptool
$user Insert l'utilisateur courant