Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 7532 - Wine-tests: задумки по структурной реорганизации робота   Make a simular bug
Summary: Wine-tests: задумки по структурной реорганизации робота
Status: DEFERRED
Alias: None
Product: WINE-tests
Classification: Свободные проекты (Open source projects)
Component: Общее (show other bugs)
Version: не указана
Hardware: PC All
: P4 minor
Target Milestone: ---
Assignee: Виталий Перов
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 6264
  Show dependency treegraph
 
In work:
Reported: 2011-08-13 19:36 MSK by Виталий Перов
Modified: 2015-02-28 16:53 MSK (History)
1 user (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Виталий Перов 2011-08-13 19:36:20 MSK
1)Хотелось бы, чтобы текущий класс get_mail возвращал полученные патчи по-одному. В этом случае удаление патчей можно выполнять после их обработки. В случае падения, патчи остаются в почтовом ящике.

2)Для использования уже существующего класса для задач не связанных с патчами (например бага 6185) нужно разделить существующий класс get_mail на два класса: mail_messages и mail_tasks.
mail_messages: общий класс, получающий по-очереди сообщения из почтового ящика, и умеющий их удалять.
mail_tasks - класс, который умеет вытаскивать из сообщений объекты wine_patch и merge_task.

3)Чтобы привести классы wine_patch и merge_task к единому виду, хотелось бы их наследовать от одного класса git_mail_task. Пока планируется только один общий метод - run().
Временно, можно попробовать обойтись и без обобщённого класса, добавив в wine_patch метод run().

4) wine_patch и merge_task имеют некоторые отличия. wine_patch может быть связан с несколькими репозиториями, а merge_task только с одним.
Для приведения их к общему виду нужно убрать привязку к нескольким репозиториям, и обеспечить дублирование патчей для каждого репозитория.
Сразу возникает проблема с уникальностью имён файлов (их тоже придётся дублировать).
Comment 1 Виталий Перов 2011-08-15 14:45:16 MSK
> Временно, можно попробовать обойтись и без обобщённого класса, добавив в
> wine_patch метод run().
Добавил метод run().
Comment 2 Виталий Перов 2011-08-15 16:08:25 MSK
(В ответ на comment #0)
> нужно разделить существующий класс get_mail на два класса:
> mail_messages и mail_tasks.
> mail_messages: общий класс, получающий по-очереди сообщения из почтового ящика,
> и умеющий их удалять.
> mail_tasks - класс, который умеет вытаскивать из сообщений объекты wine_patch и
> merge_task.

Начала реализацию.
Пока что встретились проблемы:
1) Одно сообщение может содержать несколько патчей. Т.е при очередном разборе сообщения нужно возвращать первый патч, а остальные хранить где-то во внутреннем буфере, и возвращать при следующем вызове get_next_patch().
2) Возникла проблема с удалением сообщения, когда оно содержит несколько патчей.
Если не все патчи из сообщения обработаны, то сообщение удалять нельзя.
Comment 3 Виталий Перов 2011-08-15 16:48:25 MSK
(В ответ на comment #2)
> Начала реализацию.
> Пока что встретились проблемы:
> 1) Одно сообщение может содержать несколько патчей. Т.е при очередном разборе
> сообщения нужно возвращать первый патч, а остальные хранить где-то во
> внутреннем буфере, и возвращать при следующем вызове get_next_patch().
> 2) Возникла проблема с удалением сообщения, когда оно содержит несколько
> патчей.
> Если не все патчи из сообщения обработаны, то сообщение удалять нельзя.
Закончил реализацию.
Исправил потенциальные проблемы.
Требуется протестировать решение и исправить встреченные проблемы.
Comment 4 Виталий Перов 2011-08-15 19:04:20 MSK
(В ответ на comment #3)
> Требуется протестировать решение и исправить встреченные проблемы.
Протестировал. Исправил проблемы. Работает.
Comment 5 Vitaly Lipatov 2014-09-11 18:46:30 MSK
Откладываем задачи, к которым не обращались более 100 дней.