• Как передать код возврата из Python 3.X?

    @lnl Автор вопроса
    Вопрос решен, косяк Jenkins... Python выдает правильный код возврата, а вот Jenkins напрочь отказывается его воспринимать. Решил вопрос присвоением переменной значения 0/1 из временного файла, который впоследствии затирается. Если 1, то exit 1, иначе exit 0
    Ответ написан
    Комментировать
  • Какой формат дат на python использовался?

    @lnl Автор вопроса
    Сделал сам, всем спасибо! Вот код, если кому интересно:
    from datetime import datetime, timedelta
    import re
    
    #Текущая дата
    NowDate = datetime.date(datetime.now())
    
    #Полученная дата в текст, обрезаем лишние символы, добавляем три часа, так как полученное время было GMT +0 и оставляем только дату
    JenkinsDate = str(LastSuccessDate) #LastSuccessDate - переменная, получающая циклом дату вида: 2015-05-31 23:24:59+00:00
    JenkinsDate = JenkinsDate[0:-6]
    JenkinsDate = datetime.strptime(JenkinsDate, '%Y-%m-%d %H:%M:%S')
    JenkinsDate = JenkinsDate + timedelta(hours=3)
    JenkinsDate = datetime.date(JenkinsDate )
    
    #Разница дат
    DateDelta = str(NowDate -JenkinsDate)
    
    if re.search('day,', DateDelta):
        DateDelta=DateDelta[0:-13]
    elif re.search('days,', DateDelta):
        DateDelta=DateDelta[0:-14]
    else:
        DateDelta='0'            
    
    print('Последний успех: '+ str(DateDelta) + ' дня(-ей) назад')
    Ответ написан
  • Как в joomla 3 отобразить новые новости сверху?

    @lnl Автор вопроса
    Aborrol: спасибо Вам за поддержку)))
    Поставил Порядок категории как "Не упорядочивать" в менеджере материалов и заработало, новые новости вверху теперь) Странно, конечно, но работает...
    Ответ написан
    1 комментарий
  • Как обратиться к Oracle из командной строки?

    @lnl Автор вопроса
    Разобрался! Прописал ORACLE_HOME и ORACLE_SID на расшаренную папку только для чтения и все взлетело. Правда, немного пришлось подправить батник:
    set nls_lang=russian_cis.ru8pc866
    md \\Srv01\BACKUPORA\%date:~6,4%_%date:~3,2%_%date:~0,2%
    \\Srv01\BIN\exp.EXE USERID=SCOTT/Tiger@orcl FULL=Y FILE=\\Srv01\BACKUPORA\%date:~6,4%_%date:~3,2%_%date:~0,2%\full.dat LOG=\\Srv01\BACKUPORA\%date:~6,4%_%date:~3,2%_%date:~0,2%\full.LOG

    Имя хоста выкинул.
    Ответ написан
    Комментировать
  • Как зайти/сбросить пароль в БД oracle 11G?

    @lnl Автор вопроса
    Получилось, с паролем какая-то фигня была по ходу...
    sqlplus sys@YOUR_SID as sysdba
    SQL> ALTER USER SCOTT ACCOUNT UNLOCK;

    И заодно сменил пароли для SYS и SYSTEM командами:
    SQL> ALTER USER SYS IDENTIFIED BY NEW_PASSWORD;
    SQL> ALTER USER SYSTEM IDENTIFIED BY NEW_PASSWORD;

    А еще, может кому пригодится, если ввести команду:
    set nls_lang=russian_cis.ru8pc866
    , то отображение будет на русском языке (если у кого-то еще как и у меня кракозябры вместо символов)
    Ответ написан
    Комментировать
  • Как убрать отступы до и после круговой диаграммы (Google Pie Chart)?

    @lnl Автор вопроса
    Вопрос закрыт, заюзал раскрывающийся блок!
    Ответ написан
  • Как убрать Full project name в описании проекта в Jenkins?

    @lnl Автор вопроса
    Собственно никак:)) В папках (плагин ставится для папок специальный) всегда будет строка с полным путем... В XML и настройках плагина и Jenkins ничего нет, только в *.hpi плагина есть в шестнадцатиричной системе счисления, но тут я не силен, так что пришлось на это дело забить...
    Ответ написан
    Комментировать
  • Как объединить в группы элементы в генерируемом отчете на html скриптом на питон?

    @lnl Автор вопроса
    Собственно мудрено сделал, но работает, разбираться пока лень, но работает...
    MainAdded=0
    StableAdded=0
    AddingGroup=True
    CountSuccess=0
    CountFail=0
    CountAbortedProceed=0
    CountSuccessMain = 0
    CountSuccessStable = 0
    CountFailMain = 0
    CountFailStable = 0
    CountAbortedProceedMain = 0
    CountAbortedProceedStable = 0
    
    #код ниже находится в цикле
    if BuildStatusRus == 'Протестировано успешно':
        CountSuccess=CountSuccess+1
        if not re.search('OutPlain', CurrentNameJobGood):
            CountSuccessMain = CountSuccessMain + 1
        else:
            CountSuccessStable = CountSuccessStable + 1
    elif BuildStatusRus == 'Протестировано с ошибками':
        CountFail=CountFail+1
        if not re.search('OutPlain', CurrentNameJobGood):
            CountFailMain = CountFailMain + 1
        else:
            CountFailStable = CountFailStable + 1
    else:
        CountAbortedProceed=CountAbortedProceed+1
        if not re.search('OutPlain', CurrentNameJobGood):
            CountAbortedProceedMain = CountAbortedProceedMain + 1
        else:
            CountAbortedProceedStable = CountAbortedProceedStable + 1
    CountAll=CountSuccess+CountFail+CountAbortedProceed
    CountAllMain=CountSuccessMain+CountFailMain+CountAbortedProceedMain
    CountAllStable=CountSuccessStable+CountFailStable+CountAbortedProceedStable
    
    if not re.search('OutPlain', CurrentNameJobGood):
        if MainAdded==1:
            AddingGroup = False
        else:
            MainAdded=1
            StableAdded=0
            AddingGroup = True
    else:
        if StableAdded==1:            
            AddingGroup = False
        else:
            StableAdded=1
            MainAdded=0
            AddingGroup = True
    
    Tr2 = """<tr bgcolor = "#00BFFF">
    <td colspan="3"><b>Группа проектов: </b>{ProjectGroup}</td>
    </tr>"""
    
    if AddingGroup==True and MainAdded==1:
        NewTr2 = Tr2.format(ProjectGroup='<b>Main (Основное хранилище)</b>',AllCountTmpl=CountAllMain,CountSuccessTmpl=CountSuccessMain,CountFailTmpl=CountFailMain)#, из них успешных: <br>' + CountSuccessMain + '</b>, провалившихся: <b>' + CountFailMain + '</b>')
        AddingGroup = False
    elif AddingGroup==True and StableAdded==1:
        NewTr2 = Tr2.format(ProjectGroup='<b>Stable (Внеплановое хранилище)</b>',AllCountTmpl=CountAllStable,CountSuccessTmpl=CountSuccessStable,CountFailTmpl=CountFailStable)#, из них успешных: <br>' + CountSuccessStable + '</b>, провалившихся: <b>' + CountFailStable + '</b>')
        AddingGroup = False
    else:
        NewTr2 = """"""

    Можно было сделать и проще, но в лом уже, есть небольшие недочеты, типа создание еще одной группы если после Stable есть еще проекты.
    Ответ написан
    Комментировать
  • Как отправить на почту отчет сформированный скриптом Python 3.4 в системе Jenkins?

    @lnl Автор вопроса
    Вопрос решен. Дописал скрипт, что бы еще копия файла создавалась со статичным именем report.htm в папке проекта, затем в настройках проекта в Jenkins кинул прямую ссылку на файл в Default Content.
    Ответ написан
    Комментировать
  • Как получить поля заданий из системы CI Jenkins скриптом на Python 3.4?

    @lnl Автор вопроса
    Проблему удалось решить своими силами, всем спасибо. Самый нормальный API для Jenkins это jenkinsapi
    Ставим его через
    pip install jenkinsapi
    или любым другим способом, который нравится.
    Код для проверки:
    #Необходимые библиотеки
    import jenkinsapi
    from jenkinsapi.jenkins import Jenkins
    jenkinsci = Jenkins('http://localhost:8080') #путь к Jenkins
    print(jenkinsci.version) #Проверяем версию

    Страничка библиотеки jenkinsapi и документация по ней.
    Ответ написан
    Комментировать
  • Как выгрузить определенные поля таблицы из DB Oracle 11G в файл скриптом, написанным на Python 3.4?

    @lnl Автор вопроса
    Сделал как-то так пока:
    connection = cx_Oracle.connect('scott/tiger@oradb')
    db_cursor=connection.cursor()
    db_cursor.execute("""
    SELECT USER_NAME, USER_DEPT
    FROM USERS
    ORDER BY USER_NAME""")

    Помогите скорректировать что бы "это" работало? И как это потом выгрузить в файл? Что записывать в переменную - курсор?
    Ответ написан
    Комментировать