Skip to content
Snippets Groups Projects
Select Git revision
  • main
1 result

storage_data.dart

Blame
  • storage_data.dart 7.48 KiB
    import 'dart:convert';
    
    class StorageData {
      static final StorageData _storages = StorageData._internal();
      late final List<dynamic> _data;
    
      /// Informace o úložištích ve formátu JSON
      ///
      /// Jednotlivé prvky jsou uspořádány dle priority, poslední je tedy nejobecnější.
      /// Všechny prvky jsou povinné, jejich hodnoty mohou být však prázdné.
      /// name - unikátní identifikátor, používá se pro ladění
      /// fqdn - hlavní hostname storage
      /// match_host - regex pro určení zda tyto data odpovídají danému hostovi
      /// match_path - regex pro zachycení dle cesty
      /// scpDirect - umožňuje kopírovat přímo mezi poli, nutný správně nastavený jailkit
      /// scpRemote - umožňuje kopírování metodou SCP z/na pole
      /// copy - podporuje normální kopírování, typicky do NFS
      /// nfsMounts - pole (první prvek primární) prefixů, které se používají pro připojení úložiště
      static const _jsonArray = r'''
        [
          {
            "name": "brno1-cerit",
            "fqdn": "storage-brno1-cerit.metacentrum.cz",
            "match_host": "^storage-brno1-cerit.*",
            "match_path": "^/(auto|storage)/brno1-cerit/.*",
            "scpDirect": false,
            "scpRemote": true,
            "copy": true,
            "nfsMounts": [ "/storage/brno1-cerit", "/auto/brno1-cerit" ]      
          },     
          {
            "name": "brno2",
            "fqdn": "storage-brno2.metacentrum.cz",
            "match_host": "^storage-brno2.*",
            "match_path": "^/(auto|storage)/brno2/.*",
            "scpDirect": true,
            "scpRemote": true,
            "copy": true,
            "nfsMounts": [ "/storage/brno2", "/auto/brno2" ]
          },
          {
            "name": "brno3-cerit",
            "fqdn": "storage-brno3-cerit.metacentrum.cz",
            "match_host": "^storage-brno3-cerit.*",
            "match_path": "^/(auto|storage)/brno3-cerit/.*",
            "scpDirect": false,
            "scpRemote": true,
            "copy": true,
            "nfsMounts": [ "/storage/brno3-cerit", "/auto/brno3-cerit" ]
          },      
          {
            "name": "brno11-elixir",
            "fqdn": "storage-brno11-elixir.metacentrum.cz",
            "match_host": "^storage-brno11-elixir.*",
            "match_path": "^/(auto|storage)/brno11-elixir/.*",
            "scpDirect": true,
            "scpRemote": true,
            "copy": true,
            "nfsMounts": [ "/storage/brno11-elixir", "/auto/brno11-elixir" ]
          },
          {
            "name": "brno12-cerit",
            "fqdn": "storage-brno12-cerit.metacentrum.cz",
            "match_host": "^storage-brno12-cerit.*",
            "match_path": "^/(auto|storage)/brno12-cerit/.*",
            "scpDirect": false,
            "scpRemote": true,
            "copy": true,
            "nfsMounts": [ "/storage/brno12-cerit", "/auto/brno12-cerit" ]
          },