3.3 3.2a Dağıtım işlemcisi Distribution (dağıtım aktarım planı Faz 2)

<< İç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.