Мастер: «Далее» на шаге ключа сразу после установки + надёжная сверка справочника
После успешной установки ключа на шаге «Ключ и сертификаты» не появлялась кнопка «Далее»: шаг считался выполненным только по асинхронной сверке справочника ИШ (nsdCertsCheck), а она сразу после установки отваливалась по таймауту — root-воркер был занят перезапуском ИШ и повторной активацией профиля. Ключ при этом уже подключён и подписывает. - refreshCertStore: повторяет сверку до 5 раз (воркер освобождается — проходит), вместо одной попытки с таймаутом. - Шаг 8 в мастере выполнен, если справочник собран ИЛИ мастер ключа прошёл до конца (ИШ подтвердил подпись) — «Далее» появляется сразу, не дожидаясь сверки. Добавлен потокобезопасный keyWizardState.installed(). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -55,6 +55,19 @@ func newKeyWizardState() *keyWizardState {
|
||||
return &keyWizardState{Steps: defaultKeySteps()}
|
||||
}
|
||||
|
||||
// installed — мастер ключа прошёл до конца (ключ подключён и ИШ подтвердил подпись).
|
||||
// Это более надёжный признак, чем асинхронная сверка справочника: по нему шаг
|
||||
// «Ключ и сертификаты» считается выполненным сразу, не дожидаясь перечитывания
|
||||
// справочника. nil-приёмник допустим (мастер ещё не запускался).
|
||||
func (s *keyWizardState) installed() bool {
|
||||
if s == nil {
|
||||
return false
|
||||
}
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
return s.Done
|
||||
}
|
||||
|
||||
// reset обнуляет поля прогона, НЕ трогая мьютекс (вызывать под Lock).
|
||||
func (s *keyWizardState) reset() {
|
||||
s.StagingID = ""
|
||||
|
||||
Reference in New Issue
Block a user