Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

CentOS: обновление PHP 5.3 до 5.5

7 октября 2015
 

 Система: # cat /etc/redhat-release CentOS release 6.7 (Final) Проверяем текущую версию PHP: # php -v PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies Для обновления — потребуются репозитории Remi  и Epel.

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.

CentOS: установка Oracle Java 7 вместо OpenJDK

12 июля 2015
 

 Со страницы загрузок качаем нужный пакет, например: Linux x64 131.69 MB jdk-7u79-linux-x64.rpm Устанавливаем его: # rpm -ivh /home/setevoy/jdk-7u79-linux-x64.rpm Находим оба исполняемых файла — OpenJDK и Oracle: # find / -name «java» -type f /var/lib/alternatives/java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-28.b13.el6_6.x86_64/jre/bin/java /usr/java/jdk1.7.0_79/jre/bin/java /usr/java/jdk1.7.0_79/bin/java

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 июня 2015
 

 Общие сведения о модуле можно найти в посте Python: модуль Fabric. Ниже — пример использования. Класс используется для работы с нашей базой данных Cassandra, что бы загружать, получать или удалять файлы.

Python: модуль Fabric

17 июня 2015
 

 Описание, установка Fabric — система для управления и развёртывания приложений. Управляющие скрипты (аналог рецептов в Chef) пишутся на Python. И сам Fabric написан на Python. Особое значение (по крайней мере — для меня) имеет то, что Fabric отлично работает с SSH, позволяя выполнять любые действия на удалённой машине. При этом, в отличии от paramiko, имеет намного более… Читать далее »