From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id E91E9C275E for ; Tue, 23 Jan 2024 18:01:09 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 81A82B066 for ; Tue, 23 Jan 2024 18:01:09 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 23 Jan 2024 18:01:03 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 287CE49269 for ; Tue, 23 Jan 2024 18:01:03 +0100 (CET) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Tue, 23 Jan 2024 18:00:47 +0100 Message-Id: <20240123170053.490250-13-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240123170053.490250-1-a.lauterer@proxmox.com> References: <20240123170053.490250-1-a.lauterer@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL -1.418 Adjusted score from AWL reputation of From: address BAYES_50 0.8 Bayes spam probability is 40 to 60% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - WEIRD_QUOTING 0.001 Weird repeated double-quotation marks X-Mailman-Approved-At: Tue, 23 Jan 2024 18:23:31 +0100 Subject: [pve-devel] [PATCH v1 installer 12/18] auto-installer: add tests for answer file parsing X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jan 2024 17:01:10 -0000 By matching the resulting json to be passed to the low level installer against known good ones. The environment info was gathered from one of our AMD Epyc Rome test servers to have a realistic starting point. Signed-off-by: Aaron Lauterer --- proxmox-auto-installer/tests/parse-answer.rs | 102 ++++++++++++++++++ .../tests/resources/iso-info.json | 1 + .../tests/resources/locales.json | 1 + .../resources/parse_answer/disk_match.json | 29 +++++ .../resources/parse_answer/disk_match.toml | 14 +++ .../parse_answer/disk_match_all.json | 26 +++++ .../parse_answer/disk_match_all.toml | 16 +++ .../parse_answer/disk_match_any.json | 33 ++++++ .../parse_answer/disk_match_any.toml | 16 +++ .../tests/resources/parse_answer/minimal.json | 17 +++ .../tests/resources/parse_answer/minimal.toml | 14 +++ .../resources/parse_answer/nic_matching.json | 17 +++ .../resources/parse_answer/nic_matching.toml | 19 ++++ .../tests/resources/parse_answer/readme | 4 + .../resources/parse_answer/specific_nic.json | 17 +++ .../resources/parse_answer/specific_nic.toml | 19 ++++ .../tests/resources/parse_answer/zfs.json | 27 +++++ .../tests/resources/parse_answer/zfs.toml | 19 ++++ .../tests/resources/run-env-info.json | 1 + .../tests/resources/run-env-udev.json | 1 + 20 files changed, 393 insertions(+) create mode 100644 proxmox-auto-installer/tests/parse-answer.rs create mode 100644 proxmox-auto-installer/tests/resources/iso-info.json create mode 100644 proxmox-auto-installer/tests/resources/locales.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match_all.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match_all.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match_any.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/dis= k_match_any.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/min= imal.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/min= imal.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/nic= _matching.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/nic= _matching.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/rea= dme create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/spe= cific_nic.json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/spe= cific_nic.toml create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/zfs= .json create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/zfs= .toml create mode 100644 proxmox-auto-installer/tests/resources/run-env-info.json create mode 100644 proxmox-auto-installer/tests/resources/run-env-udev.json diff --git a/proxmox-auto-installer/tests/parse-answer.rs b/proxmox-auto-in= staller/tests/parse-answer.rs new file mode 100644 index 0000000..7dabe55 --- /dev/null +++ b/proxmox-auto-installer/tests/parse-answer.rs @@ -0,0 +1,102 @@ +use std::path::PathBuf; + +use serde_json::Value; +use std::fs; + +use proxmox_auto_installer::answer; +use proxmox_auto_installer::answer::Answer; +use proxmox_auto_installer::udevinfo::UdevInfo; +use proxmox_auto_installer::utils::parse_answer; + +use proxmox_installer_common::setup::{ + read_json, RuntimeInfo, LocaleInfo, SetupInfo, +}; + +fn get_test_resource_path() -> Result { + Ok(std::env::current_dir() + .expect("current dir failed") + .join("tests/resources")) +} +fn get_answer(path: PathBuf) -> Result { + let answer_raw =3D std::fs::read_to_string(&path).unwrap(); + let answer: answer::Answer =3D toml::from_str(&answer_raw) + .map_err(|err| format!("error parsing answer.toml: {err}")) + .unwrap(); + + Ok(answer) +} + +fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo= , UdevInfo) { + let installer_info: SetupInfo =3D { + let mut path =3D path.clone(); + path.push("iso-info.json"); + + read_json(&path).map_err(|err| format!("Failed to retrieve setup i= nfo: {err}")).unwrap() + }; + + let locale_info =3D { + let mut path =3D path.clone(); + path.push("locales.json"); + + read_json(&path).map_err(|err| format!("Failed to retrieve locale = info: {err}")).unwrap() + }; + + let mut runtime_info: RuntimeInfo =3D { + let mut path =3D path.clone(); + path.push("run-env-info.json"); + + read_json(&path) + .map_err(|err| format!("Failed to retrieve runtime environment= info: {err}")).unwrap() + }; + + let udev_info: UdevInfo =3D { + let mut path =3D path.clone(); + path.push("run-env-udev.json"); + + read_json(&path) + .map_err(|err| format!("Failed to retrieve udev info details: = {err}")) + .unwrap() + }; + runtime_info.disks.sort(); + if runtime_info.disks.is_empty() { + panic!("disk list is empty!"); + } + (installer_info, locale_info, runtime_info, udev_info) +} + +#[test] +fn test_parse_answers() { + let path =3D get_test_resource_path().unwrap(); + let (setup_info, locales, runtime_info, udev_info) =3D setup_test_basi= c(&path); + let mut tests_path =3D path.clone(); + tests_path.push("parse_answer"); + let test_dir =3D fs::read_dir(tests_path.clone()).unwrap(); + + for file_entry in test_dir { + let file =3D file_entry.unwrap(); + if !file.file_type().unwrap().is_file() || file.file_name() =3D=3D= "readme" { + continue; + } + let p =3D file.path(); + let name =3D p.file_stem().unwrap().to_str().unwrap(); + let extension =3D p.extension().unwrap().to_str().unwrap(); + if extension =3D=3D "toml" { + println!("Test: {name}"); + let answer =3D get_answer(p.clone()).unwrap(); + let config =3D &parse_answer(&answer, &udev_info, &runtime_inf= o, &locales, &setup_info).unwrap(); + println!("Selected disks: {:#?}", &config.disk_selection); + let config_json =3D serde_json::to_string(config); + let config: Value =3D serde_json::from_str(config_json.unwrap(= ).as_str()).unwrap(); + let mut path =3D tests_path.clone(); + path.push(format!("{name}.json")); + let compare_raw =3D std::fs::read_to_string(&path).unwrap(); + let compare: Value =3D serde_json::from_str(&compare_raw).unwr= ap(); + if config !=3D compare { + panic!( + "Test {} failed:\nleft: {:#?}\nright: {:#?}\n", + name, config, compare + ); + } + } + } +} diff --git a/proxmox-auto-installer/tests/resources/iso-info.json b/proxmox= -auto-installer/tests/resources/iso-info.json new file mode 100644 index 0000000..33cb79b --- /dev/null +++ b/proxmox-auto-installer/tests/resources/iso-info.json @@ -0,0 +1 @@ +{"iso-info":{"isoname":"proxmox-ve","isorelease":"2","product":"pve","prod= uctlong":"Proxmox VE","release":"8.0"},"locations":{"iso":"/cdrom","lib":"/= var/lib/proxmox-installer","pkg":"/cdrom/proxmox/packages/","run":"/run/pro= xmox-installer"},"product":"pve","product-cfg":{"bridged_network":1,"enable= _btrfs":1,"fullname":"Proxmox VE","port":"8006","product":"pve"},"run-env-c= ache-file":"/run/proxmox-installer/run-env-info.json"} diff --git a/proxmox-auto-installer/tests/resources/locales.json b/proxmox-= auto-installer/tests/resources/locales.json new file mode 100644 index 0000000..220a18c --- /dev/null +++ b/proxmox-auto-installer/tests/resources/locales.json @@ -0,0 +1 @@ +{"cczones":{"ad":{"Europe/Andorra":1},"ae":{"Asia/Dubai":1},"af":{"Asia/Ka= bul":1},"ag":{"America/Antigua":1},"ai":{"America/Anguilla":1},"al":{"Europ= e/Tirane":1},"am":{"Asia/Yerevan":1},"ao":{"Africa/Luanda":1},"aq":{"Antarc= tica/Casey":1,"Antarctica/Davis":1,"Antarctica/DumontDUrville":1,"Antarctic= a/Mawson":1,"Antarctica/McMurdo":1,"Antarctica/Palmer":1,"Antarctica/Rother= a":1,"Antarctica/Syowa":1,"Antarctica/Troll":1,"Antarctica/Vostok":1},"ar":= {"America/Argentina/Buenos_Aires":1,"America/Argentina/Catamarca":1,"Americ= a/Argentina/Cordoba":1,"America/Argentina/Jujuy":1,"America/Argentina/La_Ri= oja":1,"America/Argentina/Mendoza":1,"America/Argentina/Rio_Gallegos":1,"Am= erica/Argentina/Salta":1,"America/Argentina/San_Juan":1,"America/Argentina/= San_Luis":1,"America/Argentina/Tucuman":1,"America/Argentina/Ushuaia":1},"a= s":{"Pacific/Pago_Pago":1},"at":{"Europe/Vienna":1},"au":{"Antarctica/Macqu= arie":1,"Australia/Adelaide":1,"Australia/Brisbane":1,"Australia/Broken_Hil= l":1,"Australia/Darwin":1,"Australia/Eucla":1,"Australia/Hobart":1,"Austral= ia/Lindeman":1,"Australia/Lord_Howe":1,"Australia/Melbourne":1,"Australia/P= erth":1,"Australia/Sydney":1},"aw":{"America/Aruba":1},"ax":{"Europe/Marieh= amn":1},"az":{"Asia/Baku":1},"ba":{"Europe/Sarajevo":1},"bb":{"America/Barb= ados":1},"bd":{"Asia/Dhaka":1},"be":{"Europe/Brussels":1},"bf":{"Africa/Oua= gadougou":1},"bg":{"Europe/Sofia":1},"bh":{"Asia/Bahrain":1},"bi":{"Africa/= Bujumbura":1},"bj":{"Africa/Porto-Novo":1},"bl":{"America/St_Barthelemy":1}= ,"bm":{"Atlantic/Bermuda":1},"bn":{"Asia/Brunei":1},"bo":{"America/La_Paz":= 1},"bq":{"America/Kralendijk":1},"br":{"America/Araguaina":1,"America/Bahia= ":1,"America/Belem":1,"America/Boa_Vista":1,"America/Campo_Grande":1,"Ameri= ca/Cuiaba":1,"America/Eirunepe":1,"America/Fortaleza":1,"America/Maceio":1,= "America/Manaus":1,"America/Noronha":1,"America/Porto_Velho":1,"America/Rec= ife":1,"America/Rio_Branco":1,"America/Santarem":1,"America/Sao_Paulo":1},"= bs":{"America/Nassau":1},"bt":{"Asia/Thimphu":1},"bw":{"Africa/Gaborone":1}= ,"by":{"Europe/Minsk":1},"bz":{"America/Belize":1},"ca":{"America/Atikokan"= :1,"America/Blanc-Sablon":1,"America/Cambridge_Bay":1,"America/Creston":1,"= America/Dawson":1,"America/Dawson_Creek":1,"America/Edmonton":1,"America/Fo= rt_Nelson":1,"America/Glace_Bay":1,"America/Goose_Bay":1,"America/Halifax":= 1,"America/Inuvik":1,"America/Iqaluit":1,"America/Moncton":1,"America/Ranki= n_Inlet":1,"America/Regina":1,"America/Resolute":1,"America/St_Johns":1,"Am= erica/Swift_Current":1,"America/Toronto":1,"America/Vancouver":1,"America/W= hitehorse":1,"America/Winnipeg":1},"cc":{"Indian/Cocos":1},"cd":{"Africa/Ki= nshasa":1,"Africa/Lubumbashi":1},"cf":{"Africa/Bangui":1},"cg":{"Africa/Bra= zzaville":1},"ch":{"Europe/Zurich":1},"ci":{"Africa/Abidjan":1},"ck":{"Paci= fic/Rarotonga":1},"cl":{"America/Punta_Arenas":1,"America/Santiago":1,"Paci= fic/Easter":1},"cm":{"Africa/Douala":1},"cn":{"Asia/Shanghai":1,"Asia/Urumq= i":1},"co":{"America/Bogota":1},"cr":{"America/Costa_Rica":1},"cu":{"Americ= a/Havana":1},"cv":{"Atlantic/Cape_Verde":1},"cw":{"America/Curacao":1},"cx"= :{"Indian/Christmas":1},"cy":{"Asia/Famagusta":1,"Asia/Nicosia":1},"cz":{"E= urope/Prague":1},"de":{"Europe/Berlin":1,"Europe/Busingen":1},"dj":{"Africa= /Djibouti":1},"dk":{"Europe/Copenhagen":1},"dm":{"America/Dominica":1},"do"= :{"America/Santo_Domingo":1},"dz":{"Africa/Algiers":1},"ec":{"America/Guaya= quil":1,"Pacific/Galapagos":1},"ee":{"Europe/Tallinn":1},"eg":{"Africa/Cair= o":1},"eh":{"Africa/El_Aaiun":1},"er":{"Africa/Asmara":1},"es":{"Africa/Ceu= ta":1,"Atlantic/Canary":1,"Europe/Madrid":1},"et":{"Africa/Addis_Ababa":1},= "fi":{"Europe/Helsinki":1},"fj":{"Pacific/Fiji":1},"fk":{"Atlantic/Stanley"= :1},"fm":{"Pacific/Chuuk":1,"Pacific/Kosrae":1,"Pacific/Pohnpei":1},"fo":{"= Atlantic/Faroe":1},"fr":{"Europe/Paris":1},"ga":{"Africa/Libreville":1},"gb= ":{"Europe/London":1},"gd":{"America/Grenada":1},"ge":{"Asia/Tbilisi":1},"g= f":{"America/Cayenne":1},"gg":{"Europe/Guernsey":1},"gh":{"Africa/Accra":1}= ,"gi":{"Europe/Gibraltar":1},"gl":{"America/Danmarkshavn":1,"America/Nuuk":= 1,"America/Scoresbysund":1,"America/Thule":1},"gm":{"Africa/Banjul":1},"gn"= :{"Africa/Conakry":1},"gp":{"America/Guadeloupe":1},"gq":{"Africa/Malabo":1= },"gr":{"Europe/Athens":1},"gs":{"Atlantic/South_Georgia":1},"gt":{"America= /Guatemala":1},"gu":{"Pacific/Guam":1},"gw":{"Africa/Bissau":1},"gy":{"Amer= ica/Guyana":1},"hk":{"Asia/Hong_Kong":1},"hn":{"America/Tegucigalpa":1},"hr= ":{"Europe/Zagreb":1},"ht":{"America/Port-au-Prince":1},"hu":{"Europe/Budap= est":1},"id":{"Asia/Jakarta":1,"Asia/Jayapura":1,"Asia/Makassar":1,"Asia/Po= ntianak":1},"ie":{"Europe/Dublin":1},"il":{"Asia/Jerusalem":1},"im":{"Europ= e/Isle_of_Man":1},"in":{"Asia/Kolkata":1},"io":{"Indian/Chagos":1},"iq":{"A= sia/Baghdad":1},"ir":{"Asia/Tehran":1},"is":{"Atlantic/Reykjavik":1},"it":{= "Europe/Rome":1},"je":{"Europe/Jersey":1},"jm":{"America/Jamaica":1},"jo":{= "Asia/Amman":1},"jp":{"Asia/Tokyo":1},"ke":{"Africa/Nairobi":1},"kg":{"Asia= /Bishkek":1},"kh":{"Asia/Phnom_Penh":1},"ki":{"Pacific/Kanton":1,"Pacific/K= iritimati":1,"Pacific/Tarawa":1},"km":{"Indian/Comoro":1},"kn":{"America/St= _Kitts":1},"kp":{"Asia/Pyongyang":1},"kr":{"Asia/Seoul":1},"kw":{"Asia/Kuwa= it":1},"ky":{"America/Cayman":1},"kz":{"Asia/Almaty":1,"Asia/Aqtau":1,"Asia= /Aqtobe":1,"Asia/Atyrau":1,"Asia/Oral":1,"Asia/Qostanay":1,"Asia/Qyzylorda"= :1},"la":{"Asia/Vientiane":1},"lb":{"Asia/Beirut":1},"lc":{"America/St_Luci= a":1},"li":{"Europe/Vaduz":1},"lk":{"Asia/Colombo":1},"lr":{"Africa/Monrovi= a":1},"ls":{"Africa/Maseru":1},"lt":{"Europe/Vilnius":1},"lu":{"Europe/Luxe= mbourg":1},"lv":{"Europe/Riga":1},"ly":{"Africa/Tripoli":1},"ma":{"Africa/C= asablanca":1},"mc":{"Europe/Monaco":1},"md":{"Europe/Chisinau":1},"me":{"Eu= rope/Podgorica":1},"mf":{"America/Marigot":1},"mg":{"Indian/Antananarivo":1= },"mh":{"Pacific/Kwajalein":1,"Pacific/Majuro":1},"mk":{"Europe/Skopje":1},= "ml":{"Africa/Bamako":1},"mm":{"Asia/Yangon":1},"mn":{"Asia/Choibalsan":1,"= Asia/Hovd":1,"Asia/Ulaanbaatar":1},"mo":{"Asia/Macau":1},"mp":{"Pacific/Sai= pan":1},"mq":{"America/Martinique":1},"mr":{"Africa/Nouakchott":1},"ms":{"A= merica/Montserrat":1},"mt":{"Europe/Malta":1},"mu":{"Indian/Mauritius":1},"= mv":{"Indian/Maldives":1},"mw":{"Africa/Blantyre":1},"mx":{"America/Bahia_B= anderas":1,"America/Cancun":1,"America/Chihuahua":1,"America/Ciudad_Juarez"= :1,"America/Hermosillo":1,"America/Matamoros":1,"America/Mazatlan":1,"Ameri= ca/Merida":1,"America/Mexico_City":1,"America/Monterrey":1,"America/Ojinaga= ":1,"America/Tijuana":1},"my":{"Asia/Kuala_Lumpur":1,"Asia/Kuching":1},"mz"= :{"Africa/Maputo":1},"na":{"Africa/Windhoek":1},"nc":{"Pacific/Noumea":1},"= ne":{"Africa/Niamey":1},"nf":{"Pacific/Norfolk":1},"ng":{"Africa/Lagos":1},= "ni":{"America/Managua":1},"nl":{"Europe/Amsterdam":1},"no":{"Europe/Oslo":= 1},"np":{"Asia/Kathmandu":1},"nr":{"Pacific/Nauru":1},"nu":{"Pacific/Niue":= 1},"nz":{"Pacific/Auckland":1,"Pacific/Chatham":1},"om":{"Asia/Muscat":1},"= pa":{"America/Panama":1},"pe":{"America/Lima":1},"pf":{"Pacific/Gambier":1,= "Pacific/Marquesas":1,"Pacific/Tahiti":1},"pg":{"Pacific/Bougainville":1,"P= acific/Port_Moresby":1},"ph":{"Asia/Manila":1},"pk":{"Asia/Karachi":1},"pl"= :{"Europe/Warsaw":1},"pm":{"America/Miquelon":1},"pn":{"Pacific/Pitcairn":1= },"pr":{"America/Puerto_Rico":1},"ps":{"Asia/Gaza":1,"Asia/Hebron":1},"pt":= {"Atlantic/Azores":1,"Atlantic/Madeira":1,"Europe/Lisbon":1},"pw":{"Pacific= /Palau":1},"py":{"America/Asuncion":1},"qa":{"Asia/Qatar":1},"re":{"Indian/= Reunion":1},"ro":{"Europe/Bucharest":1},"rs":{"Europe/Belgrade":1},"ru":{"A= sia/Anadyr":1,"Asia/Barnaul":1,"Asia/Chita":1,"Asia/Irkutsk":1,"Asia/Kamcha= tka":1,"Asia/Khandyga":1,"Asia/Krasnoyarsk":1,"Asia/Magadan":1,"Asia/Novoku= znetsk":1,"Asia/Novosibirsk":1,"Asia/Omsk":1,"Asia/Sakhalin":1,"Asia/Sredne= kolymsk":1,"Asia/Tomsk":1,"Asia/Ust-Nera":1,"Asia/Vladivostok":1,"Asia/Yaku= tsk":1,"Asia/Yekaterinburg":1,"Europe/Astrakhan":1,"Europe/Kaliningrad":1,"= Europe/Kirov":1,"Europe/Moscow":1,"Europe/Samara":1,"Europe/Saratov":1,"Eur= ope/Ulyanovsk":1,"Europe/Volgograd":1},"rw":{"Africa/Kigali":1},"sa":{"Asia= /Riyadh":1},"sb":{"Pacific/Guadalcanal":1},"sc":{"Indian/Mahe":1},"sd":{"Af= rica/Khartoum":1},"se":{"Europe/Stockholm":1},"sg":{"Asia/Singapore":1},"sh= ":{"Atlantic/St_Helena":1},"si":{"Europe/Ljubljana":1},"sj":{"Arctic/Longye= arbyen":1},"sk":{"Europe/Bratislava":1},"sl":{"Africa/Freetown":1},"sm":{"E= urope/San_Marino":1},"sn":{"Africa/Dakar":1},"so":{"Africa/Mogadishu":1},"s= r":{"America/Paramaribo":1},"ss":{"Africa/Juba":1},"st":{"Africa/Sao_Tome":= 1},"sv":{"America/El_Salvador":1},"sx":{"America/Lower_Princes":1},"sy":{"A= sia/Damascus":1},"sz":{"Africa/Mbabane":1},"tc":{"America/Grand_Turk":1},"t= d":{"Africa/Ndjamena":1},"tf":{"Indian/Kerguelen":1},"tg":{"Africa/Lome":1}= ,"th":{"Asia/Bangkok":1},"tj":{"Asia/Dushanbe":1},"tk":{"Pacific/Fakaofo":1= },"tl":{"Asia/Dili":1},"tm":{"Asia/Ashgabat":1},"tn":{"Africa/Tunis":1},"to= ":{"Pacific/Tongatapu":1},"tr":{"Europe/Istanbul":1},"tt":{"America/Port_of= _Spain":1},"tv":{"Pacific/Funafuti":1},"tw":{"Asia/Taipei":1},"tz":{"Africa= /Dar_es_Salaam":1},"ua":{"Europe/Kyiv":1,"Europe/Simferopol":1},"ug":{"Afri= ca/Kampala":1},"um":{"Pacific/Midway":1,"Pacific/Wake":1},"us":{"America/Ad= ak":1,"America/Anchorage":1,"America/Boise":1,"America/Chicago":1,"America/= Denver":1,"America/Detroit":1,"America/Indiana/Indianapolis":1,"America/Ind= iana/Knox":1,"America/Indiana/Marengo":1,"America/Indiana/Petersburg":1,"Am= erica/Indiana/Tell_City":1,"America/Indiana/Vevay":1,"America/Indiana/Vince= nnes":1,"America/Indiana/Winamac":1,"America/Juneau":1,"America/Kentucky/Lo= uisville":1,"America/Kentucky/Monticello":1,"America/Los_Angeles":1,"Americ= a/Menominee":1,"America/Metlakatla":1,"America/New_York":1,"America/Nome":1= ,"America/North_Dakota/Beulah":1,"America/North_Dakota/Center":1,"America/N= orth_Dakota/New_Salem":1,"America/Phoenix":1,"America/Sitka":1,"America/Yak= utat":1,"Pacific/Honolulu":1},"uy":{"America/Montevideo":1},"uz":{"Asia/Sam= arkand":1,"Asia/Tashkent":1},"va":{"Europe/Vatican":1},"vc":{"America/St_Vi= ncent":1},"ve":{"America/Caracas":1},"vg":{"America/Tortola":1},"vi":{"Amer= ica/St_Thomas":1},"vn":{"Asia/Ho_Chi_Minh":1},"vu":{"Pacific/Efate":1},"wf"= :{"Pacific/Wallis":1},"ws":{"Pacific/Apia":1},"ye":{"Asia/Aden":1},"yt":{"I= ndian/Mayotte":1},"za":{"Africa/Johannesburg":1},"zm":{"Africa/Lusaka":1},"= zw":{"Africa/Harare":1}},"country":{"ad":{"kmap":"","mirror":"","name":"And= orra","zone":"Europe/Andorra"},"ae":{"kmap":"","mirror":"","name":"United A= rab Emirates","zone":"Asia/Dubai"},"af":{"kmap":"","mirror":"","name":"Afgh= anistan","zone":"Asia/Kabul"},"ag":{"kmap":"","mirror":"","name":"Antigua a= nd Barbuda","zone":"America/Antigua"},"ai":{"kmap":"","mirror":"","name":"A= nguilla","zone":"America/Anguilla"},"al":{"kmap":"","mirror":"","name":"Alb= ania","zone":"Europe/Tirane"},"am":{"kmap":"","mirror":"","name":"Armenia",= "zone":"Asia/Yerevan"},"ao":{"kmap":"","mirror":"","name":"Angola","zone":"= Africa/Luanda"},"aq":{"kmap":"","mirror":"","name":"Antarctica","zone":"Ant= arctica/McMurdo"},"ar":{"kmap":"","mirror":"","name":"Argentina","zone":"Am= erica/Argentina/Buenos_Aires"},"as":{"kmap":"","mirror":"","name":"American= Samoa","zone":"Pacific/Pago_Pago"},"at":{"kmap":"de","mirror":"ftp.at.debi= an.org","name":"Austria","zone":"Europe/Vienna"},"au":{"kmap":"","mirror":"= ftp.au.debian.org","name":"Australia","zone":"Australia/Lord_Howe"},"aw":{"= kmap":"","mirror":"","name":"Aruba","zone":"America/Aruba"},"ax":{"kmap":""= ,"mirror":"","name":"=C3=85land Islands","zone":"Europe/Mariehamn"},"az":{"= kmap":"","mirror":"","name":"Azerbaijan","zone":"Asia/Baku"},"ba":{"kmap":"= ","mirror":"","name":"Bosnia and Herzegovina","zone":"Europe/Sarajevo"},"bb= ":{"kmap":"","mirror":"","name":"Barbados","zone":"America/Barbados"},"bd":= {"kmap":"","mirror":"","name":"Bangladesh","zone":"Asia/Dhaka"},"be":{"kmap= ":"fr-be","mirror":"ftp.be.debian.org","name":"Belgium","zone":"Europe/Brus= sels"},"bf":{"kmap":"","mirror":"","name":"Burkina Faso","zone":"Africa/Oua= gadougou"},"bg":{"kmap":"","mirror":"ftp.bg.debian.org","name":"Bulgaria","= zone":"Europe/Sofia"},"bh":{"kmap":"","mirror":"","name":"Bahrain","zone":"= Asia/Bahrain"},"bi":{"kmap":"","mirror":"","name":"Burundi","zone":"Africa/= Bujumbura"},"bj":{"kmap":"","mirror":"","name":"Benin","zone":"Africa/Porto= -Novo"},"bl":{"kmap":"","mirror":"","name":"Saint Barth=C3=A9lemy","zone":"= America/St_Barthelemy"},"bm":{"kmap":"","mirror":"","name":"Bermuda","zone"= :"Atlantic/Bermuda"},"bn":{"kmap":"","mirror":"","name":"Brunei Darussalam"= ,"zone":"Asia/Brunei"},"bo":{"kmap":"","mirror":"","name":"Bolivia","zone":= "America/La_Paz"},"bq":{"kmap":"","mirror":"","name":"Bonaire, Sint Eustati= us and Saba","zone":"America/Kralendijk"},"br":{"kmap":"pt-br","mirror":"ft= p.br.debian.org","name":"Brazil","zone":"America/Noronha"},"bs":{"kmap":"",= "mirror":"","name":"Bahamas","zone":"America/Nassau"},"bt":{"kmap":"","mirr= or":"","name":"Bhutan","zone":"Asia/Thimphu"},"bv":{"kmap":"","mirror":"","= name":"Bouvet Island"},"bw":{"kmap":"","mirror":"","name":"Botswana","zone"= :"Africa/Gaborone"},"by":{"kmap":"","mirror":"","name":"Belarus","zone":"Eu= rope/Minsk"},"bz":{"kmap":"","mirror":"","name":"Belize","zone":"America/Be= lize"},"ca":{"kmap":"en-us","mirror":"ftp.ca.debian.org","name":"Canada","z= one":"America/St_Johns"},"cc":{"kmap":"","mirror":"","name":"Cocos (Keeling= ) Islands","zone":"Indian/Cocos"},"cd":{"kmap":"","mirror":"","name":"Congo= , The Democratic Republic of the","zone":"Africa/Kinshasa"},"cf":{"kmap":""= ,"mirror":"","name":"Central African Republic","zone":"Africa/Bangui"},"cg"= :{"kmap":"","mirror":"","name":"Congo","zone":"Africa/Brazzaville"},"ch":{"= kmap":"de-ch","mirror":"ftp.ch.debian.org","name":"Switzerland","zone":"Eur= ope/Zurich"},"ci":{"kmap":"","mirror":"","name":"C=C3=B4te d'Ivoire","zone"= :"Africa/Abidjan"},"ck":{"kmap":"","mirror":"","name":"Cook Islands","zone"= :"Pacific/Rarotonga"},"cl":{"kmap":"","mirror":"ftp.cl.debian.org","name":"= Chile","zone":"America/Santiago"},"cm":{"kmap":"","mirror":"","name":"Camer= oon","zone":"Africa/Douala"},"cn":{"kmap":"","mirror":"","name":"China","zo= ne":"Asia/Shanghai"},"co":{"kmap":"","mirror":"","name":"Colombia","zone":"= America/Bogota"},"cr":{"kmap":"","mirror":"","name":"Costa Rica","zone":"Am= erica/Costa_Rica"},"cu":{"kmap":"","mirror":"","name":"Cuba","zone":"Americ= a/Havana"},"cv":{"kmap":"","mirror":"","name":"Cabo Verde","zone":"Atlantic= /Cape_Verde"},"cw":{"kmap":"","mirror":"","name":"Cura=C3=A7ao","zone":"Ame= rica/Curacao"},"cx":{"kmap":"","mirror":"","name":"Christmas Island","zone"= :"Indian/Christmas"},"cy":{"kmap":"","mirror":"","name":"Cyprus","zone":"As= ia/Nicosia"},"cz":{"kmap":"","mirror":"ftp.cz.debian.org","name":"Czechia",= "zone":"Europe/Prague"},"de":{"kmap":"de","mirror":"ftp.de.debian.org","nam= e":"Germany","zone":"Europe/Berlin"},"dj":{"kmap":"","mirror":"","name":"Dj= ibouti","zone":"Africa/Djibouti"},"dk":{"kmap":"dk","mirror":"ftp.dk.debian= .org","name":"Denmark","zone":"Europe/Copenhagen"},"dm":{"kmap":"","mirror"= :"","name":"Dominica","zone":"America/Dominica"},"do":{"kmap":"","mirror":"= ","name":"Dominican Republic","zone":"America/Santo_Domingo"},"dz":{"kmap":= "","mirror":"","name":"Algeria","zone":"Africa/Algiers"},"ec":{"kmap":"","m= irror":"","name":"Ecuador","zone":"America/Guayaquil"},"ee":{"kmap":"","mir= ror":"ftp.ee.debian.org","name":"Estonia","zone":"Europe/Tallinn"},"eg":{"k= map":"","mirror":"","name":"Egypt","zone":"Africa/Cairo"},"eh":{"kmap":"","= mirror":"","name":"Western Sahara","zone":"Africa/El_Aaiun"},"er":{"kmap":"= ","mirror":"","name":"Eritrea","zone":"Africa/Asmara"},"es":{"kmap":"es","m= irror":"ftp.es.debian.org","name":"Spain","zone":"Europe/Madrid"},"et":{"km= ap":"","mirror":"","name":"Ethiopia","zone":"Africa/Addis_Ababa"},"fi":{"km= ap":"fi","mirror":"ftp.fi.debian.org","name":"Finland","zone":"Europe/Helsi= nki"},"fj":{"kmap":"","mirror":"","name":"Fiji","zone":"Pacific/Fiji"},"fk"= :{"kmap":"","mirror":"","name":"Falkland Islands (Malvinas)","zone":"Atlant= ic/Stanley"},"fm":{"kmap":"","mirror":"","name":"Micronesia, Federated Stat= es of","zone":"Pacific/Chuuk"},"fo":{"kmap":"","mirror":"","name":"Faroe Is= lands","zone":"Atlantic/Faroe"},"fr":{"kmap":"fr","mirror":"ftp.fr.debian.o= rg","name":"France","zone":"Europe/Paris"},"ga":{"kmap":"","mirror":"","nam= e":"Gabon","zone":"Africa/Libreville"},"gb":{"kmap":"en-gb","mirror":"ftp.u= k.debian.org","name":"United Kingdom","zone":"Europe/London"},"gd":{"kmap":= "","mirror":"","name":"Grenada","zone":"America/Grenada"},"ge":{"kmap":"","= mirror":"","name":"Georgia","zone":"Asia/Tbilisi"},"gf":{"kmap":"","mirror"= :"","name":"French Guiana","zone":"America/Cayenne"},"gg":{"kmap":"","mirro= r":"","name":"Guernsey","zone":"Europe/Guernsey"},"gh":{"kmap":"","mirror":= "","name":"Ghana","zone":"Africa/Accra"},"gi":{"kmap":"es","mirror":"","nam= e":"Gibraltar","zone":"Europe/Gibraltar"},"gl":{"kmap":"","mirror":"","name= ":"Greenland","zone":"America/Nuuk"},"gm":{"kmap":"","mirror":"","name":"Ga= mbia","zone":"Africa/Banjul"},"gn":{"kmap":"","mirror":"","name":"Guinea","= zone":"Africa/Conakry"},"gp":{"kmap":"","mirror":"","name":"Guadeloupe","zo= ne":"America/Guadeloupe"},"gq":{"kmap":"","mirror":"","name":"Equatorial Gu= inea","zone":"Africa/Malabo"},"gr":{"kmap":"","mirror":"ftp.gr.debian.org",= "name":"Greece","zone":"Europe/Athens"},"gs":{"kmap":"","mirror":"","name":= "South Georgia and the South Sandwich Islands","zone":"Atlantic/South_Georg= ia"},"gt":{"kmap":"","mirror":"","name":"Guatemala","zone":"America/Guatema= la"},"gu":{"kmap":"","mirror":"","name":"Guam","zone":"Pacific/Guam"},"gw":= {"kmap":"","mirror":"","name":"Guinea-Bissau","zone":"Africa/Bissau"},"gy":= {"kmap":"","mirror":"","name":"Guyana","zone":"America/Guyana"},"hk":{"kmap= ":"","mirror":"ftp.hk.debian.org","name":"Hong Kong","zone":"Asia/Hong_Kong= "},"hm":{"kmap":"","mirror":"","name":"Heard Island and McDonald Islands"},= "hn":{"kmap":"","mirror":"","name":"Honduras","zone":"America/Tegucigalpa"}= ,"hr":{"kmap":"","mirror":"ftp.hr.debian.org","name":"Croatia","zone":"Euro= pe/Zagreb"},"ht":{"kmap":"","mirror":"","name":"Haiti","zone":"America/Port= -au-Prince"},"hu":{"kmap":"hu","mirror":"ftp.hu.debian.org","name":"Hungary= ","zone":"Europe/Budapest"},"id":{"kmap":"","mirror":"","name":"Indonesia",= "zone":"Asia/Jakarta"},"ie":{"kmap":"","mirror":"ftp.ie.debian.org","name":= "Ireland","zone":"Europe/Dublin"},"il":{"kmap":"","mirror":"","name":"Israe= l","zone":"Asia/Jerusalem"},"im":{"kmap":"","mirror":"","name":"Isle of Man= ","zone":"Europe/Isle_of_Man"},"in":{"kmap":"","mirror":"","name":"India","= zone":"Asia/Kolkata"},"io":{"kmap":"","mirror":"","name":"British Indian Oc= ean Territory","zone":"Indian/Chagos"},"iq":{"kmap":"","mirror":"","name":"= Iraq","zone":"Asia/Baghdad"},"ir":{"kmap":"","mirror":"","name":"Iran","zon= e":"Asia/Tehran"},"is":{"kmap":"is","mirror":"ftp.is.debian.org","name":"Ic= eland","zone":"Atlantic/Reykjavik"},"it":{"kmap":"it","mirror":"ftp.it.debi= an.org","name":"Italy","zone":"Europe/Rome"},"je":{"kmap":"","mirror":"","n= ame":"Jersey","zone":"Europe/Jersey"},"jm":{"kmap":"","mirror":"","name":"J= amaica","zone":"America/Jamaica"},"jo":{"kmap":"","mirror":"","name":"Jorda= n","zone":"Asia/Amman"},"jp":{"kmap":"jp","mirror":"ftp.jp.debian.org","nam= e":"Japan","zone":"Asia/Tokyo"},"ke":{"kmap":"","mirror":"","name":"Kenya",= "zone":"Africa/Nairobi"},"kg":{"kmap":"","mirror":"","name":"Kyrgyzstan","z= one":"Asia/Bishkek"},"kh":{"kmap":"","mirror":"","name":"Cambodia","zone":"= Asia/Phnom_Penh"},"ki":{"kmap":"","mirror":"","name":"Kiribati","zone":"Pac= ific/Tarawa"},"km":{"kmap":"","mirror":"","name":"Comoros","zone":"Indian/C= omoro"},"kn":{"kmap":"","mirror":"","name":"Saint Kitts and Nevis","zone":"= America/St_Kitts"},"kp":{"kmap":"","mirror":"","name":"North Korea","zone":= "Asia/Pyongyang"},"kr":{"kmap":"","mirror":"ftp.kr.debian.org","name":"Sout= h Korea","zone":"Asia/Seoul"},"kw":{"kmap":"","mirror":"","name":"Kuwait","= zone":"Asia/Kuwait"},"ky":{"kmap":"","mirror":"","name":"Cayman Islands","z= one":"America/Cayman"},"kz":{"kmap":"","mirror":"","name":"Kazakhstan","zon= e":"Asia/Almaty"},"la":{"kmap":"","mirror":"","name":"Laos","zone":"Asia/Vi= entiane"},"lb":{"kmap":"","mirror":"","name":"Lebanon","zone":"Asia/Beirut"= },"lc":{"kmap":"","mirror":"","name":"Saint Lucia","zone":"America/St_Lucia= "},"li":{"kmap":"de-ch","mirror":"","name":"Liechtenstein","zone":"Europe/V= aduz"},"lk":{"kmap":"","mirror":"","name":"Sri Lanka","zone":"Asia/Colombo"= },"lr":{"kmap":"","mirror":"","name":"Liberia","zone":"Africa/Monrovia"},"l= s":{"kmap":"","mirror":"","name":"Lesotho","zone":"Africa/Maseru"},"lt":{"k= map":"lt","mirror":"","name":"Lithuania","zone":"Europe/Vilnius"},"lu":{"km= ap":"fr-ch","mirror":"","name":"Luxembourg","zone":"Europe/Luxembourg"},"lv= ":{"kmap":"","mirror":"","name":"Latvia","zone":"Europe/Riga"},"ly":{"kmap"= :"","mirror":"","name":"Libya","zone":"Africa/Tripoli"},"ma":{"kmap":"","mi= rror":"","name":"Morocco","zone":"Africa/Casablanca"},"mc":{"kmap":"","mirr= or":"","name":"Monaco","zone":"Europe/Monaco"},"md":{"kmap":"","mirror":"",= "name":"Moldova","zone":"Europe/Chisinau"},"me":{"kmap":"","mirror":"","nam= e":"Montenegro","zone":"Europe/Podgorica"},"mf":{"kmap":"","mirror":"","nam= e":"Saint Martin (French part)","zone":"America/Marigot"},"mg":{"kmap":"","= mirror":"","name":"Madagascar","zone":"Indian/Antananarivo"},"mh":{"kmap":"= ","mirror":"","name":"Marshall Islands","zone":"Pacific/Majuro"},"mk":{"kma= p":"mk","mirror":"","name":"North Macedonia","zone":"Europe/Skopje"},"ml":{= "kmap":"","mirror":"","name":"Mali","zone":"Africa/Bamako"},"mm":{"kmap":""= ,"mirror":"","name":"Myanmar","zone":"Asia/Yangon"},"mn":{"kmap":"","mirror= ":"","name":"Mongolia","zone":"Asia/Ulaanbaatar"},"mo":{"kmap":"","mirror":= "","name":"Macao","zone":"Asia/Macau"},"mp":{"kmap":"","mirror":"","name":"= Northern Mariana Islands","zone":"Pacific/Saipan"},"mq":{"kmap":"","mirror"= :"","name":"Martinique","zone":"America/Martinique"},"mr":{"kmap":"","mirro= r":"","name":"Mauritania","zone":"Africa/Nouakchott"},"ms":{"kmap":"","mirr= or":"","name":"Montserrat","zone":"America/Montserrat"},"mt":{"kmap":"","mi= rror":"","name":"Malta","zone":"Europe/Malta"},"mu":{"kmap":"","mirror":"",= "name":"Mauritius","zone":"Indian/Mauritius"},"mv":{"kmap":"","mirror":"","= name":"Maldives","zone":"Indian/Maldives"},"mw":{"kmap":"","mirror":"","nam= e":"Malawi","zone":"Africa/Blantyre"},"mx":{"kmap":"","mirror":"ftp.mx.debi= an.org","name":"Mexico","zone":"America/Mexico_City"},"my":{"kmap":"","mirr= or":"","name":"Malaysia","zone":"Asia/Kuala_Lumpur"},"mz":{"kmap":"","mirro= r":"","name":"Mozambique","zone":"Africa/Maputo"},"na":{"kmap":"","mirror":= "","name":"Namibia","zone":"Africa/Windhoek"},"nc":{"kmap":"","mirror":"","= name":"New Caledonia","zone":"Pacific/Noumea"},"ne":{"kmap":"","mirror":"",= "name":"Niger","zone":"Africa/Niamey"},"nf":{"kmap":"","mirror":"","name":"= Norfolk Island","zone":"Pacific/Norfolk"},"ng":{"kmap":"","mirror":"","name= ":"Nigeria","zone":"Africa/Lagos"},"ni":{"kmap":"","mirror":"","name":"Nica= ragua","zone":"America/Managua"},"nl":{"kmap":"en-us","mirror":"ftp.nl.debi= an.org","name":"Netherlands","zone":"Europe/Amsterdam"},"no":{"kmap":"no","= mirror":"ftp.no.debian.org","name":"Norway","zone":"Europe/Oslo"},"np":{"km= ap":"","mirror":"","name":"Nepal","zone":"Asia/Kathmandu"},"nr":{"kmap":"",= "mirror":"","name":"Nauru","zone":"Pacific/Nauru"},"nu":{"kmap":"","mirror"= :"","name":"Niue","zone":"Pacific/Niue"},"nz":{"kmap":"","mirror":"ftp.nz.d= ebian.org","name":"New Zealand","zone":"Pacific/Auckland"},"om":{"kmap":"",= "mirror":"","name":"Oman","zone":"Asia/Muscat"},"pa":{"kmap":"","mirror":""= ,"name":"Panama","zone":"America/Panama"},"pe":{"kmap":"","mirror":"","name= ":"Peru","zone":"America/Lima"},"pf":{"kmap":"","mirror":"","name":"French = Polynesia","zone":"Pacific/Tahiti"},"pg":{"kmap":"","mirror":"","name":"Pap= ua New Guinea","zone":"Pacific/Port_Moresby"},"ph":{"kmap":"","mirror":"","= name":"Philippines","zone":"Asia/Manila"},"pk":{"kmap":"","mirror":"","name= ":"Pakistan","zone":"Asia/Karachi"},"pl":{"kmap":"pl","mirror":"ftp.pl.debi= an.org","name":"Poland","zone":"Europe/Warsaw"},"pm":{"kmap":"","mirror":""= ,"name":"Saint Pierre and Miquelon","zone":"America/Miquelon"},"pn":{"kmap"= :"","mirror":"","name":"Pitcairn","zone":"Pacific/Pitcairn"},"pr":{"kmap":"= ","mirror":"","name":"Puerto Rico","zone":"America/Puerto_Rico"},"ps":{"kma= p":"","mirror":"","name":"Palestine, State of","zone":"Asia/Gaza"},"pt":{"k= map":"pt","mirror":"ftp.pt.debian.org","name":"Portugal","zone":"Europe/Lis= bon"},"pw":{"kmap":"","mirror":"","name":"Palau","zone":"Pacific/Palau"},"p= y":{"kmap":"","mirror":"","name":"Paraguay","zone":"America/Asuncion"},"qa"= :{"kmap":"","mirror":"","name":"Qatar","zone":"Asia/Qatar"},"re":{"kmap":""= ,"mirror":"","name":"R=C3=A9union","zone":"Indian/Reunion"},"ro":{"kmap":""= ,"mirror":"ftp.ro.debian.org","name":"Romania","zone":"Europe/Bucharest"},"= rs":{"kmap":"","mirror":"","name":"Serbia","zone":"Europe/Belgrade"},"ru":{= "kmap":"","mirror":"ftp.ru.debian.org","name":"Russian Federation","zone":"= Europe/Kaliningrad"},"rw":{"kmap":"","mirror":"","name":"Rwanda","zone":"Af= rica/Kigali"},"sa":{"kmap":"","mirror":"","name":"Saudi Arabia","zone":"Asi= a/Riyadh"},"sb":{"kmap":"","mirror":"","name":"Solomon Islands","zone":"Pac= ific/Guadalcanal"},"sc":{"kmap":"","mirror":"","name":"Seychelles","zone":"= Indian/Mahe"},"sd":{"kmap":"","mirror":"","name":"Sudan","zone":"Africa/Kha= rtoum"},"se":{"kmap":"","mirror":"ftp.se.debian.org","name":"Sweden","zone"= :"Europe/Stockholm"},"sg":{"kmap":"","mirror":"","name":"Singapore","zone":= "Asia/Singapore"},"sh":{"kmap":"","mirror":"","name":"Saint Helena, Ascensi= on and Tristan da Cunha","zone":"Atlantic/St_Helena"},"si":{"kmap":"si","mi= rror":"ftp.si.debian.org","name":"Slovenia","zone":"Europe/Ljubljana"},"sj"= :{"kmap":"","mirror":"","name":"Svalbard and Jan Mayen","zone":"Arctic/Long= yearbyen"},"sk":{"kmap":"","mirror":"ftp.sk.debian.org","name":"Slovakia","= zone":"Europe/Bratislava"},"sl":{"kmap":"","mirror":"","name":"Sierra Leone= ","zone":"Africa/Freetown"},"sm":{"kmap":"","mirror":"","name":"San Marino"= ,"zone":"Europe/San_Marino"},"sn":{"kmap":"","mirror":"","name":"Senegal","= zone":"Africa/Dakar"},"so":{"kmap":"","mirror":"","name":"Somalia","zone":"= Africa/Mogadishu"},"sr":{"kmap":"","mirror":"","name":"Suriname","zone":"Am= erica/Paramaribo"},"ss":{"kmap":"","mirror":"","name":"South Sudan","zone":= "Africa/Juba"},"st":{"kmap":"","mirror":"","name":"Sao Tome and Principe","= zone":"Africa/Sao_Tome"},"sv":{"kmap":"","mirror":"","name":"El Salvador","= zone":"America/El_Salvador"},"sx":{"kmap":"","mirror":"","name":"Sint Maart= en (Dutch part)","zone":"America/Lower_Princes"},"sy":{"kmap":"","mirror":"= ","name":"Syria","zone":"Asia/Damascus"},"sz":{"kmap":"","mirror":"","name"= :"Eswatini","zone":"Africa/Mbabane"},"tc":{"kmap":"","mirror":"","name":"Tu= rks and Caicos Islands","zone":"America/Grand_Turk"},"td":{"kmap":"","mirro= r":"","name":"Chad","zone":"Africa/Ndjamena"},"tf":{"kmap":"","mirror":"","= name":"French Southern Territories","zone":"Indian/Kerguelen"},"tg":{"kmap"= :"","mirror":"","name":"Togo","zone":"Africa/Lome"},"th":{"kmap":"","mirror= ":"","name":"Thailand","zone":"Asia/Bangkok"},"tj":{"kmap":"","mirror":"","= name":"Tajikistan","zone":"Asia/Dushanbe"},"tk":{"kmap":"","mirror":"","nam= e":"Tokelau","zone":"Pacific/Fakaofo"},"tl":{"kmap":"","mirror":"","name":"= Timor-Leste","zone":"Asia/Dili"},"tm":{"kmap":"","mirror":"","name":"Turkme= nistan","zone":"Asia/Ashgabat"},"tn":{"kmap":"","mirror":"","name":"Tunisia= ","zone":"Africa/Tunis"},"to":{"kmap":"","mirror":"","name":"Tonga","zone":= "Pacific/Tongatapu"},"tr":{"kmap":"","mirror":"ftp.tr.debian.org","name":"T= =C3=BCrkiye","zone":"Europe/Istanbul"},"tt":{"kmap":"","mirror":"","name":"= Trinidad and Tobago","zone":"America/Port_of_Spain"},"tv":{"kmap":"","mirro= r":"","name":"Tuvalu","zone":"Pacific/Funafuti"},"tw":{"kmap":"","mirror":"= ftp.tw.debian.org","name":"Taiwan","zone":"Asia/Taipei"},"tz":{"kmap":"","m= irror":"","name":"Tanzania","zone":"Africa/Dar_es_Salaam"},"ua":{"kmap":"",= "mirror":"","name":"Ukraine","zone":"Europe/Simferopol"},"ug":{"kmap":"","m= irror":"","name":"Uganda","zone":"Africa/Kampala"},"um":{"kmap":"","mirror"= :"","name":"United States Minor Outlying Islands","zone":"Pacific/Midway"},= "us":{"kmap":"en-us","mirror":"ftp.us.debian.org","name":"United States","z= one":"America/New_York"},"uy":{"kmap":"","mirror":"","name":"Uruguay","zone= ":"America/Montevideo"},"uz":{"kmap":"","mirror":"","name":"Uzbekistan","zo= ne":"Asia/Samarkand"},"va":{"kmap":"it","mirror":"","name":"Holy See (Vatic= an City State)","zone":"Europe/Vatican"},"vc":{"kmap":"","mirror":"","name"= :"Saint Vincent and the Grenadines","zone":"America/St_Vincent"},"ve":{"kma= p":"","mirror":"","name":"Venezuela","zone":"America/Caracas"},"vg":{"kmap"= :"","mirror":"","name":"Virgin Islands, British","zone":"America/Tortola"},= "vi":{"kmap":"","mirror":"","name":"Virgin Islands, U.S.","zone":"America/S= t_Thomas"},"vn":{"kmap":"","mirror":"","name":"Vietnam","zone":"Asia/Ho_Chi= _Minh"},"vu":{"kmap":"","mirror":"","name":"Vanuatu","zone":"Pacific/Efate"= },"wf":{"kmap":"","mirror":"","name":"Wallis and Futuna","zone":"Pacific/Wa= llis"},"ws":{"kmap":"","mirror":"","name":"Samoa","zone":"Pacific/Apia"},"y= e":{"kmap":"","mirror":"","name":"Yemen","zone":"Asia/Aden"},"yt":{"kmap":"= ","mirror":"","name":"Mayotte","zone":"Indian/Mayotte"},"za":{"kmap":"","mi= rror":"","name":"South Africa","zone":"Africa/Johannesburg"},"zm":{"kmap":"= ","mirror":"","name":"Zambia","zone":"Africa/Lusaka"},"zw":{"kmap":"","mirr= or":"","name":"Zimbabwe","zone":"Africa/Harare"}},"countryhash":{"afghanist= an":"af","albania":"al","algeria":"dz","american samoa":"as","andorra":"ad"= ,"angola":"ao","anguilla":"ai","antarctica":"aq","antigua and barbuda":"ag"= ,"argentina":"ar","armenia":"am","aruba":"aw","australia":"au","austria":"a= t","azerbaijan":"az","bahamas":"bs","bahrain":"bh","bangladesh":"bd","barba= dos":"bb","belarus":"by","belgium":"be","belize":"bz","benin":"bj","bermuda= ":"bm","bhutan":"bt","bolivia":"bo","bonaire, sint eustatius and saba":"bq"= ,"bosnia and herzegovina":"ba","botswana":"bw","bouvet island":"bv","brazil= ":"br","british indian ocean territory":"io","brunei darussalam":"bn","bulg= aria":"bg","burkina faso":"bf","burundi":"bi","cabo verde":"cv","cambodia":= "kh","cameroon":"cm","canada":"ca","cayman islands":"ky","central african r= epublic":"cf","chad":"td","chile":"cl","china":"cn","christmas island":"cx"= ,"cocos (keeling) islands":"cc","colombia":"co","comoros":"km","congo":"cg"= ,"congo, the democratic republic of the":"cd","cook islands":"ck","costa ri= ca":"cr","croatia":"hr","cuba":"cu","cura=C3=A7ao":"cw","cyprus":"cy","czec= hia":"cz","c=C3=B4te d'ivoire":"ci","denmark":"dk","djibouti":"dj","dominic= a":"dm","dominican republic":"do","ecuador":"ec","egypt":"eg","el salvador"= :"sv","equatorial guinea":"gq","eritrea":"er","estonia":"ee","eswatini":"sz= ","ethiopia":"et","falkland islands (malvinas)":"fk","faroe islands":"fo","= fiji":"fj","finland":"fi","france":"fr","french guiana":"gf","french polyne= sia":"pf","french southern territories":"tf","gabon":"ga","gambia":"gm","ge= orgia":"ge","germany":"de","ghana":"gh","gibraltar":"gi","greece":"gr","gre= enland":"gl","grenada":"gd","guadeloupe":"gp","guam":"gu","guatemala":"gt",= "guernsey":"gg","guinea":"gn","guinea-bissau":"gw","guyana":"gy","haiti":"h= t","heard island and mcdonald islands":"hm","holy see (vatican city state)"= :"va","honduras":"hn","hong kong":"hk","hungary":"hu","iceland":"is","india= ":"in","indonesia":"id","iran":"ir","iraq":"iq","ireland":"ie","isle of man= ":"im","israel":"il","italy":"it","jamaica":"jm","japan":"jp","jersey":"je"= ,"jordan":"jo","kazakhstan":"kz","kenya":"ke","kiribati":"ki","kuwait":"kw"= ,"kyrgyzstan":"kg","laos":"la","latvia":"lv","lebanon":"lb","lesotho":"ls",= "liberia":"lr","libya":"ly","liechtenstein":"li","lithuania":"lt","luxembou= rg":"lu","macao":"mo","madagascar":"mg","malawi":"mw","malaysia":"my","mald= ives":"mv","mali":"ml","malta":"mt","marshall islands":"mh","martinique":"m= q","mauritania":"mr","mauritius":"mu","mayotte":"yt","mexico":"mx","microne= sia, federated states of":"fm","moldova":"md","monaco":"mc","mongolia":"mn"= ,"montenegro":"me","montserrat":"ms","morocco":"ma","mozambique":"mz","myan= mar":"mm","namibia":"na","nauru":"nr","nepal":"np","netherlands":"nl","new = caledonia":"nc","new zealand":"nz","nicaragua":"ni","niger":"ne","nigeria":= "ng","niue":"nu","norfolk island":"nf","north korea":"kp","north macedonia"= :"mk","northern mariana islands":"mp","norway":"no","oman":"om","pakistan":= "pk","palau":"pw","palestine, state of":"ps","panama":"pa","papua new guine= a":"pg","paraguay":"py","peru":"pe","philippines":"ph","pitcairn":"pn","pol= and":"pl","portugal":"pt","puerto rico":"pr","qatar":"qa","romania":"ro","r= ussian federation":"ru","rwanda":"rw","r=C3=A9union":"re","saint barth=C3= =A9lemy":"bl","saint helena, ascension and tristan da cunha":"sh","saint ki= tts and nevis":"kn","saint lucia":"lc","saint martin (french part)":"mf","s= aint pierre and miquelon":"pm","saint vincent and the grenadines":"vc","sam= oa":"ws","san marino":"sm","sao tome and principe":"st","saudi arabia":"sa"= ,"senegal":"sn","serbia":"rs","seychelles":"sc","sierra leone":"sl","singap= ore":"sg","sint maarten (dutch part)":"sx","slovakia":"sk","slovenia":"si",= "solomon islands":"sb","somalia":"so","south africa":"za","south georgia an= d the south sandwich islands":"gs","south korea":"kr","south sudan":"ss","s= pain":"es","sri lanka":"lk","sudan":"sd","suriname":"sr","svalbard and jan = mayen":"sj","sweden":"se","switzerland":"ch","syria":"sy","taiwan":"tw","ta= jikistan":"tj","tanzania":"tz","thailand":"th","timor-leste":"tl","togo":"t= g","tokelau":"tk","tonga":"to","trinidad and tobago":"tt","tunisia":"tn","t= urkmenistan":"tm","turks and caicos islands":"tc","tuvalu":"tv","t=C3=BCrki= ye":"tr","uganda":"ug","ukraine":"ua","united arab emirates":"ae","united k= ingdom":"gb","united states":"us","united states minor outlying islands":"u= m","uruguay":"uy","uzbekistan":"uz","vanuatu":"vu","venezuela":"ve","vietna= m":"vn","virgin islands, british":"vg","virgin islands, u.s.":"vi","wallis = and futuna":"wf","western sahara":"eh","yemen":"ye","zambia":"zm","zimbabwe= ":"zw","=C3=A5land islands":"ax"},"kmap":{"de":{"console":"qwertz/de-latin1= -nodeadkeys.kmap.gz","kvm":"de","name":"German","x11":"de","x11var":"nodead= keys"},"de-ch":{"console":"qwertz/sg-latin1.kmap.gz","kvm":"de-ch","name":"= Swiss-German","x11":"ch","x11var":"de_nodeadkeys"},"dk":{"console":"qwerty/= dk-latin1.kmap.gz","kvm":"da","name":"Danish","x11":"dk","x11var":"nodeadke= ys"},"en-gb":{"console":"qwerty/uk.kmap.gz","kvm":"en-gb","name":"United Ki= ngdom","x11":"gb","x11var":""},"en-us":{"console":"qwerty/us-latin1.kmap.gz= ","kvm":"en-us","name":"U.S. English","x11":"us","x11var":""},"es":{"consol= e":"qwerty/es.kmap.gz","kvm":"es","name":"Spanish","x11":"es","x11var":"nod= eadkeys"},"fi":{"console":"qwerty/fi-latin1.kmap.gz","kvm":"fi","name":"Fin= nish","x11":"fi","x11var":"nodeadkeys"},"fr":{"console":"azerty/fr-latin1.k= map.gz","kvm":"fr","name":"French","x11":"fr","x11var":"nodeadkeys"},"fr-be= ":{"console":"azerty/be2-latin1.kmap.gz","kvm":"fr-be","name":"Belgium-Fren= ch","x11":"be","x11var":"nodeadkeys"},"fr-ca":{"console":"qwerty/cf.kmap.gz= ","kvm":"fr-ca","name":"Canada-French","x11":"ca","x11var":"fr-legacy"},"fr= -ch":{"console":"qwertz/fr_CH-latin1.kmap.gz","kvm":"fr-ch","name":"Swiss-F= rench","x11":"ch","x11var":"fr_nodeadkeys"},"hu":{"console":"qwertz/hu.kmap= .gz","kvm":"hu","name":"Hungarian","x11":"hu","x11var":""},"is":{"console":= "qwerty/is-latin1.kmap.gz","kvm":"is","name":"Icelandic","x11":"is","x11var= ":"nodeadkeys"},"it":{"console":"qwerty/it2.kmap.gz","kvm":"it","name":"Ita= lian","x11":"it","x11var":"nodeadkeys"},"jp":{"console":"qwerty/jp106.kmap.= gz","kvm":"ja","name":"Japanese","x11":"jp","x11var":""},"lt":{"console":"q= werty/lt.kmap.gz","kvm":"lt","name":"Lithuanian","x11":"lt","x11var":"std"}= ,"mk":{"console":"qwerty/mk.kmap.gz","kvm":"mk","name":"Macedonian","x11":"= mk","x11var":"nodeadkeys"},"nl":{"console":"qwerty/nl.kmap.gz","kvm":"nl","= name":"Dutch","x11":"nl","x11var":""},"no":{"console":"qwerty/no-latin1.kma= p.gz","kvm":"no","name":"Norwegian","x11":"no","x11var":"nodeadkeys"},"pl":= {"console":"qwerty/pl.kmap.gz","kvm":"pl","name":"Polish","x11":"pl","x11va= r":""},"pt":{"console":"qwerty/pt-latin1.kmap.gz","kvm":"pt","name":"Portug= uese","x11":"pt","x11var":"nodeadkeys"},"pt-br":{"console":"qwerty/br-latin= 1.kmap.gz","kvm":"pt-br","name":"Brazil-Portuguese","x11":"br","x11var":"no= deadkeys"},"se":{"console":"qwerty/se-latin1.kmap.gz","kvm":"sv","name":"Sw= edish","x11":"se","x11var":"nodeadkeys"},"si":{"console":"qwertz/slovene.km= ap.gz","kvm":"sl","name":"Slovenian","x11":"si","x11var":""},"tr":{"console= ":"qwerty/trq.kmap.gz","kvm":"tr","name":"Turkish","x11":"tr","x11var":""}}= ,"kmaphash":{"Belgium-French":"fr-be","Brazil-Portuguese":"pt-br","Canada-F= rench":"fr-ca","Danish":"dk","Dutch":"nl","Finnish":"fi","French":"fr","Ger= man":"de","Hungarian":"hu","Icelandic":"is","Italian":"it","Japanese":"jp",= "Lithuanian":"lt","Macedonian":"mk","Norwegian":"no","Polish":"pl","Portugu= ese":"pt","Slovenian":"si","Spanish":"es","Swedish":"se","Swiss-French":"fr= -ch","Swiss-German":"de-ch","Turkish":"tr","U.S. English":"en-us","United K= ingdom":"en-gb"},"zones":{"Africa/Abidjan":1,"Africa/Accra":1,"Africa/Addis= _Ababa":1,"Africa/Algiers":1,"Africa/Asmara":1,"Africa/Bamako":1,"Africa/Ba= ngui":1,"Africa/Banjul":1,"Africa/Bissau":1,"Africa/Blantyre":1,"Africa/Bra= zzaville":1,"Africa/Bujumbura":1,"Africa/Cairo":1,"Africa/Casablanca":1,"Af= rica/Ceuta":1,"Africa/Conakry":1,"Africa/Dakar":1,"Africa/Dar_es_Salaam":1,= "Africa/Djibouti":1,"Africa/Douala":1,"Africa/El_Aaiun":1,"Africa/Freetown"= :1,"Africa/Gaborone":1,"Africa/Harare":1,"Africa/Johannesburg":1,"Africa/Ju= ba":1,"Africa/Kampala":1,"Africa/Khartoum":1,"Africa/Kigali":1,"Africa/Kins= hasa":1,"Africa/Lagos":1,"Africa/Libreville":1,"Africa/Lome":1,"Africa/Luan= da":1,"Africa/Lubumbashi":1,"Africa/Lusaka":1,"Africa/Malabo":1,"Africa/Map= uto":1,"Africa/Maseru":1,"Africa/Mbabane":1,"Africa/Mogadishu":1,"Africa/Mo= nrovia":1,"Africa/Nairobi":1,"Africa/Ndjamena":1,"Africa/Niamey":1,"Africa/= Nouakchott":1,"Africa/Ouagadougou":1,"Africa/Porto-Novo":1,"Africa/Sao_Tome= ":1,"Africa/Tripoli":1,"Africa/Tunis":1,"Africa/Windhoek":1,"America/Adak":= 1,"America/Anchorage":1,"America/Anguilla":1,"America/Antigua":1,"America/A= raguaina":1,"America/Argentina/Buenos_Aires":1,"America/Argentina/Catamarca= ":1,"America/Argentina/Cordoba":1,"America/Argentina/Jujuy":1,"America/Arge= ntina/La_Rioja":1,"America/Argentina/Mendoza":1,"America/Argentina/Rio_Gall= egos":1,"America/Argentina/Salta":1,"America/Argentina/San_Juan":1,"America= /Argentina/San_Luis":1,"America/Argentina/Tucuman":1,"America/Argentina/Ush= uaia":1,"America/Aruba":1,"America/Asuncion":1,"America/Atikokan":1,"Americ= a/Bahia":1,"America/Bahia_Banderas":1,"America/Barbados":1,"America/Belem":= 1,"America/Belize":1,"America/Blanc-Sablon":1,"America/Boa_Vista":1,"Americ= a/Bogota":1,"America/Boise":1,"America/Cambridge_Bay":1,"America/Campo_Gran= de":1,"America/Cancun":1,"America/Caracas":1,"America/Cayenne":1,"America/C= ayman":1,"America/Chicago":1,"America/Chihuahua":1,"America/Ciudad_Juarez":= 1,"America/Costa_Rica":1,"America/Creston":1,"America/Cuiaba":1,"America/Cu= racao":1,"America/Danmarkshavn":1,"America/Dawson":1,"America/Dawson_Creek"= :1,"America/Denver":1,"America/Detroit":1,"America/Dominica":1,"America/Edm= onton":1,"America/Eirunepe":1,"America/El_Salvador":1,"America/Fort_Nelson"= :1,"America/Fortaleza":1,"America/Glace_Bay":1,"America/Goose_Bay":1,"Ameri= ca/Grand_Turk":1,"America/Grenada":1,"America/Guadeloupe":1,"America/Guatem= ala":1,"America/Guayaquil":1,"America/Guyana":1,"America/Halifax":1,"Americ= a/Havana":1,"America/Hermosillo":1,"America/Indiana/Indianapolis":1,"Americ= a/Indiana/Knox":1,"America/Indiana/Marengo":1,"America/Indiana/Petersburg":= 1,"America/Indiana/Tell_City":1,"America/Indiana/Vevay":1,"America/Indiana/= Vincennes":1,"America/Indiana/Winamac":1,"America/Inuvik":1,"America/Iqalui= t":1,"America/Jamaica":1,"America/Juneau":1,"America/Kentucky/Louisville":1= ,"America/Kentucky/Monticello":1,"America/Kralendijk":1,"America/La_Paz":1,= "America/Lima":1,"America/Los_Angeles":1,"America/Lower_Princes":1,"America= /Maceio":1,"America/Managua":1,"America/Manaus":1,"America/Marigot":1,"Amer= ica/Martinique":1,"America/Matamoros":1,"America/Mazatlan":1,"America/Menom= inee":1,"America/Merida":1,"America/Metlakatla":1,"America/Mexico_City":1,"= America/Miquelon":1,"America/Moncton":1,"America/Monterrey":1,"America/Mont= evideo":1,"America/Montserrat":1,"America/Nassau":1,"America/New_York":1,"A= merica/Nome":1,"America/Noronha":1,"America/North_Dakota/Beulah":1,"America= /North_Dakota/Center":1,"America/North_Dakota/New_Salem":1,"America/Nuuk":1= ,"America/Ojinaga":1,"America/Panama":1,"America/Paramaribo":1,"America/Pho= enix":1,"America/Port-au-Prince":1,"America/Port_of_Spain":1,"America/Porto= _Velho":1,"America/Puerto_Rico":1,"America/Punta_Arenas":1,"America/Rankin_= Inlet":1,"America/Recife":1,"America/Regina":1,"America/Resolute":1,"Americ= a/Rio_Branco":1,"America/Santarem":1,"America/Santiago":1,"America/Santo_Do= mingo":1,"America/Sao_Paulo":1,"America/Scoresbysund":1,"America/Sitka":1,"= America/St_Barthelemy":1,"America/St_Johns":1,"America/St_Kitts":1,"America= /St_Lucia":1,"America/St_Thomas":1,"America/St_Vincent":1,"America/Swift_Cu= rrent":1,"America/Tegucigalpa":1,"America/Thule":1,"America/Tijuana":1,"Ame= rica/Toronto":1,"America/Tortola":1,"America/Vancouver":1,"America/Whitehor= se":1,"America/Winnipeg":1,"America/Yakutat":1,"Antarctica/Casey":1,"Antarc= tica/Davis":1,"Antarctica/DumontDUrville":1,"Antarctica/Macquarie":1,"Antar= ctica/Mawson":1,"Antarctica/McMurdo":1,"Antarctica/Palmer":1,"Antarctica/Ro= thera":1,"Antarctica/Syowa":1,"Antarctica/Troll":1,"Antarctica/Vostok":1,"A= rctic/Longyearbyen":1,"Asia/Aden":1,"Asia/Almaty":1,"Asia/Amman":1,"Asia/An= adyr":1,"Asia/Aqtau":1,"Asia/Aqtobe":1,"Asia/Ashgabat":1,"Asia/Atyrau":1,"A= sia/Baghdad":1,"Asia/Bahrain":1,"Asia/Baku":1,"Asia/Bangkok":1,"Asia/Barnau= l":1,"Asia/Beirut":1,"Asia/Bishkek":1,"Asia/Brunei":1,"Asia/Chita":1,"Asia/= Choibalsan":1,"Asia/Colombo":1,"Asia/Damascus":1,"Asia/Dhaka":1,"Asia/Dili"= :1,"Asia/Dubai":1,"Asia/Dushanbe":1,"Asia/Famagusta":1,"Asia/Gaza":1,"Asia/= Hebron":1,"Asia/Ho_Chi_Minh":1,"Asia/Hong_Kong":1,"Asia/Hovd":1,"Asia/Irkut= sk":1,"Asia/Jakarta":1,"Asia/Jayapura":1,"Asia/Jerusalem":1,"Asia/Kabul":1,= "Asia/Kamchatka":1,"Asia/Karachi":1,"Asia/Kathmandu":1,"Asia/Khandyga":1,"A= sia/Kolkata":1,"Asia/Krasnoyarsk":1,"Asia/Kuala_Lumpur":1,"Asia/Kuching":1,= "Asia/Kuwait":1,"Asia/Macau":1,"Asia/Magadan":1,"Asia/Makassar":1,"Asia/Man= ila":1,"Asia/Muscat":1,"Asia/Nicosia":1,"Asia/Novokuznetsk":1,"Asia/Novosib= irsk":1,"Asia/Omsk":1,"Asia/Oral":1,"Asia/Phnom_Penh":1,"Asia/Pontianak":1,= "Asia/Pyongyang":1,"Asia/Qatar":1,"Asia/Qostanay":1,"Asia/Qyzylorda":1,"Asi= a/Riyadh":1,"Asia/Sakhalin":1,"Asia/Samarkand":1,"Asia/Seoul":1,"Asia/Shang= hai":1,"Asia/Singapore":1,"Asia/Srednekolymsk":1,"Asia/Taipei":1,"Asia/Tash= kent":1,"Asia/Tbilisi":1,"Asia/Tehran":1,"Asia/Thimphu":1,"Asia/Tokyo":1,"A= sia/Tomsk":1,"Asia/Ulaanbaatar":1,"Asia/Urumqi":1,"Asia/Ust-Nera":1,"Asia/V= ientiane":1,"Asia/Vladivostok":1,"Asia/Yakutsk":1,"Asia/Yangon":1,"Asia/Yek= aterinburg":1,"Asia/Yerevan":1,"Atlantic/Azores":1,"Atlantic/Bermuda":1,"At= lantic/Canary":1,"Atlantic/Cape_Verde":1,"Atlantic/Faroe":1,"Atlantic/Madei= ra":1,"Atlantic/Reykjavik":1,"Atlantic/South_Georgia":1,"Atlantic/St_Helena= ":1,"Atlantic/Stanley":1,"Australia/Adelaide":1,"Australia/Brisbane":1,"Aus= tralia/Broken_Hill":1,"Australia/Darwin":1,"Australia/Eucla":1,"Australia/H= obart":1,"Australia/Lindeman":1,"Australia/Lord_Howe":1,"Australia/Melbourn= e":1,"Australia/Perth":1,"Australia/Sydney":1,"Europe/Amsterdam":1,"Europe/= Andorra":1,"Europe/Astrakhan":1,"Europe/Athens":1,"Europe/Belgrade":1,"Euro= pe/Berlin":1,"Europe/Bratislava":1,"Europe/Brussels":1,"Europe/Bucharest":1= ,"Europe/Budapest":1,"Europe/Busingen":1,"Europe/Chisinau":1,"Europe/Copenh= agen":1,"Europe/Dublin":1,"Europe/Gibraltar":1,"Europe/Guernsey":1,"Europe/= Helsinki":1,"Europe/Isle_of_Man":1,"Europe/Istanbul":1,"Europe/Jersey":1,"E= urope/Kaliningrad":1,"Europe/Kirov":1,"Europe/Kyiv":1,"Europe/Lisbon":1,"Eu= rope/Ljubljana":1,"Europe/London":1,"Europe/Luxembourg":1,"Europe/Madrid":1= ,"Europe/Malta":1,"Europe/Mariehamn":1,"Europe/Minsk":1,"Europe/Monaco":1,"= Europe/Moscow":1,"Europe/Oslo":1,"Europe/Paris":1,"Europe/Podgorica":1,"Eur= ope/Prague":1,"Europe/Riga":1,"Europe/Rome":1,"Europe/Samara":1,"Europe/San= _Marino":1,"Europe/Sarajevo":1,"Europe/Saratov":1,"Europe/Simferopol":1,"Eu= rope/Skopje":1,"Europe/Sofia":1,"Europe/Stockholm":1,"Europe/Tallinn":1,"Eu= rope/Tirane":1,"Europe/Ulyanovsk":1,"Europe/Vaduz":1,"Europe/Vatican":1,"Eu= rope/Vienna":1,"Europe/Vilnius":1,"Europe/Volgograd":1,"Europe/Warsaw":1,"E= urope/Zagreb":1,"Europe/Zurich":1,"Indian/Antananarivo":1,"Indian/Chagos":1= ,"Indian/Christmas":1,"Indian/Cocos":1,"Indian/Comoro":1,"Indian/Kerguelen"= :1,"Indian/Mahe":1,"Indian/Maldives":1,"Indian/Mauritius":1,"Indian/Mayotte= ":1,"Indian/Reunion":1,"Pacific/Apia":1,"Pacific/Auckland":1,"Pacific/Bouga= inville":1,"Pacific/Chatham":1,"Pacific/Chuuk":1,"Pacific/Easter":1,"Pacifi= c/Efate":1,"Pacific/Fakaofo":1,"Pacific/Fiji":1,"Pacific/Funafuti":1,"Pacif= ic/Galapagos":1,"Pacific/Gambier":1,"Pacific/Guadalcanal":1,"Pacific/Guam":= 1,"Pacific/Honolulu":1,"Pacific/Kanton":1,"Pacific/Kiritimati":1,"Pacific/K= osrae":1,"Pacific/Kwajalein":1,"Pacific/Majuro":1,"Pacific/Marquesas":1,"Pa= cific/Midway":1,"Pacific/Nauru":1,"Pacific/Niue":1,"Pacific/Norfolk":1,"Pac= ific/Noumea":1,"Pacific/Pago_Pago":1,"Pacific/Palau":1,"Pacific/Pitcairn":1= ,"Pacific/Pohnpei":1,"Pacific/Port_Moresby":1,"Pacific/Rarotonga":1,"Pacifi= c/Saipan":1,"Pacific/Tahiti":1,"Pacific/Tarawa":1,"Pacific/Tongatapu":1,"Pa= cific/Wake":1,"Pacific/Wallis":1}} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= .json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json new file mode 100644 index 0000000..f228b1e --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json @@ -0,0 +1,29 @@ +{ + "autoreboot": 1, + "cidr": "192.168.1.114/24", + "country": "at", + "dns": "192.168.1.254", + "domain": "testinstall", + "disk_selection": { + "6": "6", + "7": "7", + "8": "8", + "9": "9" + }, + "filesys": "zfs (RAID10)", + "gateway": "192.168.1.1", + "hdsize": 223.57088470458984, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "eno1", + "password": "123456", + "timezone": "Europe/Vienna", + "zfs_opts": { + "arc_max": 2048, + "ashift": 12, + "checksum": "on", + "compress": "on", + "copies": 1 + } +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= .toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml new file mode 100644 index 0000000..796ccc6 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml @@ -0,0 +1,14 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D true + +[disks] +filesystem =3D "zfs-raid10" +filter.ID_SERIAL =3D "*MZ7KM240HAGR*" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= _all.json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_= all.json new file mode 100644 index 0000000..2990922 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.js= on @@ -0,0 +1,26 @@ +{ + "autoreboot": 1, + "cidr": "192.168.1.114/24", + "country": "at", + "dns": "192.168.1.254", + "domain": "testinstall", + "disk_selection": { + "9": "9" + }, + "filesys": "zfs (RAID0)", + "gateway": "192.168.1.1", + "hdsize": 223.57088470458984, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "eno1", + "password": "123456", + "timezone": "Europe/Vienna", + "zfs_opts": { + "arc_max": 2048, + "ashift": 12, + "checksum": "on", + "compress": "on", + "copies": 1 + } +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= _all.toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_= all.toml new file mode 100644 index 0000000..5171153 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.to= ml @@ -0,0 +1,16 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D true + +[disks] +filesystem =3D "zfs-raid0" +filter_match =3D "all" +filter.ID_SERIAL =3D "*MZ7KM240HAGR*" +filter.ID_SERIAL_SHORT =3D "S2HRNX0J403419" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= _any.json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_= any.json new file mode 100644 index 0000000..8c22300 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.js= on @@ -0,0 +1,33 @@ +{ + "autoreboot": 1, + "cidr": "192.168.1.114/24", + "country": "at", + "dns": "192.168.1.254", + "domain": "testinstall", + "disk_selection": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "6": "6", + "7": "7", + "8": "8", + "9": "9" + }, + "filesys": "zfs (RAID10)", + "gateway": "192.168.1.1", + "hdsize": 2980.820640563965, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "eno1", + "password": "123456", + "timezone": "Europe/Vienna", + "zfs_opts": { + "arc_max": 2048, + "ashift": 12, + "checksum": "on", + "compress": "on", + "copies": 1 + } +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match= _any.toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_= any.toml new file mode 100644 index 0000000..df6c88c --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.to= ml @@ -0,0 +1,16 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D true + +[disks] +filesystem =3D "zfs-raid10" +filter_match =3D "any" +filter.ID_SERIAL =3D "*MZ7KM240HAGR*" +filter.ID_MODEL =3D "Micron_9300*" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/minimal.js= on b/proxmox-auto-installer/tests/resources/parse_answer/minimal.json new file mode 100644 index 0000000..9021377 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/minimal.json @@ -0,0 +1,17 @@ +{ + "autoreboot": 1, + "cidr": "192.168.1.114/24", + "country": "at", + "dns": "192.168.1.254", + "domain": "testinstall", + "filesys": "ext4", + "gateway": "192.168.1.1", + "hdsize": 223.57088470458984, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "eno1", + "password": "123456", + "target_hd": "/dev/sda", + "timezone": "Europe/Vienna" +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/minimal.to= ml b/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml new file mode 100644 index 0000000..a417c00 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml @@ -0,0 +1,14 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D true + +[disks] +filesystem =3D "ext4" +disk_selection =3D ["sda"] diff --git a/proxmox-auto-installer/tests/resources/parse_answer/nic_matchi= ng.json b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.= json new file mode 100644 index 0000000..6f31079 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.json @@ -0,0 +1,17 @@ +{ + "autoreboot": 1, + "cidr": "10.10.10.10/24", + "country": "at", + "dns": "10.10.10.1", + "domain": "testinstall", + "filesys": "ext4", + "gateway": "10.10.10.1", + "hdsize": 223.57088470458984, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "enp65s0f0", + "password": "123456", + "target_hd": "/dev/sda", + "timezone": "Europe/Vienna" +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/nic_matchi= ng.toml b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.= toml new file mode 100644 index 0000000..10e21d2 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.toml @@ -0,0 +1,19 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D false +cidr =3D "10.10.10.10/24" +dns =3D "10.10.10.1" +gateway =3D "10.10.10.1" +filter.ID_NET_NAME_MAC =3D "*a0369f0ab382" + + +[disks] +filesystem =3D "ext4" +disk_selection =3D ["sda"] diff --git a/proxmox-auto-installer/tests/resources/parse_answer/readme b/p= roxmox-auto-installer/tests/resources/parse_answer/readme new file mode 100644 index 0000000..6ce77ae --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/readme @@ -0,0 +1,4 @@ +the size parameter from /sys/block/{disk}/size is the number of blocks. + +to calculate the size as the low level installer needs it: +size * 512 / 1024 / 1024 / 1024 with 14 digits after the comma diff --git a/proxmox-auto-installer/tests/resources/parse_answer/specific_n= ic.json b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.= json new file mode 100644 index 0000000..515cc89 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.json @@ -0,0 +1,17 @@ +{ + "autoreboot": 1, + "cidr": "10.10.10.10/24", + "country": "at", + "dns": "10.10.10.1", + "domain": "testinstall", + "filesys": "ext4", + "gateway": "10.10.10.1", + "hdsize": 223.57088470458984, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "enp129s0f1np1", + "password": "123456", + "target_hd": "/dev/sda", + "timezone": "Europe/Vienna" +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/specific_n= ic.toml b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.= toml new file mode 100644 index 0000000..60c08b4 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.toml @@ -0,0 +1,19 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D false +cidr =3D "10.10.10.10/24" +dns =3D "10.10.10.1" +gateway =3D "10.10.10.1" +filter.ID_NET_NAME =3D "enp129s0f1np1" + + +[disks] +filesystem =3D "ext4" +disk_selection =3D ["sda"] diff --git a/proxmox-auto-installer/tests/resources/parse_answer/zfs.json b= /proxmox-auto-installer/tests/resources/parse_answer/zfs.json new file mode 100644 index 0000000..c29a303 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/zfs.json @@ -0,0 +1,27 @@ +{ + "autoreboot": 1, + "cidr": "192.168.1.114/24", + "country": "at", + "dns": "192.168.1.254", + "domain": "testinstall", + "disk_selection": { + "6": "6", + "7": "7" + }, + "filesys": "zfs (RAID1)", + "gateway": "192.168.1.1", + "hdsize": 80.0, + "hostname": "pveauto", + "keymap": "de", + "mailto": "mail@no.invalid", + "mngmt_nic": "eno1", + "password": "123456", + "timezone": "Europe/Vienna", + "zfs_opts": { + "arc_max": 2048, + "ashift": 12, + "checksum": "on", + "compress": "lz4", + "copies": 2 + } +} diff --git a/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml b= /proxmox-auto-installer/tests/resources/parse_answer/zfs.toml new file mode 100644 index 0000000..2032c0a --- /dev/null +++ b/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml @@ -0,0 +1,19 @@ +[global] +keyboard =3D "de" +country =3D "at" +fqdn =3D "pveauto.testinstall" +mailto =3D "mail@no.invalid" +timezone =3D "Europe/Vienna" +password =3D "123456" + +[network] +use_dhcp =3D true + +[disks] +filesystem =3D "zfs-raid1" +disk_selection =3D ["sda", "sdb"] +zfs.ashift =3D 12 +zfs.checksum =3D "on" +zfs.compress =3D "lz4" +zfs.copies =3D 2 +zfs.hdsize =3D 80 diff --git a/proxmox-auto-installer/tests/resources/run-env-info.json b/pro= xmox-auto-installer/tests/resources/run-env-info.json new file mode 100644 index 0000000..6762470 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/run-env-info.json @@ -0,0 +1 @@ +{"boot_type":"efi","country":"at","disks":[[0,"/dev/nvme0n1",6251233968,"M= icron_9300_MTFDHAL3T2TDR",4096,"/sys/block/nvme0n1"],[1,"/dev/nvme1n1",6251= 233968,"Micron_9300_MTFDHAL3T2TDR",4096,"/sys/block/nvme1n1"],[2,"/dev/nvme= 2n1",6251233968,"Micron_9300_MTFDHAL3T2TDR",4096,"/sys/block/nvme2n1"],[3,"= /dev/nvme3n1",6251233968,"Micron_9300_MTFDHAL3T2TDR",4096,"/sys/block/nvme3= n1"],[4,"/dev/nvme4n1",976773168,"Samsung SSD 970 EVO Plus 500GB",512,"/sys= /block/nvme4n1"],[5,"/dev/nvme5n1",732585168,"INTEL SSDPED1K375GA",512,"/sy= s/block/nvme5n1"],[6,"/dev/sda",468862128,"SAMSUNG MZ7KM240",512,"/sys/bloc= k/sda"],[7,"/dev/sdb",468862128,"SAMSUNG MZ7KM240",512,"/sys/block/sdb"],[8= ,"/dev/sdc",468862128,"SAMSUNG MZ7KM240",512,"/sys/block/sdc"],[9,"/dev/sdd= ",468862128,"SAMSUNG MZ7KM240",512,"/sys/block/sdd"]],"hvm_supported":1,"ip= conf":{"default":"4","dnsserver":"192.168.1.254","domain":null,"gateway":"1= 92.168.1.1","ifaces":{"10":{"driver":"mlx5_core","flags":"NO-CARRIER,BROADC= AST,MULTICAST,UP","mac":"24:8a:07:1e:05:bd","name":"enp193s0f1np1","state":= "DOWN"},"2":{"driver":"igb","flags":"NO-CARRIER,BROADCAST,MULTICAST,UP","ma= c":"a0:36:9f:0a:b3:82","name":"enp65s0f0","state":"DOWN"},"3":{"driver":"ig= b","flags":"NO-CARRIER,BROADCAST,MULTICAST,UP","mac":"a0:36:9f:0a:b3:83","n= ame":"enp65s0f1","state":"DOWN"},"4":{"driver":"igb","flags":"BROADCAST,MUL= TICAST,UP,LOWER_UP","inet":{"addr":"192.168.1.114","mask":"255.255.240.0","= prefix":20},"mac":"b4:2e:99:ac:ad:b4","name":"eno1","state":"UP"},"5":{"dri= ver":"cdc_ether","flags":"BROADCAST,MULTICAST,UP,LOWER_UP","mac":"5a:47:32:= dd:c7:47","name":"enx5a4732ddc747","state":"UNKNOWN"},"6":{"driver":"igb","= flags":"BROADCAST,MULTICAST,UP,LOWER_UP","mac":"b4:2e:99:ac:ad:b5","name":"= eno2","state":"UP"},"7":{"driver":"mlx5_core","flags":"NO-CARRIER,BROADCAST= ,MULTICAST,UP","mac":"1c:34:da:5c:5e:24","name":"enp129s0f0np0","state":"DO= WN"},"8":{"driver":"mlx5_core","flags":"NO-CARRIER,BROADCAST,MULTICAST,UP",= "mac":"1c:34:da:5c:5e:25","name":"enp129s0f1np1","state":"DOWN"},"9":{"driv= er":"mlx5_core","flags":"BROADCAST,MULTICAST,UP,LOWER_UP","mac":"24:8a:07:1= e:05:bc","name":"enp193s0f0np0","state":"UP"}}},"kernel_cmdline":"BOOT_IMAG= E=3D/boot/linux26 ro ramdisk_size=3D16777216 rw splash=3Dverbose proxdebug = vga=3D788","network":{"dns":{"dns":["192.168.1.254"],"domain":null},"interf= aces":{"eno1":{"addresses":[{"address":"192.168.1.114","family":"inet","pre= fix":24}],"index":4,"mac":"b4:2e:99:ac:ad:b4","name":"eno1","state":"UP"},"= eno2":{"index":6,"mac":"b4:2e:99:ac:ad:b5","name":"eno2","state":"UP"},"enp= 129s0f0np0":{"index":7,"mac":"1c:34:da:5c:5e:24","name":"enp129s0f0np0","st= ate":"DOWN"},"enp129s0f1np1":{"index":8,"mac":"1c:34:da:5c:5e:25","name":"e= np129s0f1np1","state":"DOWN"},"enp193s0f0np0":{"index":9,"mac":"24:8a:07:1e= :05:bc","name":"enp193s0f0np0","state":"UP"},"enp193s0f1np1":{"index":10,"m= ac":"24:8a:07:1e:05:bd","name":"enp193s0f1np1","state":"DOWN"},"enp65s0f0":= {"index":2,"mac":"a0:36:9f:0a:b3:82","name":"enp65s0f0","state":"DOWN"},"en= p65s0f1":{"index":3,"mac":"a0:36:9f:0a:b3:83","name":"enp65s0f1","state":"D= OWN"},"enx5a4732ddc747":{"index":5,"mac":"5a:47:32:dd:c7:47","name":"enx5a4= 732ddc747","state":"UNKNOWN"}},"routes":{"gateway4":{"dev":"eno1","gateway"= :"192.168.1.1"}}},"total_memory":257597} diff --git a/proxmox-auto-installer/tests/resources/run-env-udev.json b/pro= xmox-auto-installer/tests/resources/run-env-udev.json new file mode 100644 index 0000000..4fe1f30 --- /dev/null +++ b/proxmox-auto-installer/tests/resources/run-env-udev.json @@ -0,0 +1 @@ +{"disks":{"0":{"CURRENT_TAGS":":systemd:","DEVLINKS":"/dev/disk/by-path/pc= i-0000:01:00.0-nvme-1 /dev/disk/by-id/nvme-Micron_9300_MTFDHAL3T2TDR_195025= 96FC74 /dev/disk/by-id/lvm-pv-uuid-hl5Cyv-dghE-CcX8-lDCV-6BSj-EbFU-cT4dIP /= dev/disk/by-diskseq/16 /dev/disk/by-id/nvme-eui.000000000000001500a07501259= 6fc74","DEVNAME":"/dev/nvme0n1","DEVPATH":"/devices/pci0000:00/0000:00:01.1= /0000:01:00.0/nvme/nvme0/nvme0n1","DEVTYPE":"disk","DISKSEQ":"16","ID_FS_TY= PE":"LVM2_member","ID_FS_USAGE":"raid","ID_FS_UUID":"hl5Cyv-dghE-CcX8-lDCV-= 6BSj-EbFU-cT4dIP","ID_FS_UUID_ENC":"hl5Cyv-dghE-CcX8-lDCV-6BSj-EbFU-cT4dIP"= ,"ID_FS_VERSION":"LVM2 001","ID_MODEL":"Micron_9300_MTFDHAL3T2TDR","ID_PATH= ":"pci-0000:01:00.0-nvme-1","ID_PATH_TAG":"pci-0000_01_00_0-nvme-1","ID_REV= ISION":"11300DN0","ID_SERIAL":"Micron_9300_MTFDHAL3T2TDR_19502596FC74","ID_= SERIAL_SHORT":"19502596FC74","ID_WWN":"eui.000000000000001500a075012596fc74= ","LVM_VG_NAME_COMPLETE":"ceph-67f6a633-8bac-4ba6-a54c-40f0d24a9701","MAJOR= ":"259","MINOR":"6","SUBSYSTEM":"block","SYSTEMD_READY":"1","TAGS":":system= d:","USEC_INITIALIZED":"45215609"},"1":{"CURRENT_TAGS":":systemd:","DEVLINK= S":"/dev/disk/by-path/pci-0000:02:00.0-nvme-1 /dev/disk/by-id/nvme-eui.0000= 00000000001400a0750125de7a16 /dev/disk/by-diskseq/15 /dev/disk/by-id/nvme-M= icron_9300_MTFDHAL3T2TDR_195225DE7A16","DEVNAME":"/dev/nvme1n1","DEVPATH":"= /devices/pci0000:00/0000:00:01.2/0000:02:00.0/nvme/nvme1/nvme1n1","DEVTYPE"= :"disk","DISKSEQ":"15","ID_MODEL":"Micron_9300_MTFDHAL3T2TDR","ID_PATH":"pc= i-0000:02:00.0-nvme-1","ID_PATH_TAG":"pci-0000_02_00_0-nvme-1","ID_REVISION= ":"11300DN0","ID_SERIAL":"Micron_9300_MTFDHAL3T2TDR_195225DE7A16","ID_SERIA= L_SHORT":"195225DE7A16","ID_WWN":"eui.000000000000001400a0750125de7a16","MA= JOR":"259","MINOR":"5","SUBSYSTEM":"block","TAGS":":systemd:","USEC_INITIAL= IZED":"43271971"},"2":{"CURRENT_TAGS":":systemd:","DEVLINKS":"/dev/disk/by-= path/pci-0000:03:00.0-nvme-1 /dev/disk/by-diskseq/17 /dev/disk/by-id/lvm-pv= -uuid-b92FQw-lExM-2EYR-5UyV-T6cl-yzsM-qRjCOU /dev/disk/by-id/nvme-Micron_93= 00_MTFDHAL3T2TDR_1945250F206E /dev/disk/by-id/nvme-eui.000000000000001400a0= 7501250f206e","DEVNAME":"/dev/nvme2n1","DEVPATH":"/devices/pci0000:00/0000:= 00:01.3/0000:03:00.0/nvme/nvme2/nvme2n1","DEVTYPE":"disk","DISKSEQ":"17","I= D_FS_TYPE":"LVM2_member","ID_FS_USAGE":"raid","ID_FS_UUID":"b92FQw-lExM-2EY= R-5UyV-T6cl-yzsM-qRjCOU","ID_FS_UUID_ENC":"b92FQw-lExM-2EYR-5UyV-T6cl-yzsM-= qRjCOU","ID_FS_VERSION":"LVM2 001","ID_MODEL":"Micron_9300_MTFDHAL3T2TDR","= ID_PATH":"pci-0000:03:00.0-nvme-1","ID_PATH_TAG":"pci-0000_03_00_0-nvme-1",= "ID_REVISION":"11300DN0","ID_SERIAL":"Micron_9300_MTFDHAL3T2TDR_1945250F206= E","ID_SERIAL_SHORT":"1945250F206E","ID_WWN":"eui.000000000000001400a075012= 50f206e","LVM_VG_NAME_COMPLETE":"ceph-ee820014-6121-458b-a661-889f0901bff6"= ,"MAJOR":"259","MINOR":"7","SUBSYSTEM":"block","SYSTEMD_READY":"1","TAGS":"= :systemd:","USEC_INITIALIZED":"45218640"},"3":{"CURRENT_TAGS":":systemd:","= DEVLINKS":"/dev/disk/by-path/pci-0000:04:00.0-nvme-1 /dev/disk/by-id/lvm-pv= -uuid-f56spY-IptZ-fH5e-AqQv-K1cI-3nnt-2UlO17 /dev/disk/by-id/nvme-Micron_93= 00_MTFDHAL3T2TDR_1945250F20AC /dev/disk/by-diskseq/18 /dev/disk/by-id/nvme-= eui.000000000000001400a07501250f20ac","DEVNAME":"/dev/nvme3n1","DEVPATH":"/= devices/pci0000:00/0000:00:01.4/0000:04:00.0/nvme/nvme3/nvme3n1","DEVTYPE":= "disk","DISKSEQ":"18","ID_FS_TYPE":"LVM2_member","ID_FS_USAGE":"raid","ID_F= S_UUID":"f56spY-IptZ-fH5e-AqQv-K1cI-3nnt-2UlO17","ID_FS_UUID_ENC":"f56spY-I= ptZ-fH5e-AqQv-K1cI-3nnt-2UlO17","ID_FS_VERSION":"LVM2 001","ID_MODEL":"Micr= on_9300_MTFDHAL3T2TDR","ID_PATH":"pci-0000:04:00.0-nvme-1","ID_PATH_TAG":"p= ci-0000_04_00_0-nvme-1","ID_REVISION":"11300DN0","ID_SERIAL":"Micron_9300_M= TFDHAL3T2TDR_1945250F20AC","ID_SERIAL_SHORT":"1945250F20AC","ID_WWN":"eui.0= 00000000000001400a07501250f20ac","LVM_VG_NAME_COMPLETE":"ceph-2928aceb-9300= -4175-8640-e227d897d45e","MAJOR":"259","MINOR":"8","SUBSYSTEM":"block","SYS= TEMD_READY":"1","TAGS":":systemd:","USEC_INITIALIZED":"45215244"},"4":{"CUR= RENT_TAGS":":systemd:","DEVLINKS":"/dev/disk/by-diskseq/13 /dev/disk/by-pat= h/pci-0000:82:00.0-nvme-1 /dev/disk/by-id/lvm-pv-uuid-jFM6eE-KUmT-fTBO-9SWe= -4VJG-W4rW-DUQPRd /dev/disk/by-id/nvme-INTEL_SSDPED1K375GA_PHKS746500DK375A= GN /dev/disk/by-id/nvme-nvme.8086-50484b53373436353030444b33373541474e-494e= 54454c20535344504544314b3337354741-00000001","DEVNAME":"/dev/nvme4n1","DEVP= ATH":"/devices/pci0000:80/0000:80:03.1/0000:82:00.0/nvme/nvme4/nvme4n1","DE= VTYPE":"disk","DISKSEQ":"13","ID_FS_TYPE":"LVM2_member","ID_FS_USAGE":"raid= ","ID_FS_UUID":"jFM6eE-KUmT-fTBO-9SWe-4VJG-W4rW-DUQPRd","ID_FS_UUID_ENC":"j= FM6eE-KUmT-fTBO-9SWe-4VJG-W4rW-DUQPRd","ID_FS_VERSION":"LVM2 001","ID_MODEL= ":"INTEL SSDPED1K375GA","ID_PATH":"pci-0000:82:00.0-nvme-1","ID_PATH_TAG":"= pci-0000_82_00_0-nvme-1","ID_REVISION":"E2010435","ID_SERIAL":"INTEL_SSDPED= 1K375GA_PHKS746500DK375AGN","ID_SERIAL_SHORT":"PHKS746500DK375AGN","ID_WWN"= :"nvme.8086-50484b53373436353030444b33373541474e-494e54454c2053534450454431= 4b3337354741-00000001","LVM_VG_NAME_COMPLETE":"ceph-b4af8112-88e7-4cd4-9cf9= -0f4163ca77bd","MAJOR":"259","MINOR":"0","SUBSYSTEM":"block","SYSTEMD_READY= ":"1","TAGS":":systemd:","USEC_INITIALIZED":"45219471"},"5":{"CURRENT_TAGS"= :":systemd:","DEVLINKS":"/dev/disk/by-id/nvme-eui.0025385791b04175 /dev/dis= k/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4EVNF0M703256N /dev/disk/by-pa= th/pci-0000:06:00.0-nvme-1 /dev/disk/by-diskseq/14","DEVNAME":"/dev/nvme5n1= ","DEVPATH":"/devices/pci0000:00/0000:00:03.3/0000:06:00.0/nvme/nvme5/nvme5= n1","DEVTYPE":"disk","DISKSEQ":"14","ID_MODEL":"Samsung SSD 970 EVO Plus 50= 0GB","ID_PART_TABLE_TYPE":"gpt","ID_PART_TABLE_UUID":"1c40cb4b-72d8-49ec-80= 4b-e5933e09423d","ID_PATH":"pci-0000:06:00.0-nvme-1","ID_PATH_TAG":"pci-000= 0_06_00_0-nvme-1","ID_REVISION":"2B2QEXM7","ID_SERIAL":"Samsung_SSD_970_EVO= _Plus_500GB_S4EVNF0M703256N","ID_SERIAL_SHORT":"S4EVNF0M703256N","ID_WWN":"= eui.0025385791b04175","MAJOR":"259","MINOR":"1","SUBSYSTEM":"block","TAGS":= ":systemd:","USEC_INITIALIZED":"43271933"},"6":{"CURRENT_TAGS":":systemd:",= "DEVLINKS":"/dev/disk/by-id/lvm-pv-uuid-tMMNAX-noqI-P0oS-9OEJ-7IR5-WoRL-N5K= 5Cv /dev/disk/by-id/ata-SAMSUNG_MZ7KM240HAGR-00005_S2HRNX0J403550 /dev/disk= /by-path/pci-0000:05:00.0-sas-exp0x500304801f3f7f7f-phy0-lun-0 /dev/disk/by= -diskseq/9 /dev/disk/by-id/wwn-0x5002538c405dbf10","DEVNAME":"/dev/sda","DE= VPATH":"/devices/pci0000:00/0000:00:03.1/0000:05:00.0/host8/port-8:0/expand= er-8:0/port-8:0:0/end_device-8:0:0/target8:0:0/8:0:0:0/block/sda","DEVTYPE"= :"disk","DISKSEQ":"9","ID_ATA":"1","ID_ATA_DOWNLOAD_MICROCODE":"1","ID_ATA_= FEATURE_SET_HPA":"1","ID_ATA_FEATURE_SET_HPA_ENABLED":"1","ID_ATA_FEATURE_S= ET_PM":"1","ID_ATA_FEATURE_SET_PM_ENABLED":"1","ID_ATA_FEATURE_SET_SECURITY= ":"1","ID_ATA_FEATURE_SET_SECURITY_ENABLED":"0","ID_ATA_FEATURE_SET_SECURIT= Y_ENHANCED_ERASE_UNIT_MIN":"32","ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN= ":"32","ID_ATA_FEATURE_SET_SMART":"1","ID_ATA_FEATURE_SET_SMART_ENABLED":"1= ","ID_ATA_ROTATION_RATE_RPM":"0","ID_ATA_SATA":"1","ID_ATA_WRITE_CACHE":"1"= ,"ID_ATA_WRITE_CACHE_ENABLED":"1","ID_BUS":"ata","ID_FS_TYPE":"LVM2_member"= ,"ID_FS_USAGE":"raid","ID_FS_UUID":"tMMNAX-noqI-P0oS-9OEJ-7IR5-WoRL-N5K5Cv"= ,"ID_FS_UUID_ENC":"tMMNAX-noqI-P0oS-9OEJ-7IR5-WoRL-N5K5Cv","ID_FS_VERSION":= "LVM2 001","ID_MODEL":"SAMSUNG_MZ7KM240HAGR-00005","ID_MODEL_ENC":"SAMSUNG\= \x20MZ7KM240HAGR-00005\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x= 20\\x20\\x20\\x20","ID_PATH":"pci-0000:05:00.0-sas-exp0x500304801f3f7f7f-ph= y0-lun-0","ID_PATH_TAG":"pci-0000_05_00_0-sas-exp0x500304801f3f7f7f-phy0-lu= n-0","ID_REVISION":"GXM1103Q","ID_SERIAL":"SAMSUNG_MZ7KM240HAGR-00005_S2HRN= X0J403550","ID_SERIAL_SHORT":"S2HRNX0J403550","ID_TYPE":"disk","ID_WWN":"0x= 5002538c405dbf10","ID_WWN_WITH_EXTENSION":"0x5002538c405dbf10","MAJOR":"8",= "MINOR":"0","SUBSYSTEM":"block","TAGS":":systemd:","USEC_INITIALIZED":"4523= 4812"},"7":{"CURRENT_TAGS":":systemd:","DEVLINKS":"/dev/disk/by-id/wwn-0x50= 02538c405dbce5 /dev/disk/by-path/pci-0000:05:00.0-sas-exp0x500304801f3f7f7f= -phy1-lun-0 /dev/disk/by-id/lvm-pv-uuid-oPUG7c-CMh3-oHQy-YRZP-8cNJ-uMIv-ceV= PZu /dev/disk/by-diskseq/10 /dev/disk/by-id/ata-SAMSUNG_MZ7KM240HAGR-00005_= S2HRNX0J403335","DEVNAME":"/dev/sdb","DEVPATH":"/devices/pci0000:00/0000:00= :03.1/0000:05:00.0/host8/port-8:0/expander-8:0/port-8:0:1/end_device-8:0:1/= target8:0:1/8:0:1:0/block/sdb","DEVTYPE":"disk","DISKSEQ":"10","ID_ATA":"1"= ,"ID_ATA_DOWNLOAD_MICROCODE":"1","ID_ATA_FEATURE_SET_HPA":"1","ID_ATA_FEATU= RE_SET_HPA_ENABLED":"1","ID_ATA_FEATURE_SET_PM":"1","ID_ATA_FEATURE_SET_PM_= ENABLED":"1","ID_ATA_FEATURE_SET_SECURITY":"1","ID_ATA_FEATURE_SET_SECURITY= _ENABLED":"0","ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN":"32","I= D_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN":"32","ID_ATA_FEATURE_SET_SMART":= "1","ID_ATA_FEATURE_SET_SMART_ENABLED":"1","ID_ATA_ROTATION_RATE_RPM":"0","= ID_ATA_SATA":"1","ID_ATA_WRITE_CACHE":"1","ID_ATA_WRITE_CACHE_ENABLED":"1",= "ID_BUS":"ata","ID_FS_TYPE":"LVM2_member","ID_FS_USAGE":"raid","ID_FS_UUID"= :"oPUG7c-CMh3-oHQy-YRZP-8cNJ-uMIv-ceVPZu","ID_FS_UUID_ENC":"oPUG7c-CMh3-oHQ= y-YRZP-8cNJ-uMIv-ceVPZu","ID_FS_VERSION":"LVM2 001","ID_MODEL":"SAMSUNG_MZ7= KM240HAGR-00005","ID_MODEL_ENC":"SAMSUNG\\x20MZ7KM240HAGR-00005\\x20\\x20\\= x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20","ID_PATH":"pci-= 0000:05:00.0-sas-exp0x500304801f3f7f7f-phy1-lun-0","ID_PATH_TAG":"pci-0000_= 05_00_0-sas-exp0x500304801f3f7f7f-phy1-lun-0","ID_REVISION":"GXM1103Q","ID_= SERIAL":"SAMSUNG_MZ7KM240HAGR-00005_S2HRNX0J403335","ID_SERIAL_SHORT":"S2HR= NX0J403335","ID_TYPE":"disk","ID_WWN":"0x5002538c405dbce5","ID_WWN_WITH_EXT= ENSION":"0x5002538c405dbce5","MAJOR":"8","MINOR":"16","SUBSYSTEM":"block","= TAGS":":systemd:","USEC_INITIALIZED":"45215406"},"8":{"CURRENT_TAGS":":syst= emd:","DEVLINKS":"/dev/disk/by-id/wwn-0x5002538c405dbcd9 /dev/disk/by-disks= eq/11 /dev/disk/by-id/ata-SAMSUNG_MZ7KM240HAGR-00005_S2HRNX0J403333 /dev/di= sk/by-path/pci-0000:05:00.0-sas-exp0x500304801f3f7f7f-phy2-lun-0 /dev/disk/= by-id/lvm-pv-uuid-tbguYd-sqom-3Okm-aJ0F-0F8N-2ALl-lo7ONW","DEVNAME":"/dev/s= dc","DEVPATH":"/devices/pci0000:00/0000:00:03.1/0000:05:00.0/host8/port-8:0= /expander-8:0/port-8:0:2/end_device-8:0:2/target8:0:2/8:0:2:0/block/sdc","D= EVTYPE":"disk","DISKSEQ":"11","ID_ATA":"1","ID_ATA_DOWNLOAD_MICROCODE":"1",= "ID_ATA_FEATURE_SET_HPA":"1","ID_ATA_FEATURE_SET_HPA_ENABLED":"1","ID_ATA_F= EATURE_SET_PM":"1","ID_ATA_FEATURE_SET_PM_ENABLED":"1","ID_ATA_FEATURE_SET_= SECURITY":"1","ID_ATA_FEATURE_SET_SECURITY_ENABLED":"0","ID_ATA_FEATURE_SET= _SECURITY_ENHANCED_ERASE_UNIT_MIN":"32","ID_ATA_FEATURE_SET_SECURITY_ERASE_= UNIT_MIN":"32","ID_ATA_FEATURE_SET_SMART":"1","ID_ATA_FEATURE_SET_SMART_ENA= BLED":"1","ID_ATA_ROTATION_RATE_RPM":"0","ID_ATA_SATA":"1","ID_ATA_WRITE_CA= CHE":"1","ID_ATA_WRITE_CACHE_ENABLED":"1","ID_BUS":"ata","ID_FS_TYPE":"LVM2= _member","ID_FS_USAGE":"raid","ID_FS_UUID":"tbguYd-sqom-3Okm-aJ0F-0F8N-2ALl= -lo7ONW","ID_FS_UUID_ENC":"tbguYd-sqom-3Okm-aJ0F-0F8N-2ALl-lo7ONW","ID_FS_V= ERSION":"LVM2 001","ID_MODEL":"SAMSUNG_MZ7KM240HAGR-00005","ID_MODEL_ENC":"= SAMSUNG\\x20MZ7KM240HAGR-00005\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20= \\x20\\x20\\x20\\x20\\x20","ID_PATH":"pci-0000:05:00.0-sas-exp0x500304801f3= f7f7f-phy2-lun-0","ID_PATH_TAG":"pci-0000_05_00_0-sas-exp0x500304801f3f7f7f= -phy2-lun-0","ID_REVISION":"GXM1103Q","ID_SERIAL":"SAMSUNG_MZ7KM240HAGR-000= 05_S2HRNX0J403333","ID_SERIAL_SHORT":"S2HRNX0J403333","ID_TYPE":"disk","ID_= WWN":"0x5002538c405dbcd9","ID_WWN_WITH_EXTENSION":"0x5002538c405dbcd9","MAJ= OR":"8","MINOR":"32","SUBSYSTEM":"block","TAGS":":systemd:","USEC_INITIALIZ= ED":"45198824"},"9":{"CURRENT_TAGS":":systemd:","DEVLINKS":"/dev/disk/by-di= skseq/12 /dev/disk/by-id/wwn-0x5002538c405dbdc5 /dev/disk/by-id/lvm-pv-uuid= -Lpxa0X-i8MT-EYWV-J7yQ-r5x7-S99u-jLf8bz /dev/disk/by-path/pci-0000:05:00.0-= sas-exp0x500304801f3f7f7f-phy5-lun-0 /dev/disk/by-id/ata-SAMSUNG_MZ7KM240HA= GR-00005_S2HRNX0J403419","DEVNAME":"/dev/sdd","DEVPATH":"/devices/pci0000:0= 0/0000:00:03.1/0000:05:00.0/host8/port-8:0/expander-8:0/port-8:0:3/end_devi= ce-8:0:3/target8:0:3/8:0:3:0/block/sdd","DEVTYPE":"disk","DISKSEQ":"12","ID= _ATA":"1","ID_ATA_DOWNLOAD_MICROCODE":"1","ID_ATA_FEATURE_SET_HPA":"1","ID_= ATA_FEATURE_SET_HPA_ENABLED":"1","ID_ATA_FEATURE_SET_PM":"1","ID_ATA_FEATUR= E_SET_PM_ENABLED":"1","ID_ATA_FEATURE_SET_SECURITY":"1","ID_ATA_FEATURE_SET= _SECURITY_ENABLED":"0","ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN= ":"32","ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN":"32","ID_ATA_FEATURE_SE= T_SMART":"1","ID_ATA_FEATURE_SET_SMART_ENABLED":"1","ID_ATA_ROTATION_RATE_R= PM":"0","ID_ATA_SATA":"1","ID_ATA_WRITE_CACHE":"1","ID_ATA_WRITE_CACHE_ENAB= LED":"1","ID_BUS":"ata","ID_FS_TYPE":"LVM2_member","ID_FS_USAGE":"raid","ID= _FS_UUID":"Lpxa0X-i8MT-EYWV-J7yQ-r5x7-S99u-jLf8bz","ID_FS_UUID_ENC":"Lpxa0X= -i8MT-EYWV-J7yQ-r5x7-S99u-jLf8bz","ID_FS_VERSION":"LVM2 001","ID_MODEL":"SA= MSUNG_MZ7KM240HAGR-00005","ID_MODEL_ENC":"SAMSUNG\\x20MZ7KM240HAGR-00005\\x= 20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20","ID_PA= TH":"pci-0000:05:00.0-sas-exp0x500304801f3f7f7f-phy5-lun-0","ID_PATH_TAG":"= pci-0000_05_00_0-sas-exp0x500304801f3f7f7f-phy5-lun-0","ID_REVISION":"GXM11= 03Q","ID_SERIAL":"SAMSUNG_MZ7KM240HAGR-00005_S2HRNX0J403419","ID_SERIAL_SHO= RT":"S2HRNX0J403419","ID_TYPE":"disk","ID_WWN":"0x5002538c405dbdc5","ID_WWN= _WITH_EXTENSION":"0x5002538c405dbdc5","MAJOR":"8","MINOR":"48","SUBSYSTEM":= "block","TAGS":":systemd:","USEC_INITIALIZED":"45215283"}},"nics":{"eno1":{= "CURRENT_TAGS":":systemd:","DEVPATH":"/devices/pci0000:c0/0000:c0:03.5/0000= :c2:00.0/net/eno1","ID_BUS":"pci","ID_MODEL_FROM_DATABASE":"I350 Gigabit Ne= twork Connection","ID_MODEL_ID":"0x1521","ID_NET_DRIVER":"igb","ID_NET_LABE= L_ONBOARD":"Onboard LAN1","ID_NET_LINK_FILE":"/usr/lib/systemd/network/99-d= efault.link","ID_NET_NAME":"eno1","ID_NET_NAME_MAC":"enxb42e99acadb4","ID_N= ET_NAME_ONBOARD":"eno1","ID_NET_NAME_PATH":"enp194s0f0","ID_NET_NAMING_SCHE= ME":"v252","ID_OUI_FROM_DATABASE":"GIGA-BYTE TECHNOLOGY CO.,LTD.","ID_PATH"= :"pci-0000:c2:00.0","ID_PATH_TAG":"pci-0000_c2_00_0","ID_PCI_CLASS_FROM_DAT= ABASE":"Network controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet contr= oller","ID_VENDOR_FROM_DATABASE":"Intel Corporation","ID_VENDOR_ID":"0x8086= ","IFINDEX":"5","INTERFACE":"eno1","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/sys/= subsystem/net/devices/eno1","TAGS":":systemd:","USEC_INITIALIZED":"45212091= "},"eno2":{"CURRENT_TAGS":":systemd:","DEVPATH":"/devices/pci0000:c0/0000:c= 0:03.5/0000:c2:00.1/net/eno2","ID_BUS":"pci","ID_MODEL_FROM_DATABASE":"I350= Gigabit Network Connection","ID_MODEL_ID":"0x1521","ID_NET_DRIVER":"igb","= ID_NET_LABEL_ONBOARD":"Onboard LAN2","ID_NET_LINK_FILE":"/usr/lib/systemd/n= etwork/99-default.link","ID_NET_NAME":"eno2","ID_NET_NAME_MAC":"enxb42e99ac= adb5","ID_NET_NAME_ONBOARD":"eno2","ID_NET_NAME_PATH":"enp194s0f1","ID_NET_= NAMING_SCHEME":"v252","ID_OUI_FROM_DATABASE":"GIGA-BYTE TECHNOLOGY CO.,LTD.= ","ID_PATH":"pci-0000:c2:00.1","ID_PATH_TAG":"pci-0000_c2_00_1","ID_PCI_CLA= SS_FROM_DATABASE":"Network controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Eth= ernet controller","ID_VENDOR_FROM_DATABASE":"Intel Corporation","ID_VENDOR_= ID":"0x8086","IFINDEX":"6","INTERFACE":"eno2","SUBSYSTEM":"net","SYSTEMD_AL= IAS":"/sys/subsystem/net/devices/eno2","TAGS":":systemd:","USEC_INITIALIZED= ":"45128159"},"enp129s0f0np0":{"CURRENT_TAGS":":systemd:","DEVPATH":"/devic= es/pci0000:80/0000:80:01.1/0000:81:00.0/net/enp129s0f0np0","ID_BUS":"pci","= ID_MODEL_FROM_DATABASE":"MT27710 Family [ConnectX-4 Lx] (MCX4421A-ACQN Conn= ectX-4 Lx EN OCP,2x25G)","ID_MODEL_ID":"0x1015","ID_NET_DRIVER":"mlx5_core"= ,"ID_NET_LINK_FILE":"/usr/lib/systemd/network/99-default.link","ID_NET_NAME= ":"enp129s0f0np0","ID_NET_NAME_MAC":"enx1c34da5c5e24","ID_NET_NAME_PATH":"e= np129s0f0np0","ID_NET_NAMING_SCHEME":"v252","ID_OUI_FROM_DATABASE":"Mellano= x Technologies, Inc.","ID_PATH":"pci-0000:81:00.0","ID_PATH_TAG":"pci-0000_= 81_00_0","ID_PCI_CLASS_FROM_DATABASE":"Network controller","ID_PCI_SUBCLASS= _FROM_DATABASE":"Ethernet controller","ID_VENDOR_FROM_DATABASE":"Mellanox T= echnologies","ID_VENDOR_ID":"0x15b3","IFINDEX":"7","INTERFACE":"enp129s0f0n= p0","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/sys/subsystem/net/devices/enp129s0f= 0np0","TAGS":":systemd:","USEC_INITIALIZED":"47752091"},"enp129s0f1np1":{"C= URRENT_TAGS":":systemd:","DEVPATH":"/devices/pci0000:80/0000:80:01.1/0000:8= 1:00.1/net/enp129s0f1np1","ID_BUS":"pci","ID_MODEL_FROM_DATABASE":"MT27710 = Family [ConnectX-4 Lx] (MCX4421A-ACQN ConnectX-4 Lx EN OCP,2x25G)","ID_MODE= L_ID":"0x1015","ID_NET_DRIVER":"mlx5_core","ID_NET_LINK_FILE":"/usr/lib/sys= temd/network/99-default.link","ID_NET_NAME":"enp129s0f1np1","ID_NET_NAME_MA= C":"enx1c34da5c5e25","ID_NET_NAME_PATH":"enp129s0f1np1","ID_NET_NAMING_SCHE= ME":"v252","ID_OUI_FROM_DATABASE":"Mellanox Technologies, Inc.","ID_PATH":"= pci-0000:81:00.1","ID_PATH_TAG":"pci-0000_81_00_1","ID_PCI_CLASS_FROM_DATAB= ASE":"Network controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet control= ler","ID_VENDOR_FROM_DATABASE":"Mellanox Technologies","ID_VENDOR_ID":"0x15= b3","IFINDEX":"8","INTERFACE":"enp129s0f1np1","SUBSYSTEM":"net","SYSTEMD_AL= IAS":"/sys/subsystem/net/devices/enp129s0f1np1","TAGS":":systemd:","USEC_IN= ITIALIZED":"47716100"},"enp193s0f0np0":{"CURRENT_TAGS":":systemd:","DEVPATH= ":"/devices/pci0000:c0/0000:c0:01.1/0000:c1:00.0/net/enp193s0f0np0","ID_BUS= ":"pci","ID_MODEL_FROM_DATABASE":"MT27700 Family [ConnectX-4]","ID_MODEL_ID= ":"0x1013","ID_NET_DRIVER":"mlx5_core","ID_NET_LINK_FILE":"/usr/lib/systemd= /network/99-default.link","ID_NET_NAME":"enp193s0f0np0","ID_NET_NAME_MAC":"= enx248a071e05bc","ID_NET_NAME_PATH":"enp193s0f0np0","ID_NET_NAMING_SCHEME":= "v252","ID_OUI_FROM_DATABASE":"Mellanox Technologies, Inc.","ID_PATH":"pci-= 0000:c1:00.0","ID_PATH_TAG":"pci-0000_c1_00_0","ID_PCI_CLASS_FROM_DATABASE"= :"Network controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet controller"= ,"ID_VENDOR_FROM_DATABASE":"Mellanox Technologies","ID_VENDOR_ID":"0x15b3",= "IFINDEX":"9","INTERFACE":"enp193s0f0np0","SUBSYSTEM":"net","SYSTEMD_ALIAS"= :"/sys/subsystem/net/devices/enp193s0f0np0","TAGS":":systemd:","USEC_INITIA= LIZED":"47784094"},"enp193s0f1np1":{"CURRENT_TAGS":":systemd:","DEVPATH":"/= devices/pci0000:c0/0000:c0:01.1/0000:c1:00.1/net/enp193s0f1np1","ID_BUS":"p= ci","ID_MODEL_FROM_DATABASE":"MT27700 Family [ConnectX-4]","ID_MODEL_ID":"0= x1013","ID_NET_DRIVER":"mlx5_core","ID_NET_LINK_FILE":"/usr/lib/systemd/net= work/99-default.link","ID_NET_NAME":"enp193s0f1np1","ID_NET_NAME_MAC":"enx2= 48a071e05bd","ID_NET_NAME_PATH":"enp193s0f1np1","ID_NET_NAMING_SCHEME":"v25= 2","ID_OUI_FROM_DATABASE":"Mellanox Technologies, Inc.","ID_PATH":"pci-0000= :c1:00.1","ID_PATH_TAG":"pci-0000_c1_00_1","ID_PCI_CLASS_FROM_DATABASE":"Ne= twork controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet controller","ID= _VENDOR_FROM_DATABASE":"Mellanox Technologies","ID_VENDOR_ID":"0x15b3","IFI= NDEX":"10","INTERFACE":"enp193s0f1np1","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/= sys/subsystem/net/devices/enp193s0f1np1","TAGS":":systemd:","USEC_INITIALIZ= ED":"47820155"},"enp65s0f0":{"CURRENT_TAGS":":systemd:","DEVPATH":"/devices= /pci0000:40/0000:40:03.1/0000:41:00.0/net/enp65s0f0","ID_BUS":"pci","ID_MOD= EL_FROM_DATABASE":"I350 Gigabit Network Connection (Ethernet Server Adapter= I350-T2)","ID_MODEL_ID":"0x1521","ID_NET_DRIVER":"igb","ID_NET_LINK_FILE":= "/usr/lib/systemd/network/99-default.link","ID_NET_NAME":"enp65s0f0","ID_NE= T_NAME_MAC":"enxa0369f0ab382","ID_NET_NAME_PATH":"enp65s0f0","ID_NET_NAMING= _SCHEME":"v252","ID_OUI_FROM_DATABASE":"Intel Corporate","ID_PATH":"pci-000= 0:41:00.0","ID_PATH_TAG":"pci-0000_41_00_0","ID_PCI_CLASS_FROM_DATABASE":"N= etwork controller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet controller","I= D_VENDOR_FROM_DATABASE":"Intel Corporation","ID_VENDOR_ID":"0x8086","IFINDE= X":"3","INTERFACE":"enp65s0f0","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/sys/subs= ystem/net/devices/enp65s0f0","TAGS":":systemd:","USEC_INITIALIZED":"4517610= 3"},"enp65s0f1":{"CURRENT_TAGS":":systemd:","DEVPATH":"/devices/pci0000:40/= 0000:40:03.1/0000:41:00.1/net/enp65s0f1","ID_BUS":"pci","ID_MODEL_FROM_DATA= BASE":"I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2)","= ID_MODEL_ID":"0x1521","ID_NET_DRIVER":"igb","ID_NET_LINK_FILE":"/usr/lib/sy= stemd/network/99-default.link","ID_NET_NAME":"enp65s0f1","ID_NET_NAME_MAC":= "enxa0369f0ab383","ID_NET_NAME_PATH":"enp65s0f1","ID_NET_NAMING_SCHEME":"v2= 52","ID_OUI_FROM_DATABASE":"Intel Corporate","ID_PATH":"pci-0000:41:00.1","= ID_PATH_TAG":"pci-0000_41_00_1","ID_PCI_CLASS_FROM_DATABASE":"Network contr= oller","ID_PCI_SUBCLASS_FROM_DATABASE":"Ethernet controller","ID_VENDOR_FRO= M_DATABASE":"Intel Corporation","ID_VENDOR_ID":"0x8086","IFINDEX":"4","INTE= RFACE":"enp65s0f1","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/sys/subsystem/net/de= vices/enp65s0f1","TAGS":":systemd:","USEC_INITIALIZED":"45260218"},"enxaa0c= 304b6362":{"CURRENT_TAGS":":systemd:","DEVPATH":"/devices/pci0000:40/0000:4= 0:08.1/0000:43:00.3/usb3/3-2/3-2.4/3-2.4.3/3-2.4.3:2.0/net/enxaa0c304b6362"= ,"ID_BUS":"usb","ID_MODEL":"Virtual_Ethernet","ID_MODEL_ENC":"Virtual\\x20E= thernet","ID_MODEL_ID":"ffb0","ID_NET_DRIVER":"cdc_ether","ID_NET_LINK_FILE= ":"/usr/lib/systemd/network/73-usb-net-by-mac.link","ID_NET_NAME":"enxaa0c3= 04b6362","ID_NET_NAME_MAC":"enxaa0c304b6362","ID_NET_NAME_PATH":"enp67s0f3u= 2u4u3c2","ID_NET_NAMING_SCHEME":"v252","ID_PATH":"pci-0000:43:00.3-usb-0:2.= 4.3:2.0","ID_PATH_TAG":"pci-0000_43_00_3-usb-0_2_4_3_2_0","ID_REVISION":"01= 00","ID_SERIAL":"American_Megatrends_Inc._Virtual_Ethernet_1234567890","ID_= SERIAL_SHORT":"1234567890","ID_TYPE":"generic","ID_USB_CLASS_FROM_DATABASE"= :"Communications","ID_USB_DRIVER":"cdc_ether","ID_USB_INTERFACES":":0202ff:= 0a0000:020600:","ID_USB_INTERFACE_NUM":"00","ID_USB_MODEL":"Virtual_Etherne= t","ID_USB_MODEL_ENC":"Virtual\\x20Ethernet","ID_USB_MODEL_ID":"ffb0","ID_U= SB_REVISION":"0100","ID_USB_SERIAL":"American_Megatrends_Inc._Virtual_Ether= net_1234567890","ID_USB_SERIAL_SHORT":"1234567890","ID_USB_TYPE":"generic",= "ID_USB_VENDOR":"American_Megatrends_Inc.","ID_USB_VENDOR_ENC":"American\\x= 20Megatrends\\x20Inc.","ID_USB_VENDOR_ID":"046b","ID_VENDOR":"American_Mega= trends_Inc.","ID_VENDOR_ENC":"American\\x20Megatrends\\x20Inc.","ID_VENDOR_= FROM_DATABASE":"American Megatrends, Inc.","ID_VENDOR_ID":"046b","IFINDEX":= "2","INTERFACE":"enxaa0c304b6362","SUBSYSTEM":"net","SYSTEMD_ALIAS":"/sys/s= ubsystem/net/devices/enxaa0c304b6362","TAGS":":systemd:","USEC_INITIALIZED"= :"44748106"}}} --=20 2.39.2