Импорт проекта из jira 8.4.1 в jira 8.18.0 через adaptivist project configurator

Импорт проектов из jira 8.4.1 в jira 8.18.0 через adaptivist project configurator

В этой статье будут описаны все радости и затыки возникшие при работе с плагином project configurator.

Тестового стенда на этом проекте нет в принципе, поэтому как взрослые пацики льём сразу в прод.

Для импорта используется project configurator триальная лицензия и вопрос о покупке я даже не задавал, главная причина здесь в том что согласование будет длиться несколько месяцев, а импорт как водится нужен вчера и для разовой задачи - ответ на вопрос готовы ли купить можно предвидеть(Здесь вспомнился анекдот: -Мальльчик, родители дома? -[стряхивая пепел на ковёр]Сам то как думаешь).

Итак поехали: 1) Сначала файл не грузился через аплоад и появлялась следующая ошибка File /var/atlassian/application-data/jira/import/projectconfigurator/null does not exist or Jira does not have permissions to open and read it. com.awnaba.projectconfigurator.utils.errorhandling.UserInputException: File /var/atlassian/application-data/jira/import/projectconfigurator/null does not exist or Jira does not have permissions to open and read it. Почему-то на нее упорно файлы не грузятся. /var/atlassian/application-data/jira/import/projectconfigurator/ какие нибудь файлы? Ищем что то вроде project-dump_BNIB-Q5U7-WX4Q-BTHU_PROJECTNAME.zip

1) Эмуляция импорта прошла успешно всё зелено:

2) После попытки нажать "Apply Configuration" столкнулся с ошибкой: Evaluation licenses are not allowed to import into a production Jira. Run a simulation import or test the import on a test/staging instance.

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

3) Далее стокнулся с ошибкой: servicedesk_automation_default_linktype error thrown when importing project

Ага - понятно если поставить servicedesck все должно разрулиться само, но нет - это не помогло.

Skip configurations для issue links type тоже не помогает

По XML видно что в самих тасках тип ссылки 'Problem/Incident' нигде не используется - соответсвенно предпологаю что если удалить этот тип из xml, то должно заработать. Нахожу данные об этом типе в файлах entities.xml и в config.xml

<issueLink>
                <name>Problem/Incident</name>
                <inward>is caused by</inward>
                <outward>causes</outward>
                <style>servicedesk_automation_default_linktype</style>
</issueLink>

Но это тоже не помогает. И что еще более странно после удаления этих строк ошибка сохраняется. Решением был апдейт через базу по kb.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.ofbiz.OfBizDelegator
import groovy.sql.GroovyRowResult
import groovy.sql.Sql
import org.ofbiz.core.entity.ConnectionFactory
import org.ofbiz.core.entity.DelegatorInterface

import java.sql.Connection

select("""SELECT * FROM issuelinktype;""")
//update("delete/insert ...")
def select(String query) {
    OfBizDelegator delegator = ComponentAccessor.getOfBizDelegator();
    DelegatorInterface delegatorInterface = delegator.getDelegatorInterface();
    String helperName = delegatorInterface.getGroupHelperName("default");
    Connection connection = ConnectionFactory.getConnection(helperName);
    Sql sql = new Sql(connection);

    List<GroovyRowResult> resultRows = []
    try {
        resultRows.addAll(sql.rows(query));
    } finally {
        //sql.close()
        connection.close()
    }

    return resultRows
}

def update(String query) {
    OfBizDelegator delegator = ComponentAccessor.getOfBizDelegator();
    DelegatorInterface delegatorInterface = delegator.getDelegatorInterface();
    String helperName = delegatorInterface.getGroupHelperName("default");
    Connection connection = ConnectionFactory.getConnection(helperName);
    Sql sql = new Sql(connection);
    def numberOfUpdated
    try {
        numberOfUpdated = sql.executeUpdate(query);
    } finally {
        //sql.close()
        connection.close()
    }
    return numberOfUpdated
}

4) После этого эмуляция опять зеленая, 2021-11-05_11-22

но при нажатии "Apply Configuration" появляются те же ошибки

ERROR 11:45:54,842 The custom field 'Статус эпика' requires option 'To Do' for the import but it does not exist in the current JIRA instance. ERROR 11:45:54,842 The custom field 'Статус эпика' requires option 'Нужно сделать' for the import but it does not exist in the current JIRA instance.

Непонятно. Ведь это строковое представление существующего значения 'Сделать'

Решилось в итоге после разблокирования системного поля Epic Status по kb

Аплоад пока так и не работает, логи особо ничего дельного не говорят - пока что подкладываем файлики на сервер напрямую.

Важно: При миграции в продакшен нужно отключить email уведомления чтобы не отправлялись сообщения о создаваемых учетных записях

https://confluence.atlassian.com/adminjiraserver081/preparing-for-migrating-projects-970610009.html

Ошибка Data import for project PROFILE did NOT complete.

Mapping results info: Users ERRORS: There are '3' required user(s) that Jira can not automatically create.

Гуглилась как

https://confluence.atlassian.com/jirakb/project-import-fails-with-validation-errors-were-found-in-jira-1026547594.html

Но пришлось заменить еще автозаменой все вхождения битых пользователей. Запрос в базу здорово помог