8.1.3. Konfigurace

Konfigurace se provádí pomocí souborů abm.yml (načítají všechny služby) abm-gui.yml (načítá služba abm-gui) a abm-api.yml (načítá služba abm-api). Soubory se nacházejí v instalačním adresáři aplikace.

Při změně konfigurace je třeba provést restart služeb.

Popis konfiguračních parametrů

abm.yml:

ais:
  #common ===== Nastaveni pristupu k DB
  db:
    #JDBC URL databaze
    address: jdbc:postgresql:abm
    #Alternativa s P6SPY - vypisuje SQL příkazy do logu
    #address: jdbc:p6spy:postgresql:abm

    #jmeno DB uzivatele
    user: ais
    #heslo DB uzivatele
    password: <<not on git>>

  mail:
    # Zda je odesilani mailu povolene
    enabled: true
    
    #Mail host pres co se bude posilat email
    mailHost: localhost
    
    # Emailova adresa (carkou oddeleny seznam), kam se bude posilat mail
    recipientAddress: tape.robot@uk.cz
    
    # Emailova adresa, ktera bude uvedena jako odesilatel mailu
    from: robot@ais-tape.is.cuni.cz

  workers:
    #Pokud ma worker vice vlaken, dochazi k jejich notifikaci s timto zpozdenim.
    #Jednotky: Milisekundy
    #Default: 100
    threadNotifyDelay: 100
    
    #Maximalni doba, po kterou se ceka, az se regulerne ukonci vsechna vlakna daneho workeru. Pak se provede nasilne ukonceni.
    #Jednotky: Sekundy
    #Default: 30
    maxWaitForGracefullShutdown: 3600


abm:
  #Maximalni pocet souboru, ktere jsou soucasne aktivni v procesu stahovani z ArcLib a zapisu na pasku. Omezuje velikost pouziteho workspace.
  #Default: 10000
  maxActiveFileWrites: 10_000_000

  #Minimalni pozadovane volne misto na disku v bytech pro operaci obnova/kontrola pasky.
  #Default: 1_000_000_000
  keepMinFreeDiskSpace: 2_000_000_000

  #Umisteni pracovniho adresare, kam se stahuji soubory z ArcLibStorage pred tim, nez jsou zapsany na pasky.
  #Deault: ./var/workspace
  workspace: /opt/ais/workspace/prod

  #Adresar pro docasne soubory. Pouziva se take pri operaci Zkontrolovat pasku, takze by zde melo byt dostatek diskoveho prostoru pro vykopirovani obsahu cele pasky
  #Default ./var/temp
  tempDir: /opt/ais/dataspace/prod/temp

  #Velikost davky pri prirazovani souboru do serii
  #Default: 1_000
  locatorBatch: 10_000

  tarball:
    #Maximalni cas, po ktery se ceka na naplneni tarballu pro zapis na pasku. Je mozne pouzit jednotky d (dny), h (hodiny) nebo m (minuty)
    #Default: 1d
    maxAge: 7d
    
    #Hranicni velikost tarballu. Pri jejim prekroceni je tarball zapsan na pasku.
    #Default: 100_000_000
    maxSize: 600_000_000_000

  library:
    #Pouziva se pro beh v prostredi, ktere nema dostupnou paskovou knihovnu. Prace s paskami se emuluje v souborovem systemu.
    #Default: false
    #fake: true

    #After tape load/unload, there can be incosistency between state of changer (mtx state) and state of drive (mt state).
    #In this case we wait a second and try again to read the states. This parameter is number of trials before exception is thrown.
    #Default: 10
    stateRefreshTrials: 30

    #After 'mtx load' command returns it takes some time (5-10s) before 'mt state' recongnizes fully loaded tape
    #Default: 6
    waitAfterLoad: 10
    
    #Cesty k fyzickemu zarizeni - pro fake neni potreba
    #Adresa paskove knihovny (changeru). Ma vyznam pouze, pokud je fake=false
    changerAddress: /dev/tape/by-id/scsi-35000e111ce20a0f4-changer
    
    #Adresa paskove mechaniky (drivu). Ma vyznam pouze, pokud je fake=false
    driveAddress: /dev/tape/by-id/scsi-35000e111ce20a0f1-nst

    #Uloziste souboru, ktere obsahuji aktualni stav pasek v paskove knihovne.
    #Pro fake=true je to primarni zdroj stavu. Pro fake=false se sem uklada vysledek prikazu mtx status a mt status
    #Default: ./var/tape
    #statusDir: ./var/tape


    #Zde je treba zaregistrovat kazdy typ pouzivanych pasek (medii).
    #Nazev typu (napr. LTO-8) musi odpovidat hodnote, kterou vraci prikaz mt status. Cislo za dvouteckou je velikost media v bytech.
    tapeTypes:
      LTO-8: 12_000_000_000_000

  tape:
    #Maximalni pocet zapisu na pasku, nez dojde k jejimu uzavreni.
    #Default: 100
    maxWriteCount: 100

    #Maximalni doba, po kterou muze byt paska pouzivana k zapisu, v mesicich.
    #Default: 1
    maxOpenTime: 6

    #Maximalni zaplnenost pasky, pri ktere dojde k jejimu uzavreni. Uvadi se v procentech (tj. cele cislo v rozsahu 0-100)
    #Default: 90
    maxFullnessRatio: 90

    #Zivotnost pasky v rocich
    #Default: 5
    tapeLifespan: 10

    #Interval mezi kontrolami pasky, v mesicich.
    #Default: 1
    tapeControlInterval: 24

    #Kolik dni pred koncem zivotnosti pasky ma byt odeslan notifikacni e-mail, ze ma byt paska nahrazena.
    #Default: 20
    notifyDaysBeforeReplacement: 40

    #Kolik dni pred planovanou automatickou kontrolou pasky ma byt odeslan notifikacni e-mail, ze je potreba zajistit pritomnost pasky v knihovne
    #Default: 20
    notifyDaysBeforeControl: 40


  #Nastavuje parametry pro procesy bezici na pozadi. Vsechny parametry jsou nepovinne, uvedene hodnoty zde jsou defaulty.
  #Pro produkcni prostredi neni duvod menit defalni hodnoty

  #Pro kazdy worker je mozne nastavit tyto hodnoty:
  #Doba kterou se ceka mezi jednotlivymi behy workeru. Jednotky: ms
  #waitTime=60000

  #Zda je worker zapnuty
  #enabled: true

  workers:
#Uzavira TARy, pokud jejich stari presahne maxAge
#    tarExpirator:
#      enabled: false
#      waitTime: 10_000

#Aktualizuje udaje o souborech z ArcLib do ABM
    arcLibSynchronizer:
#      enabled: false
      waitTime: 3600_000

#Zajistuje, aby kazdy soubor ve stavu Archived byl prirazen kazde aktivni serii pasek
#    locator:
#      enabled: false

#Stahuje metadata a obsah souboru z ArcLib
#    arcLibLoader:
#      enabled: false

#Prirazuje stazene soubory do TARu
#    packager:
#      enabled: false
#      waitTime: 10_000

#Pro uzavreny TAR naplanuje operaci zapisu
#    tapeWriter:
#      enabled: false

#Provadi operace s paskou
#    opertionExecutor:
#      enabled: false

#Planuje automaticke kontroly pasku
#    tapeController:
#      enabled: false

#Uzavira operace Nahrazeni pasky a Obnova serie
#    operationFinisher:
#      enabled: false

#Uzavira expirovane pasky
#    tapeExpirator:
#      enabled: false

  arclib:
    #Pouziva se pro beh v prostredi, ktere nema pristup do ArcLib API.
    #Defatult: false
    #fake: false

    #Lze pouzit pri prvotnim nacteni balicku z ArcLib. Udava, jak moc do historie se udaje nactou (kolik dnu pred dnesnim datem)
    initBackPeriod: 3000d
    
    #Velikost davky pri volani ArclibService.getNewObjects()
    #Defatult: 1000
    newObjectsBatchSize: 1000

    #Velikost davky pri volani ArclibService.getAuditLog()
    #Defatult: 1000
    readLogBatchSize: 1000

    #Adresa a pristupove udaje do ArcLib API pro nacitani souboru
    address: http://ais-ap3.is.cuni.cz:8080
    user: abm-read
    password: <<not on git>>


    #Hodnoty timeout v sekundach pri volani ArcLib API
    #Defatult: 10
    #Timeout pro pripojeni k API
    connectTimeoutSeconds: 30
    #Timeout pro operaci cteni
    readTimeoutSeconds: 3600
    #Timeout pro operaci zapisu
#    writeTimeoutSeconds: 10


  #Nastaveni API
  api:
    #Zapne logovani vsech pozadavku a odpovedi
    #Default: true
    logPayload: true
    #Zapne validaci pozadavku na api
    #Default: false
    validateRequest: false
    #Zapne validaci odpovedi api
    #Default: true
    validateResponse: true

  #Nastaveni GUI
  gui:
    #Uzivatel pro testovani systemu mimo prostredi UK
    #fakeCasId: 1
    #Adresa na odhlaseni
    logoutUrl: https://ais.udauk.cuni.cz/logout

logging:
#Level pro logovani do konzole
#Default: TRACE
#  consoleLogThreshold: TRACE

#Jestli ma p6spy logger vypisovat do konzole
#Default: false
#  p6spy:
#    consoleEnabled: false

#Max velikost logoveho souboru, potom dojde k rolovani. Plati spolecne pro log aplikace i pro p6spy. 
#Default: 10MB
#  maxFileSize: 10MB

#Celkovy maximalni objem logovych souboru. Nula znemená bez omezení
#Default: 0
#  totalSizeCap: 0

abm-gui.yml:

server:
  port: 8090
  forward-headers-strategy: 'NATIVE'
  servlet:
    context-path: /abm-test
  tomcat:
    basedir: var/tomcat-gui
    accesslog:
      enabled: true

abm-api.yml:

server:
  port: 8091