Первичная настройка, часть 3: установка ИШ из bj (скачать с nsd.ru или из файла; без графики: keyring, xvfb, dbus; база, служба) — проверено чистой установкой на Ubuntu 22.04; два контура НРД: каналы TEST3 и боевой в ИШ (адреса и отпечатки УЦ из документа НРД об ИШ 107), свои ключи (мастер ключа — выбор контура, профиль только к каналу контура), переключение bj между контурами с базой DEPO контура и подтверждением для боевого; папка входящих и слежение за связью — по активному контуру; пакеты ИШ в установщике и образе
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -38,9 +38,15 @@ type nsdPoll struct {
|
||||
// nsdLastPolls — итоги опросов НРД из хвоста журнала ИШ: последний опрос и первый неудачный после
|
||||
// последнего успешного (начало текущего сбоя; nil — сбоя нет).
|
||||
func nsdLastPolls(tail []byte) (last, firstFail *nsdPoll) {
|
||||
return nsdLastPollsFor(tail, "")
|
||||
}
|
||||
|
||||
// nsdLastPollsFor — то же для канала одного контура: при двух каналах в ИШ (TEST3 и боевой) опросы чужого
|
||||
// контура не учитываются. prefix — начало имени канала в журнале («TEST3», «PROD»); пусто — все.
|
||||
func nsdLastPollsFor(tail []byte, prefix string) (last, firstFail *nsdPoll) {
|
||||
for _, ln := range strings.Split(string(tail), "\n") {
|
||||
m := nsdPollRe.FindStringSubmatch(strings.TrimRight(ln, "\r"))
|
||||
if m == nil {
|
||||
if m == nil || (prefix != "" && !strings.HasPrefix(strings.ToUpper(strings.TrimSpace(m[2])), prefix)) {
|
||||
continue
|
||||
}
|
||||
at, err := time.ParseInLocation("2006-01-02 15:04:05", m[1], time.Local)
|
||||
@@ -105,7 +111,7 @@ func nsdLinkTick(rc *RuntimeConfig, now time.Time) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
last, firstFail := nsdLastPolls(tail)
|
||||
last, firstFail := nsdLastPollsFor(tail, contourChannel(contourOf(rc.Snapshot().NSD.Profile)))
|
||||
if last == nil {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user