|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > Netsim System Agent İstemci Protokolü Referansı > 3. Diğer HTTP uçları (/ClientREST/...) > 3.3 3.2a Dağıtım işlemcisi Distribution (dağıtım aktarım planı Faz 2) |
Kök: <sürüm>-<ek>/manifest.json + dosyalar (manifest'siz / withdrawn klasör yok sayılır; klasör adı
^\d+(\.\d+){3}-\d+$). Bir dosya önce manifest'in yanında, yoksa içerik adresli depoda <kök>/store/<sha256>
(manifest'teki sha256, küçük harf) aranır; Netsim'in dağıtım sunucusu dosyaları yalnız depoda tutar (değişmeyen dosya
sürümler arasında tek kopya). İstemci için fark yoktur: uçlar ve yanıtlar aynıdır. physicalRoot verilmezse öndeğer
${APPDIR}/distribution (Linux'ta /var/lib/netsim/distribution). Hata sözleşmesi ClientREST'teki gibi 202 + {result:false, message}, bilinmeyen uç 400.
| Uç | Yanıt |
|---|---|
GET VERSIONS[?product=] |
{result, versions:[{folder, product, version, suffix, released, minUpgradeVersion, catalogVersion, releaseNotes}]}, yeniden eskiye |
GET MANIFEST?version=<v>-<ek> |
manifest.json'un kendisi |
GET FILE?version=&name= |
dosya; name yalnız manifest'teki adlardan biri; ETag = "<sha256>", Last-Modified, Accept-Ranges: bytes, Range → 206 + Content-Range, If-Range (ETag ya da tarih); boyutu manifest'ten farklı dosya 202 |
Netsim'in dağıtım sunucusu: FILE başlıkta X-Netsim-System, X-Netsim-Owner, X-Netsim-Activation ister;
lisans doğrulanamazsa genel ileti (Lisans doğrulanamadı), lisansın güncelleme aboneliği yayın gününden önce
bitmişse abonelik iletisi.
Ajan tarafı (Faz 3, AdminREST, SYSADMIN): GET DISTRIBUTION?what=versions (sunucunun VERSIONS'ı + her sürüme
cached / partial dosya adları ve cacheDir), ?what=manifest&version= (sunucunun manifest'i, önbelleğe de yazılır),
?what=status (downloads: [{version, name, bytes, total, startedAt, active}], .part.json'lardan), ?what=latest
(Faz 4: {result, version, released, checkedAt, error, newer, current} - latest.json; &check=1 önce sunucuya sorar
(web arayüzü girişten sonra bir kez çağırır, conf checkOnLogin); current bu ajanın
sürümü; STATUS aynı bilgiden latestVersion ve newerVersion verir). POST EXECCOMMAND
DISTDOWNLOAD {version, files: [ad, ...] | purpose: {action: SETUP|UPGRADE, engine, security, platform}} indirmeyi istek
içinde koşar; yanıt {result, message, version, files: [{name, kind, path, size, sha256, status: DOWNLOADED|PRESENT|ERROR,
detail}]}, bir dosya hatalıysa 202. DISTCLEAN {version} önbellek klasörünü siler (süren indirme varsa reddeder).
Sunucu hatası (202 + ileti) olduğu gibi aktarılır.