Opened 7 years ago

Closed 5 years ago

Last modified 5 years ago

#271 closed задача (fixed)

Выгрузка/загрузка частей конфигурации блока

Reported by: san Owned by: alx
Priority: низкий Milestone: 2 очередь
Component: sw Keywords:
Cc: andrei, Ivanmvtel

Description (last modified by san)

Ваня предложил интересную, на мой взгляд, идею.

Добавить в веб морду функции "выгрузки"/"загрузки"/"сброса в дефолт" отдельных частей конфигурации блока:
Например отдельно скачать настройки групповых каналов из одного блока и загрузить их в другой блок.
Так-же отдельно можно выделить:

  • настройки всех плат
  • настройки конкретной платы(не привязанные к слоту)
  • тдм маппер
  • Eth коммутатор

Часто блоки проекта сконфигурированные по разному содержат одинаковые или близкие настройки отдельных "частей", и для ускорения/упрощения процесса конфигурации пригодилась бы такая функция.(можно конечно вручную копировать нужные части в конфиг. файлах но это не очень удобно)

Attachments (3)

VEslot7.xml (16.4 KB ) - added by san 5 years ago.
config-29-04-2020.xml (46.6 KB ) - added by san 5 years ago.
messages (16.1 KB ) - added by san 5 years ago.

Download all attachments as: .zip

Change History (44)

comment:1 by san, 7 years ago

Description: modified (diff)

Ваня предложил ещё функцию "сброс в дефолт", добавил в описание.

comment:2 by alx, 5 years ago

In 1859/sw:

Добавлены функции экспорта/импорта настроек отдельных плат.
В веб-интерфейсе в диалоги конфигурации всех плат добавлен гамбургер
с выпадающим меню с пунктами "Экспорт настроек..." и "Импорт настроек...".
See #271.

comment:3 by alx, 5 years ago

Саша, новые функции сейчас можно попробовать в Нижнем Самурае: http://[2a01:540:26de:bc00::1234]/

Буду рад если ты попробуешь их в разных браузерах - хочется убедиться, что конфиг будет сохраняться при экспорте. Это сейчас сделано через жопу - в документ скриптом добавляется ссылка <a/>, затем она кликается, и сразу удаляется, и я не уверен, что везде это будет хорошо работать. Возможно, придется выдавать окно со ссылкой, чтобы можно было кликнуть вручную...

comment:4 by alx, 5 years ago

Еще поясню, как работает импорт - в загруженном конфиг-файле ищется конфиг того типа платы, в которую он импортируется. Указание номера слота при этом игнорируется. Если таких конфигов в файле несколько, будет импортирован самый первый.

in reply to:  1 comment:5 by alx, 5 years ago

Replying to san:

Ваня предложил ещё функцию "сброс в дефолт", добавил в описание.

Вижу в описании тикета лишь упоминание этой фукнции. Описания же этой функции (в чем она должна заключиться) я не вижу...

comment:6 by san, 5 years ago

Саша, новые функции сейчас можно попробовать в Нижнем Самурае

Хорошо, потыкаю...

Ваня предложил ещё функцию "сброс в дефолт"

Установка конфигурации платы в конфигурацию по умолчанию(в окнах некоторых плат есть такая кнопка "Сбросить").
По смыслу её функционал ближе к Экспорт и Импорт, чем к Ок/Применить/Отмена. Засунуть бы её в новое меню, а из текущего места убрать.

in reply to:  6 comment:7 by alx, 5 years ago

Replying to san:

Установка конфигурации платы в конфигурацию по умолчанию(в окнах некоторых плат есть такая кнопка "Сбросить").

А, теперь понял, что имелось в виду, спасибо. Мне просто казалось, что такая кнопка есть в диалогах всех плат. Теперь увидел, что, действительно, в некоторых диалогах этой кнопки нет...

Кстати, раз уж зашел об этом разговор, не пояснял ли Ваня, случайно, для чего ему может помочь функция сброса в дефолт? В чем суть такого улучшения? ИМХО в большинстве плат дефолтная конфигурация - все заблокировано и, соответственно, ничего не работает...

comment:8 by san, 5 years ago

Cc: Ivanmvtel added; anatoly removed

дефолтная конфигурация - все заблокировано и, соответственно, ничего не работает...

Могу предположить что для этого и нужно, чтобы выключить всё нажатием одной кнопки :)
Например для платы VE-01, могло бы пригодиться, если я хочу удалить все окончания, пользователей настройки ДВО и.т.д.
Можно и самого Ваню спросить.

comment:9 by san, 5 years ago

  1. Браузер Google Chrome Версия 80.0.3987.149(64 бит)

Экспорт настроек BS-220 прошёл нормально
Иморт тоже, но после Уведомления об успешном импорте, если нажать "Закрыть" в окне уведомления - окно платы пропадает

  1. Есть предложение при автоматическом формировании имени файла экспорта указывать в нём название платы и номер слота, так пользователю будет удобнее, мне точно.
Last edited 5 years ago by san (previous) (diff)

comment:10 by san, 5 years ago

если нажать "Закрыть" в окне уведомления - окно платы пропадает

Иногда окно платы пропадает сразу после импорта, ещё до появления окна Уведомления.

comment:11 by alx, 5 years ago

In 1860/sw:

В веб-интерфейсе при экспорте настроек плат в предлагаемое по умолчанию
имя файла добавлено название платы. See #271.

in reply to:  9 comment:12 by alx, 5 years ago

Replying to san:

  1. Есть предложение при автоматическом формировании имени файла экспорта указывать в нём название платы и номер слота, так пользователю будет удобнее, мне точно.

Частично согласен.

  1. Сохранение в файл полученного при клике ссылки документа выполняет браузер, следовательно, это от него зависит, какое имя будет у файла.
  2. В ссылке указан атрибут, предлагающий браузеру имя файла по умолчанию, с которым браузер может согласиться, может не согласиться (а еще может попасться браузер, не поддерживающий HTML5, и просто не знакомый с таким атрибутом).
  3. Как правило, пользователь имеет возможность влиять на имя создаваемого при сохранении документа файла и место его расположения (путь) и изменить выбранное браузером имя файла.
  4. Название платы добавил в имя файла, предлагаемое браузеру по умолчанию. В добавлении в имя файла номера слота, которое не играет никакой роли при импорте, не вижу смысла. Опять же, пользователь может добавить его сам, если посчитает нужным (см. предыдущтй пункт).

comment:13 by san, 5 years ago

Не уверен что ты заметил) поэтому повторю: у меня в тестах возникла проблема при импорте:

после Уведомления об успешном импорте, если нажать "Закрыть" в окне уведомления - окно платы пропадает

Я ожидал что после импорта окно платы будет на месте и в него будут загружены данные из файла, однако окно "схлопнулось" и "всё пропало" :)

in reply to:  13 comment:14 by alx, 5 years ago

Replying to san:

Не уверен что ты заметил)

Зря. :) Не беспокойся, я заметил.

поэтому повторю: у меня в тестах возникла проблема при импорте:

Ранее ты не говорил, что считаешь это проблемой, поэтому я ничего не ответил, просто принял к сведению, что в Google Chrome все работает правильно. :)

Я ожидал что после импорта окно платы будет на месте и в него будут загружены данные из файла, однако окно "схлопнулось" и "всё пропало" :)

Проблемы в этом нет. Так и должно быть, твои ожидания были неверны.

Также я сам проверял в браузерах Falcon, Opera и Otter - тоже все нормально. Пока оставляю как есть.

comment:15 by san, 5 years ago

т.е. рано я импорт начал проверять)?
ок, буду ещё тыкать другими браузерами

in reply to:  8 comment:16 by Ivanmvtel, 5 years ago

Replying to san:

дефолтная конфигурация - все заблокировано и, соответственно, ничего не работает...

Могу предположить что для этого и нужно, чтобы выключить всё нажатием одной кнопки :)
Например для платы VE-01, могло бы пригодиться, если я хочу удалить все окончания, пользователей настройки ДВО и.т.д.
Можно и самого Ваню спросить.

Для платы VE это актуально.

Так же ОЧЕНЬ хочется иметь возможность скинуть в дефолтное состояние все настройки Ethernet.

in reply to:  15 comment:17 by alx, 5 years ago

Replying to san:

т.е. рано я импорт начал проверять)?

Это твое личное дело, когда что проверять. Я лишь предоставил возможность.

Исправить найденную ошибку никогда не поздно, даже через 10 лет после релиза... :)

comment:18 by san, 5 years ago

Проблемы в этом нет. Так и должно быть, твои ожидания были неверны.

Теперь я понял почему мои ожидания не верны.

Ты реализовал функции

  • экспорта настроек из платы в файл
  • импорта настроек из файла в плату

А я ожидал увидеть функции

  • экспорта настроек из окна конфигурации платы в файл
  • импорта настроек из файла в окно конфигурации платы

На мой взгляд такая реализация была бы значительно удобнее для пользователя, т.к. при импорте пользователь сможет изменить часть настроек, а потом уже заливать их в плату.
(например, пользователь подключен к блоку через плату GE-04, и хочет импортировать из другой платы таблицу VLAN, а на другой плате выключен порт пользователя и нужно изменить конфиг перед загрузкой). Да и пользователю всегда удобней работать с тем что он видит - загрузил настройки из файла, в окно, убедился что всё в порядке и загрузил в плату.
Подозреваю что именно такой функционал Ваня и задумывал в своём предложении, хоть и буквально об этом не сказано.

in reply to:  18 comment:19 by alx, 5 years ago

Replying to san:

А я ожидал увидеть функции

  • экспорта настроек из окна конфигурации платы в файл

Реализация этой функции была бы намного более трудоемкой, так запись настроек платы в документ XML уже реализована в swd, и я просто воспользовался готовой функцией. Преобразование же в XML формы диалога в веб-интерфейсе пришлось бы делать с нуля, причем для каждого типа платы отдельно.

  • импорта настроек из файла в окно конфигурации платы

Аналогично, в демоне swd уже реализован разбор конфигурации из XML по переменным платы каждого типа, который выполняется после обнаружения платы. И я просто воспользовался им - после импорта настроек "симулируется" пропадание платы, после чего очередной опрос обнаруживает ее заново, и новая конфигурация вступает в действие выполнением уже давно существующего кода. Парсинг же конфига для заполнения полей формы диалога конфигурации, опять же, пришлось бы писать для каждого типа платы с нуля.

На мой взгляд такая реализация была бы значительно удобнее для пользователя, т.к. при импорте пользователь сможет изменить часть настроек, а потом уже заливать их в плату.

Ничто не мешает пользователю изменить настройки платы уже после того как они были в нее записаны.

Я согласен, что так, как ты говоришь, было бы удобнее. И приведенный тобой пример разумен. Но думаю, что дальнейшее повышение удобства не стоит того объема ресурсов, которые на это пришлось бы затратить. Все-таки я думаю, что импорт конфигурации, "ломающий" доступ к блоку, как в твоем примере - особый случай, в котором можно и вручную подправить файл перед импортом. В большинстве же других потенциальных случаях использования экспорта/импорта такой правки требоваться не будет. Я думаю, тут уже имеет место разумный баланс уровня удобства пользования и трудозатрат на его достижение.

Last edited 5 years ago by alx (previous) (diff)

comment:20 by san, 5 years ago

Пример, конечно, утрированный :)

Но думаю, что дальнейшее повышение удобства не стоит того объема ресурсов, которые на это пришлось бы затратить.

Понятно, пока в такой реализации, а дальше видно будет.

comment:21 by alx, 5 years ago

Саша, что-то я не могу найти подходящих иконок для импорта и экспорта. Может поможешь? Нужны иконки размером 24x24 для кнопок и 72x72 для диалогов...

comment:22 by alx, 5 years ago

In 1871/sw:

Реализованы функции экспорта и импорта настроек коммутатора ethernet платы SW-01.
See #271.

comment:23 by san, 5 years ago

иконок для импорта и экспорта

Может листочки со стрелочками использовать, те же что и для загрузки/сохранения конфига?

comment:24 by san, 5 years ago

Может быть имеет смысл и имя блока добавить при автоматическом формировании имени экспорта?

in reply to:  24 ; comment:25 by alx, 5 years ago

Replying to san:

Может быть имеет смысл и имя блока добавить при автоматическом формировании имени экспорта?

Учитывая, что экспорт/импорт задуман, главным образом, для переноса настроек из одного блока в другой, в добавлении имени блока не вижу смысла.

comment:26 by san, 5 years ago

Ну вот я о том-же подумал, но кажется логично сохранить из какого блока выкачены настройки.
Может Ваня что скажет.

in reply to:  26 comment:27 by alx, 5 years ago

Replying to san:

... кажется логично сохранить из какого блока выкачены настройки.

Как раз мне это кажется нелогичным. Поскольку функции служат для переноса настроек из одного блока в другой, следовательно, переносимые настройки не привязаны к какому-то конкретному блоку, и, следовательно, нет логики в закреплении имени блока в имени файла.

Более того, по той же причине (функции служат для переноса настроек) трудно представить, что кто-то будет хранить экспортированные настройки хоть сколько-нибудь долго. Экспортировав их из одного блока, оператор сразу откроет другой и импортирует их, после чего удалит более ненужный файл. При таком сценарии, как назывался файл - вообще пофиг. Трудно себе представить, что настройку какой-то платы экспортировали сегодня, а импортируют ее куда-то через месяц... Другое дело - полный конфиг-файл блока. Его имеет смысл хранить неопределенно долго как резервную копию...

comment:28 by san, 5 years ago

Относительно долго настройки плат может хранить тот кто настраивает однотипные блоки не один день. Но, с остальным согласен.

in reply to:  25 comment:29 by Ivanmvtel, 5 years ago

Replying to alx:

Replying to san:

Может быть имеет смысл и имя блока добавить при автоматическом формировании имени экспорта?

Учитывая, что экспорт/импорт задуман, главным образом, для переноса настроек из одного блока в другой, в добавлении имени блока не вижу смысла.

Согласен.

comment:30 by alx, 5 years ago

Resolution: fixed
Status: newclosed

In 1872/sw:

Добавлены функции экспорта и импорта настроек TDM. Closes #271.

by san, 5 years ago

Attachment: VEslot7.xml added

comment:31 by san, 5 years ago

Resolution: fixed
Status: closedreopened

Опробовал новую функцию импорта в деле, но что-то пошло не так.

  1. Сделал импорт настроек из окна платы VE-01 (файл для импорта приложен в сообщении выше)
  2. Импорт прошел успешно - отобразилось сообщение что настройки загружены в плату.
  3. Открыл окно конфигурации платы и не увидел ничего похожего на загруженные настройки, хотя ожидал, как минимум, увидеть маршруты.

Т.к. функция ещё свежая, не буду создавать отдельный тикет, а просто приоткрою этот.

Version 0, edited 5 years ago by san (next)

in reply to:  31 comment:32 by alx, 5 years ago

Replying to san:

Опробовал новую функцию импорта в деле, но что-то пошло не так.

Для анализа произошедшего прошу приложить полный конфиг блока (не забыв предварительно сохранить его) и лог-файл.

comment:33 by san, 5 years ago

Хм... после эксперимента я сохранил конфигурацию в ПЗУ и выгрузил конфиг своего блока.
В файле вижу для плат VE, странные строки, слот упоминается 2 раза...
<board type="VE-01" code="20" slot="11" slot="5">
...

<board type="VE-01" code="20" slot="7" slot="5">


in reply to:  33 comment:34 by alx, 5 years ago

Replying to san:

Хм... после эксперимента я сохранил конфигурацию в ПЗУ и выгрузил конфиг своего блока.

Я просил приложить конфиг-файл к этому тикету. Лучше анализировать ситуацию на основе первоисточника (файла), а не вольного пересказа о его содержимом. :)

Last edited 5 years ago by alx (previous) (diff)

comment:35 by san, 5 years ago

Я коммент написал раньше твоей просьбы, просто отправил позже)

by san, 5 years ago

Attachment: config-29-04-2020.xml added

by san, 5 years ago

Attachment: messages added

in reply to:  35 comment:36 by alx, 5 years ago

Replying to san:

Я коммент написал раньше твоей просьбы, просто отправил позже)

А я думал, это ответ на мою просьбу... :) Спасибо, сейчас посмотрю.

comment:37 by alx, 5 years ago

Resolution: fixed
Status: reopenedclosed

In 1897/sw:

Исправлена ошибка, приводившая к появлению двойных атрибутов при импорте конфигурации платы.
Closes #271.

in reply to:  31 comment:38 by alx, 5 years ago

Replying to san:

Т.к. функция ещё свежая, не буду создавать отдельный тикет, а просто приоткрою этот.

Не мог бы ты пояснить, в чем тут логика? Я не нахожу связи между свежестью одного тикета и созданием другого... Вроде бы создать новый тикет ничуть не сложнее (даже проще - не надо искать старый) чем переоткрывать старый...

Last edited 5 years ago by alx (previous) (diff)

comment:39 by san, 5 years ago

Я посчитал, что это ещё "доделывание" улучшения, поэтому сообщил в этот тикет.

comment:40 by alx, 5 years ago

В репозитории sw-r1897. В конфиг-файле придется вручную удалить вторые копии атрибутов.

comment:41 by san, 5 years ago

Да, я уже починил свой конфиг, спасибо.

Note: See TracTickets for help on using tickets.