Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

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

Возможны три варианта инициализации:

  1. Инициализация значением по умолчанию. Свойство может быть инициализировано значением по умолчанию только тогда, когда значение по умолчанию описано в xml-файле;
  2. Получить значение из установленного свойства. Если в ранней версии услуги было свойство того же типа, что и новое свойство, то значение для нового свойства можно скопировать из значения установленного свойства;
  3. Указать явно. Можно явно указать, каким значением инициализировать новое свойство.
Если хотя бы для одного из новых свойств не указано правило миграции - обновление услуги не выполняется.
Все файлы-описания услуг должны располагаться в папке /var/lib/ecss/ss/ на том же хосте, где и запущен DS.

Для обновления услуг с текущей версии (установленной в системе) до версии, указанной в xml, используется следующая команда CLI:

/cluster/storage/<SOME_STORAGE>/ss/update <NAME_DS> -<Flag> <SSTemplate>

либо

/node/<NAME_DS>/ss/update -<Flag> <SSTemplate>

где <SOME_STORAGE> - имя кластера хранения долговременных данных (DS);
<NAME_DS> - имя ноды DS;
<Flag> - флаг, принимает значения:

  • -a, --auto - использовать правила миграции, описанные в xml (если они прописаны);
  • -m, --manual - не использовать правила миграции, описанные в xml (если они прописаны). В данном случае для всех новых свойств необходимо будет явно задать значения;
    <SSTemplate> - имя xml файла-описания услуги. В качестве файла-описания услуги может использоваться маска поиска. В этом случае все файлы, имена которых удовлетворяют этой маске, будут установлены в систему. В маске поиска используются символы: * - любое количество символов, ? - ровно один символ.

Пример

Обновление услуги "test" с версии 1 до версии 2.

admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/ss/update ds1@ecss1 --manual ss_test_2.xml
[update] The value of the property restrict_number_22 may be copied from one of the prope
         rty:
         test_field, restrict_number
Would you like to copy properties' value?: yes/no ?> yes
[update] Select property to copy it's value to the restrict_number_22.
         Avaliable values: test_field, restrict_number
Property name: : test_field/restrict_number ?> test_field
[update] New property test_field_2 have default value 9.
Would you like to apply this value for all activate aliases?: yes/no ?> yes
[update] 
Would you like to enter default value search_strategy :: enum for already activated aliases?: yes/no ?> yes
[update] 
Default value for search_strategy: first
[update] 
Would you like to enter default value test_field_without_value :: [integer] for already activated aliases?: yes/no ?> yes
[update] 
Default value for test_field_without_value: 234
[update] 
Default value for test_field_without_value: [234]
Successfully updated: /var/lib/ecss/ss/ss_test_2.xml
  • Нет меток