Архив рубрики: Python
Python: requests, JFrog Artifactory и деплой
26 января 2016Пример скрипта деплоя. Задача скрипта — сохранить результаты билда в Artifactory и деплоить из Artifactory на хост с JBoss. Из «особенностей» — результатом билда являются два *.ear архива разных типов: ${GIT_COMMIT}-${VERSION}-unlock-service.ear — бекенд из одного репозитория; ${GIT_COMMIT}-${VERSION}-unlock-ui.ear — фронтенд из второго репозитория. ${GIT_COMMIT} грепается из git log, ${VERSION} — из файла build.gradle, в котором девелоперы устанавливают версию. В Artifactory… Читать далее »
Python: библиотка PyCrypto — шифрование файла
28 сентября 2015У нас имеется утилита, которая управляет билдами и деплоями. Помимо всего прочего — в ней прописаны несколько паролей — для авторизации в базе данных (Apache Cassandra) и для отправки почтовых уведомлений. Хранились они в plaintext виде, прямо в коде утилиты. Для решения этой задачи — был написан отдельный класс, который умеет шифровать и дешифровать файл, в… Читать далее »
Python: requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
3 сентября 2015Во время выполнения API запроса с помощью модуля requests — возникает ошибка: RDS Cloudlibrary module started at 31, Aug 2015 at 16:08:37 Task have Done status: NG-5859 URL variable not found, will default — https://www.dev.domain.com/cloudlibrary/ Removing MATH_DLL via https://www.dev.domain.com/cloudlibrary/data/488fe16f-bb89-4cc0-b972-c8b9044dc7ed Traceback (most recent call last): … File «C:RDSmanagerlibexternalrds_clc.py», line 92, in cloud_delete data_delete = self.session.delete(url) … requests.exceptions.SSLError:… Читать далее »
Python: скрипт переименования спринтов в JIRA
28 июля 2015Мы пользуемся Cloud-based версией JIRA, поэтому API может отличаться. Задача: переименовать спринты в JIRA. Обращение к спринтам в JIRA реализовано по их ID. Например, в URL https://account.atlassian.net/secure/RapidBoard.jspa?rapidView=23&view=reporting&chart=sprintRetrospective&sprint=144 ID спринта будет 144. Реализовано с помощью requests и argparse.
Python: ConfigParser — пример использования
11 июля 2015Для управления билдом нашего приложения — имеется утилита RDSmanager, написанная на Python 2.7. Одна из его задач — управления конфигурациями в INI-файле, который выглядит примерно так: [version_1_0_2_staging] MATH_DLL = 7a00ca94-b68d-4c89-a004-d3a4f5e7cf56 MATH_DLL_XML = 738174f7-f310-4989-8cae-da1690487e7c ASSETMANAGER_API_DLL = 2e9e3807-4f8a-4ae1-a873-4a8f6d152eaf ASSETMANAGER_API_DLL_XML = 024130cf-cbd9-41c2-b432-db9bc8565220 … [debug] MATH_DLL = 7b73c8f2-c5b6-435d-b310-37628302d1a0 MATH_DLL_XML = 5a349f50-76c3-456e-a885-f893c501a050 NETWORK_IMPL_DLL = 90a7b774-aa9a-4b85-b5e7-822333860588 …
Python: классы и объектно-ориентированное программирование
9 июля 2015Введение Прежде, чем говорить о классах — было бы хорошо понимать основы пространства имён в Python и основы жизненного цикла данных в нём. Имена Для начала — поговорим об именах. Имя — это просто идентификатор, который указывает на какой-то объект в памяти. Т.е., создавая объект в памяти — вы можете создать указатель, после чего обратиться… Читать далее »
Python: модуль Fabric — пример использования
27 июня 2015Python: модуль Fabric
17 июня 2015Описание, установка Fabric — система для управления и развёртывания приложений. Управляющие скрипты (аналог рецептов в Chef) пишутся на Python. И сам Fabric написан на Python. Особое значение (по крайней мере — для меня) имеет то, что Fabric отлично работает с SSH, позволяя выполнять любые действия на удалённой машине. При этом, в отличии от paramiko, имеет намного более… Читать далее »