Skip to main content

Požadavek shell

<request>
<shell
id="{number}"
command="{string}"
call="sync|async|detach"
join-output="{boolean}"
no-output="{boolean}"
survive="{boolean}"
timeout="{number}"
retrieve-timeout="{number}"
out-buffer-size="{number}"
err-buffer-size="{number}"
input-encoding="hex|utf8|utf16|acp|base64|cislo kodove stranky"
encode="hex|url|base64|xml|json|raw"
codepage="utf8|utf16|acp|cislo kodove stranky"
exit-code="{number}"
/>
</request>

Atributy

  • id - id dříve odeslaného požadavku o jehož výsledek si žádáte(typ: number) TYP HODNOTY: number;

  • command - volaný příkaz, pokud se nejedná o standardní příkaz jehož cesta je uvedena v env PATH, musí obsahovat úplnou cestu ke spustitelnému souboru, může obsahovat parametry předávané spustitelnému programu(typ: string) TYP HODNOTY: string;

  • call - určuje způsob volání programu, bližší popis naleznete dále v tomto dokumentu, výchozí hodnotou je sync(typ: string) TYP HODNOTY: string; Možnosti obsahu: » sync ~ program je volán synchronně » async ~ program bude volán asynchronně » detach ~ způsobí, že server program spustí a dále se o jeho běh nestará, není možné vrátit výstupy a nelze aplikovat timeouty

  • join-output - určuje zda má dojít ke sloučení standardního a chybového výstupu do jednoho (standardního), výchozí hodnotou je false(typ: boolean) TYP HODNOTY: boolean;

  • no-output - určuje zda se má standardní výstup ignorovat (nevracet), pokud jsou výstupy sloučeny atributem join-output, nevrací se žádný výstup, výchozí hodnotou je false(typ: boolean) TYP HODNOTY: boolean;

  • survive - určuje zda má spuštěný program 'přežít'ukončení serveru, pokud true, program zůstane běžet i po zastavení serveru, pokud false, program je pri ukončování serveru násilně ukončen, atribut survive se uplatní pouze v případě, že je spustitelný soubor volán v asynchronním režimu (atribut async='true'), výchozí hodnota je false(typ: boolean) TYP HODNOTY: boolean;

  • timeout - maximální doba [s] běhu spuštěného programu, pak je program serverem násilně ukončen, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY: number;

  • retrieve-timeout - maximální doba [s] čekání na vyzvednutí odpovědi v async='true' režimu, po uplynutí je odpověď zapomenuta, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY: number;

  • out-buffer-size - velikost bufferu [B] na standardní výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY: number;

  • err-buffer-size - velikost bufferu [B] na chybový výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY: number;

  • input-encoding - určuje způsob jakým jsou vstupní data zakódována poslána na standardní vstup volaného programu, výchozí hodnota utf8(typ: number) TYP HODNOTY: number; Možnosti obsahu: » hex ~ vstup je programu předaný jako zakódovaný hexadecimálně » utf8 ~ s programem se komunikuje v UTF-8 » utf16 ~ s programem se komunikuje v UTF-16 » acp ~ s programem se komunikuje v aktuální kódové stránce » base64 ~ vstup je programu předaný jako zakódovaný base64 » cislo kodove stranky ~ s programem se komunikuje v číselně zadané kódové stránce

  • encode - určuje způsob jakým jsou kódována výstupní data (normání i chybová), výchozí hodnotou je raw (nejsou kódována vůbec)(typ: string) TYP HODNOTY: string; Možnosti obsahu: » hex ~ výstup je vracen zakódovaný hexadecimálně » url ~ výstup je vracen zakódovaný URL encoding » base64 ~ výstup je vracen zakódovaný do base64 » xml ~ výstup je zakódován tak, aby byly nahrazeny takové znaky, aby vzniklo platné XML » json ~ výstup je převeden z našeho JSON XML do JSON » raw ~ výstup je vracen bez jakékoli úpravy

  • codepage - určuje, jakou kódovou stránku používat při komunikaci s programem, používá se pro vstup i výstup, výchozí hodnotou je OEM(typ: string) TYP HODNOTY: string; Možnosti obsahu: » utf8 ~ s programem se komunikuje v UTF-8 » utf16 ~ s programem se komunikuje v UTF-16 » acp ~ s programem se komunikuje v aktuální kódové stránce » cislo kodove stranky ~ s programem se komunikuje v číselně zadané kódové stránce

  • exit-code - exit code programu, který je považován za úspěch(typ: number) TYP HODNOTY: number;

Potomci

Požadavek shell neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.

Odpověď

Struktura odpovědi na požadavek shell vrácená v obálce response:

<response>
<shell
status="ok|fail|running|detached|killed|not-found|error"
id="{string}"
command="{string}"
result="{number}"
start="{dateTime}"
stop="{dateTime}"
duration="{number}"
>
<output ... /> ?
<error ... /> ?
</shell>
</response>

Atributy

  • status - popis neuveden(typ: string) TYP HODNOTY: string; Možnosti obsahu: » ok ~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi » fail ~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi, exit code progarmu se ale neshoduje s tím uvedeným v atributu exit-code » running ~ program je spuštěn v asynchronním režimu a běží, tato odpověď je vracena při spuštění programu v async režimu a také při požadavku na získání výsledků dříve spuštěného programu, pokud stále běží » detached ~ program byl spuštěn jako detašovaný a server o něm již nemá žádné informace » killed ~ program byl násilně ukončen pravděpodobně z důvodu timeout, výstupy přítomné v odpovědi nemusí být kompletní » not-found ~ požadované id se nepodařilo najít, není ani mezi běžícími ani mezi dokončenými úlohami » error ~ došlo k nějaké chybě, podrobnosti jsou obsaženy v dalším atributu, viz chybová odpověď

  • id - je v odpovědi přítomen pouze pokud se jedná o asynchronní požadavek, označuje pak ID použitelné k vyzvednutí odpovědi(typ: string) TYP HODNOTY: string;

  • command - obsahuje původně volaný příkaz(typ: string) TYP HODNOTY: string;

  • result - obsahuje stavový kód dokončeného programu(typ: number) TYP HODNOTY: number;

  • start - obsahuje datum a čas zahájení(typ: dateTime) TYP HODNOTY: dateTime;

  • stop - obsahuje datum a čas dokončení(typ: dateTime) TYP HODNOTY: dateTime;

  • duration - obsahuje dobu trvání v [ns](typ: number) TYP HODNOTY: number;

Potomci

Výraz pro identifikaci chyb v odpovědi serveru: shell[@status='error'] (odkaz na popis detailu: @detail).

Uzel output

<output>
<{element} ... > ... </{element}>*
</output>

Atributy

Uzel output neobsahuje žádné atributy.

Potomci

Uzel output umožňuje uvést nepovinný, ale opakovatelný element - Standardní výstup programu

Uzel error

<error/>

Atributy

Uzel error neobsahuje žádné atributy.

Potomci

Uzel error neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.