![]() |
|
|
![]()
|
|
| bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
привет.
ситуация такова (все в интeрнете), есть
задача: автоматизировать эту процедуру, тем самым экономить эти минуты на билд. в день может быть несколько. присмотрелся на XML-RPC. разбил на под-задачи, т.е. из руби скрипта:
1. накопал trac4r. 2. понял, что стандартный xmlrpc клиент не поддерживает работу с SSL+certificates 3. понял что проблема в конфигурации объекта. создал патчи (приатачил) для xmlrpc/client.rb, и для trac4r/lib/query.rb, trac4r/trac4r.rb Прошел легко пункты 1, 2. на третьем завис. код клиента подключения (опустил данные аутентификации) тут:
Получил:
я не совсем понимаю где я устанавливаю (и я ли) это content-type. помогите старому хоббиту пинком в нужное направление. Это сообщение отредактировал(а) bilbobagginz - 22.8.2010, 13:40 Присоединённый файл ( Кол-во скачиваний: 1 )
patches.zip 1,61 Kb-------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
В XMLRPC::Client#do_rpc есть проверка следующего вида:
А Trac по ходу дела возвращает данные с Content-Type = application/xml Так что придётся тебе через class_eval переопределить вышеуказанный метод, чтобы он application/xml тоже переваривал. P.S. А вообще совет на будущее, как искать причину исключения: 1) Смотришь что находится по указанному адресу: /usr/lib/ruby/gems/1.8/gems/trac4r-1.2.3/lib/trac4r/query.rb:60:in `query' А там глобальный перехват исключений:
2) Оставляешь только return @connection.call(command,*args) и сразу видишь где на самом деле произошла ошибка. Хоть и не комильфо, но зато помогает, когда некоторые умельцы stack trace прячут. Это сообщение отредактировал(а) source777 - 22.8.2010, 16:46 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
я обратил внимание, что есть очень немало реализаций XMLRPC клиента.
интересно почему выбор разработчика trac4r пал именно на эту реализацию, и еще интересно почему именно эта реализация находится в дистрибутиве ruby :(
a почему бы не расширить класс Client ? есть какие-то "против" ? -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
вероятно, потому что она входит в стандартную библиотеку Ruby
Спроси что полегче... В стандартную библиотеку вообще входит достаточно много отстойных классов, взять тот же Net::HTTP или REXML. Почему так получилось хз, видимо исторически сложилось... Благо отказаться от использования этих классов ничего не стоит, т.к. есть масса достойных альтернатив. Что ты подразумеваешь под "расширить"? -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
я о реализации: когда вижу какой-то eval у меня ушки на макушке, т.к. стараюсь им пользоваться редко и с богобоязнью. если на настоящий момент единственный контент, поддерживаемый trac4r - "text/xml", то надеюсь можно сделать и без eval-oв. как начинающий, для мя метапрограммирование пока тонкое искусство... акромя того, это как добавить в только свои instances какую-то методу, а другим - не дам. жадно я как-раз за то, чтобы мои добавки кода проревизили и влили в стабильную ветку. и мне хорошо, и людям. авось откликнется. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Это хороший подход, но в данном случае придётся ждать Ruby 1.9.3, чтобы насладиться твоим патчем, если его примут. Или ты trac4r решил на другой XML-RPC клиент перевести? В общем я запутался, что ты собрался делать... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
khm...
проблема оказалась меж клавиатурой и стулом. сервер накрывался, если получал некорректно упакованные данные. нужно было посылать в функцию putAttachmentEx объект типа XMLRPC::Base64. его создание было тупо:
меня вдуплила инструкция, в которой написано было "конвертировать в Base64", и я принял его как кодировку, а не тип объекта. в общем разобрался! теперь мой хадсон шлет билды на вику трэка, и оповещает о них по джабберу/почте к делу относящихся. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Ну что ж, поздравляю. Оказывается надо было просто заглянуть в логи Trac'a
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
пообщался по irc, там один питонец меня направил, сказав, что видимо я не загрузил в правильную структуру на клиенте. все доработал скрипт работает как часы, табличку со ссылками заполняет. прикольно надо кинуть куда-то скрипт на github -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Правила форума "Ruby: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |