Požadavek shell

syntax
<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:

syntax
<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


Uzel output

syntax
<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

syntax
<error/>

Atributy

Uzel error neobsahuje žádné atributy.


Potomci

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

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


Požadavek save-filePožadavek save-filesPožadavek load-filesPožadavek file-systemPožadavek shell