def mapToList(depmap) |
/** * Метод преобразования словаря в список * @param depmap - словарь для преобразования */ |
def getValidatedParams() |
/** * Метод возвращения провалидированных параметров * @return провалидированные параметры */ |
def checkoutRepo(GitUrlSources, GitBranchSources, GitCredentialsId) |
/** * Метод checkout репозитория * @param GitUrlSources - ssh ссылка на репозиторий * @param GitBranchSources - ветка в репозитории * @param GitCredentialsId - credential для доступа в репозиторий */ |
def checkoutRepoWithRefspec(GitUrlSources, GitBranchSources, GitCredentialsId) |
/** * Метод checkout репозитория с использованием refspec * @param GitUrlSources - ssh ссылка на репозиторий * @param GitBranchSources - ветка в репозитории * @param GitCredentialsId - credential для доступа в репозиторий */ |
def pushRepo(String GitUrlSources, String GitBranchSources, String GitCredentialsId, String commitMessage, String AddOptions = "*", Boolean pullRepo = false, String GitBranchSourcesPullRepo = null, String addATag = null) |
/** * Метод push'а изменений в репозиторий * @param GitUrlSources - ssh ссылка на репозиторий * @param GitBranchSources - ветка в репозитории * @param GitCredentialsId - credential для доступа в репозиторий * @param commitMessage - сообщение в commit * @param AddOptions - опции для git add. Если не указывать, то выполнится git add * @param pullRepo - сделать предварительный pull из ветки * @param GitBranchSourcesPullRepo - ветка в репозитории источника pull * @param addATag - добавляемый к коммиту тег */ |
def syncRemoteRepo(GitUrlSourcesFrom, GitBranchSourcesFrom, GitUrlSourcesTo, GitBranchSourcesTo, GitCredentialsId) |
/** * Метод синхронизации двух репозиториев * @param GitUrlSourcesFrom - ssh ссылка на репозиторий из которого брать исходники * @param GitBranchSourcesFrom - ветка в репозитории из которого брать исходники * @param GitUrlSourcesTo - ветка в репозитории в которую заливать исходники * @param GitBranchSourcesTo - ветка в репозитории в которую заливать исходники * @param GitCredentialsId - credential для доступа в репозиторий */ |
def sendHtmlLetter(def mailList, def title = null, def body, def ccList = null, def needReplaceNewLine = true) |
/** * Метод отправки письма * @param mailList - список email получателей * @param title - тема * @param body - тело письма * @param ccList - список email получателей (Копия) * @param needReplaceNewLine - нужно ли заменять символы новой строки */ |
def sendHtmlLetterWithAttach(def mailList, def style = null, def title = null, def body, attachmentsPattern, sendEmail = false, def ccList = null) |
/** * Метод отправки письма с вложением * @param mailList - список email получателей * @param style - стили html элементов * @param title - тема * @param body - тело письма * @param attachmentsPattern - вложение. Не содержит символа ':' * @param sendEmail - условие отправлять ответ запустившему Jenkins Job */ |
def checkFileExists(path) |
/** * Метод проверки существования файла * @param path - путь до файла */ |
def requestInput(Map args) |
/** * Метод вывода input окна * @param args - аргументы для окна ввода * @return результат input */ |
def requestPassword(msg, fields_array, submitterParameter, defaultValue) |
/** * Функция для безопасного запроса пароля, С возможностью работы в job-ах автопроверки PR * @param msg - сообщение в input * @param fields_array - поля в input * @param submitterParameter - разрешенные approvers * @param defaultValue - значение по умолчанию * @return результат input */ |
def shellHandler(shellCmd) |
/** * Метод для обработки shell команд. Для случаев когда status code != 0. Иначе в Jenkins выводится не информативная ошибка * @param shellCmd - Команда для выполнения * @return Возвращает ответ команды, либо текст ошибки, если статус код != 0 */ |
def ansible_vault(String mode, src, String mask = 'secret*.y*ml', String ansibleVaultCredentialsId = config.AnsibleVaultCredentialsId, needInputVault = config.needInputVault, def needPrintOutput = true, DevOpsVenvDir = config.DevOpsVenvDir, pyCMD = config.pyCMD, verbose = config.verbose) |
/** * Метод запуска ansible-vault * @param mode - Режим работы: decrypt, encrypt * @param src - Каталог для обработки * @param mask - Маска поиска файлов для обработки * @param ansibleVaultCredentialsId - ID credential для шифровки, расшифровки * @param needInputVault - Флаг самостоятельного ввода пароля для расшифровки secret(s) * @param needPrintOutput - нужен ли вывод * @param DevOpsVenvDir - папка DevOpsVenv * @param pyCMD - версия python * @param verbose - расширенное логирование * @return - список путей файлов secret(s) в рабочем пространстве */ |
def ansible_vault_backup(String mode, ArrayList list, String ansibleVaultCredentialsId = config.AnsibleVaultCredentialsId) |
/** * Метод запуска ansible-vault * @param mode - Режим работы: decrypt, encrypt * @param list - список файлов для расшифровки * @param ansibleVaultCredentialsId - ID credential для шифровки, расшифровки * @return - список путей файлов secret(s) в рабочем пространстве */ |
def sendStashComment(stashCredentialsId, commentText, urlStashApi, needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод для отправки комментария в Stash * @param stashCredentialsId - credential для работы с Stash * @param commentText - Текст комментария * @param urlStashApi - ссылка на rest api Stash * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault */ |
def changeApproveStatus(stashCredentialsId, stash, project, repo, prId, status, needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод для изменения approve на merge технической учетной записью * @param stashCredentialsId - credential для работы с Stash * @param stash - ссылка на stash * @param project - проект в stash * @param repo - репозиторий проекта в stash * @param prID - Id pull-request в stash, * @param status - Статус, в который нужно перевести approve технической учетной записи: [NEEDS_WORK,APPROVED] * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault */ |
def changeStashUrlApproveStatus(stashCredentialsId, stashUrl, status, needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод для изменения approve на merge технической учетной записью по URL * @param stashCredentialsId - credential для работы с Stash * @param stashUrl - ссылка Stash * @param status - Статус, в который нужно перевести approve технической учетной записи: [NEEDS_WORK,APPROVED] * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault */ |
def checkPyV(version, pyCMD = config.pyCMD, verbose = config.verbose) |
/** * Метод получения нужной версии python на slave * @param version - версия python для проверки * @param pyCMD - версия python * @param verbose - расширенное логирование */ |
def convertMapToJson(map) |
/** * Метод преобразования словаря в строку * @param map - словарь для преобразования * @return словарь в виде строки * WARNING: при выводе словаря, созданного этим методом, в лог Jenkins кириллические символы заменяются соответствующим utf-кодом * Лучше использовать метод Jenkins writeJSON */ |
def getFileName(def path) |
/** * Метод получения имени файла по пути * @param path - путь к файлу * @return имя файла */ |
def runPythonLib(String name, def parametes = "", def pythonVersion = 0, def needPrintOutput = true, DevOpsVenvDir = config.DevOpsVenvDir, pyCMD = config.pyCMD, verbose = config.verbose) |
/** * Метод запуска библиотеки python * @param name - имя запускаемого скрипта * @param parametes - параметры для запуска * @param pythonVersion - версия Python * @param needPrintOutput - нужен ли вывод * @param DevOpsVenvDir - папка DevOpsVenv * @param pyCMD - версия python * @param verbose - расширенное логирование * @return вывод результата работы python скрипта */ |
def useAdditionalFile(String name, String encoding = null) |
/** * Метод чтения дополнительных файлов * @param name - имя файла * @param encoding - кодировка * @return возвращает содержимое файла */ |
def installDevOpsPyLib(pyCMD = config.pyCMD, DevOpsVenvDir = null) |
/** * Метод установки Python библиотеки * @param pyCMD - версия python * @param DevOpsVenvDir - папка DevOpsVenv */ |
def requiredNotEmpty(name, configParam) |
/** * Метод валидации, что параметр не пустой * @param name - имя параметра * @param configParam - параметр из словаря config */ |
def requiredNotEmptySCM(git, value, validation) |
/** * Метод валидации, что параметр для репозитория не пустой * @param git - репозиторий * @param value - значение * @param validation - валидация */ |
def requiredLimitedValues(name, allowed_values, configParam, description = "") |
/** * Метод валидации, разрешенных значений для параметра * @param name - имя параметра * @param allowed_values - разрешенные значения * @param configParam - параметр словаря config * @param description - описание параметра */ |
def optionalParam(name, configParam) |
/** * Метод валидации, что параметр опциональный * @param name - имя параметра * @param configParam - параметр словаря config */ |
def setPropsIfNotExist(key, default_value, configParam, description = "") |
/** * Метод валидации, что параметру задается значение по умолчанию, если не задано обратного * @param key - имя параметра * @param default_value - значение по умолчанию * @param configParam - параметр словаря config * @param description - описание параметра */ |
def git_files_compare(git_list, find_list, int last_remove = 1) |
/** * Метод сравнения списка файлов * @param git_list - список из Git * @param find_list - найденный список * @param last_remove - индекс до которого удалять сегмент пути * @return возвращает список файлов */ |
def createPullRequest(String stashCredentialsId, String stash, String project, String repo, String from_branch, String to_branch, ArrayList reviewers = [], String title = "", String description = "", ArrayList validResponseCodes = null, ArrayList customHeader = [], Boolean needVault = config.needVault, String workspace = config.workspace, LinkedHashMap credentialTypes = config.credentialTypes, LinkedHashMap configurationBlock = config.configurationVault) |
/** * Создание pull-request для сравнения * @param stashCredentialsId * @param stash - HTTP ссылка на stash * @param project - проект в stash * @param repo - репозиторий в stash * @param from_branch - из какой ветки * @param to_branch - в какую ветку * @param reviewers - подтверждающие изменения * @param title - заголовок pull-request * @param description - описание pull-request * @param validResponseCodes - отрезок кодов запросов, которые будут считаться успешными * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault */ |
def getPullRequestActivities(stashCredentialsId, stash, project, repo, pullRequestID, customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Получения списка активностей pull-request из Bitbucket * @param stashCredentialsId - credential для работы с Stash * @param stash - ссылка Stash * @param project - проект в stash * @param repo - имя nexus репозитория * @param pullRequestID - ID pull-request * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return Список активностей */ |
def getDiffFromStash(stashCredentialsId, stash, project, repo, path, from, to, customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Получение diff-а * @param stashCredentialsId - credential для работы с Stash * @param stash - ссылка Stash * @param project - проект в stash * @param repo - имя nexus репозитория * @param path - путь до папки или файла из корня git репозитория для которого хотим получить diff * @param from - ветка в репозитории или commit, начиная с которой отслеживаем изменения * @param to - ветка в репозитории или commit, до которой отслеживаем изменения * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return список с diff-ом */ |
def getPrInfo(stashCredentialsId, stash, id, project, repo, what = '', customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод получения информации о pull-request * @param stashCredentialsId - Credential для доступа к stash * @param stash - HTTP ссылка на stash * @param id - номер pull-request * @param project - проект в stash * @param repo - репозиторий в stash * @param what - что получать * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return */ |
def findAllInString(configFile, regularExp, notFind = "") |
/** * Поиск строк, которые удовлетворяют регулярному выражению * @param configFile - содержимое текстового файла * @param regularExp - регулярное выражение, по-которому будет выполняться поиск совпадений в строчке * @param notFind - что не должно быть в строчке * @return found список строк, удовлетворяющих условиям */ |
def sort2Dmap(map) |
/** * Сортировка 2D map по значениям * @param map - структура, которую нужно отсортировать * @return result отсортированный словарь */ |
String getStyleHtml() |
/** * Получение стиля оформления html страницы * @return стиль оформления html страницы */ |
def findLinesWithDate(def log, def listenersSetting, def minutes) |
/** * Подтверждение отключения шлюзов * @param log - лог Pod * @param listenersSetting - настройки слушателя * @param minutes - время отключения */ |
def sdpFolderExist(cluster, project, path, returnStdout = true) |
/** * Метод проверки наличия каталога для стендозависимых параметров * @param cluster - имя кластера * @param project - название системы оркестрации приложений проекта * @param path - путь к репозиторию стендозависимых в Jenkins Job * @param returnStdout - отвечает за вывод сообщений * @return результат true/false, в случае true заполняется переменная sdpFolder */ |
def splitString(stringData, String separator = "") |
/** * Метод разделения текста на список по указанному разделителю * @param stringData - строка которую нужно разбить * @param separator - разделитель по которому нужно провести split * @return список */ |
def getExpirationDate(Date date, int daysPeriod, holidays = '01-01-2021,23-02-2021,08-03-2021,01-05-2021,09-05-2021,12-06-2021,04-11-2021') |
/** * Метод для определения периода действия (будние дни) * @param date - дата начала периода * @param daysPeriod - количество дней периода * @holidays - праздничные дни * @return результат - [date: 'dd-MM-yyyy', status: true/false] * @result date - дата окончания периода * @result status - (true - период закончен, false - период не закончен(активен)) */ |
def findParameterValues(section, pattern, group = 1) |
/** * Метод поиска значений для параметра (поиск по регулярному выражению) * @param section - секция(блок) в yml-файла для поиска параметра * @param pattern - регулярное выражение для поиска параметра * @param group - группа в регулярном выражении (значение параметра) * @return result - список значений параметра */ |
def isCorrectParameterValues(listValues, checkValues) |
/** * Метод проверки значений параметра с рекомендуемым * @param listValues - список проверяемых значений * @param checkValues - список рекомендуемых значений * @return результат true\false */ |
def getGavParamsNexus(String gavParam, String ciXml) |
/** * Метод для формирования имени архива, ссылки и nexusGroupId, на основании GAV параметра * @param gavParam - GAV параметр * @param ciXml - xml с информацией по КЭ * @return результат словарь с извлеченными параметрами */ |
def PublishQGNameForDistrib(distribName, nexusGroupId, nexusUrl, QGname = config.QGName, gavParam = null, nexusSegment = config.nexusSegment, nexusReleaseRepo = config.nexusReleaseRepo, version = null, nexusQGCredentialsId = config.nexusQGCredentialsId, needVault = config.needVault) |
/** * Метод публикации QG в QGM для дистрибутива (контроля прохождения соответствующей проверки в методе нет) * @param distribName - Наименование дистрибутива в Nexus * @param nexusGroupID - Группа в Nexus * @param nexusUrl - Nexus Url * @param QGname - имя флага для публикации * @param gavParam - gav параметры * @param nexusSegment - nexus сегмент * @param nexusReleaseRepo - имя репозитория Sonatype Nexus, в который будут публиковаться собранные дистрибутивы * @param version - версия дистрибутива * @param nexusQGCredentialsId - QG credentialsId * @param needVault - требуется хранилище * @return результат публикации QGnames в QGM */ |
def getKeyMap(map, value) |
/** * Метод: получить ключ в словаре по значению * @param map - словарь [key: value] * @param value - значение, по которому нужно получить key * @return */ |
def isEmptyValueMap(value) |
/** * Метод: проверить значение в словаре * @param value - значение * @return true/false - значения нет/значение есть */ |
def addValueForKey(map, key, value) |
/** * Метод добавления значения для ключа словаря * @param map - словарь [key: value] * @param key - ключ для которого добавить значение * @param value - добавляемое значение */ |
def getPrLinksLotIssue(stashCredentialsId, domainName, project, repo, lotIssue, customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод получения ссылок pull-request для списка issue * @param stashCredentialsId - credential для работы с Stash * @param project - проект pull-request * @param repo - репозиторий pull-request * @param issues - список задач, в рамках которых создан pull-request * @param customHeader персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return список ссылок на pull-request */ |
def curlWithTLS(cacertCredId, certCredId, keyCredId, urlWithFlags) |
/** * Функция вызова curl запроса с сертификатами * @param cacertCredId - Id credential цепочки сертификатов * @param certCredId - Id credential сертификата * @param keyCredId - Id credential ключа * @param urlWithFlags - url и доп флаги для запроса */ |
def getClusterUrl(clusterName, ClustersXml) |
/** * Метод получения ссылки на API кластера * @param clusterName - Имя кластера * @param ClustersXml - Список кластеров * @return - ссылки на API кластера */ |
def getFullFoldersName(mainFolder, pathes) |
/** * Метод получения списка полных наименований каталогов/файлов * @param mainFolder - основной каталог * @param pathes - пути подкаталогов/файлов * @return - словарь наименований [каталог: маска файлов(файл)] */ |
def findEnvParamsFromConfig(Map configYaml, Map pathesList = [:], List pathToEnvParam = []) |
/** * Метод поиска в глубину. Ищет стендозависимые параметры и запоминает пути для них. * @param configYaml - yml словарь конфигурации, который надо проанализировать * @param pathesList - карта в которой для каждой стендозависимой лежит список всех путей * @param pathToEnvParam - путь до стендозависимого параметра * @return - карта путей до стендозависимых параметров */ |
def getValueConfigByPath(Map configYaml, List path = []) |
/** * Метод получения значения в конфигурации по пути, переданному в виде списка * @param configYaml - yml словарь конфигурации, который надо проанализировать * @param path - путь (переданный в виде списка) до нужного элемента/секции * @return - конфигурация найденная по пути */ |
def checkerRequest(cacertCredId, certCredId, keyCredId, operation, requestJson) |
/** * Метод запроса в Checker * @param cacertCredId - Id credential цепочки сертификатов * @param certCredId - Id credential сертификата * @param keyCredId - Id credential ключа * @param operation - тип запроса в checker * @params requestJson - форма запроса */ |
def returnChangedFilesList(ciCred, projectsConfigGitStash, prId, project, repo, excludedFolders, customHeader = []) |
/** * Метод возващения измененных файлов из pull-request * @param ciCred - Id credential для работы со stash * @param projectsConfigGitStash - HTTP ссылка на stash * @param prId - Id pull-request * @param project - проект в stash * @param repo - репозиторий в stash * @param excludedFolders - тип запроса в checker * @params repo - форма запроса * @param customHeader персональный заголовок */ |
def compareRegistryVersions(Nexus nexus, String dockerCred, imageVersion, mainImageVersion, String dockerRegistryRepo, LinkedHashMap dockerRestApi, Boolean needVault, String workspace) |
/** * Метод сравнения версий образов * @param nexus - библиотека Nexus * @param dockerCred - credential для доступа в Registry * @param imageVersion - ссылка (тег) образа, который будет сравниваться * @param mainImageVersion - ссылка (тег) основного образа, с которым производится сравнение * @param dockerRegistryRepo - репозиторий Docker Registry * @param dockerRestApi - Api registry * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @return - результат сравнение (true/false) */ |
def getApiVar(def url, def parameters, def credentialsId, customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод получения rest jenkinsApi * @param url - ссылка Jenkins * @param parameters - список через, какие параметры нужно получить * @param credentialsId - credential Jenkins * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return - content ответ от Jenkins */ |
def inputControl(def url, def inputToMonitor, def credentialsId, def parameterToEnter = [:], def crumb = "", customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод сравнения версий образов * @param url - ссылка Jenkins * @param inputToMonitor - id input для контроля * @param credentialsId - credential Jenkins * @param parameterToEnter - параметры для ввода в input * @param crumb - crumb Jenkins * @param customHeader - персональный заголовок * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return - возвращает статус сборки или null */ |
String getJenkinsURL(Boolean needAddProjectNameToHost) |
/** * Метод получения Jenkins URL для работы с Jenkins API * @param needAddProjectNameToHost - нужно ли добавлять имя проектной области Jenkins Job к хосту * @return Jenkins URL для работы с Jenkins API */ |
def getJenkinsCrumb(apiTokenCred = config.apiTokenCred, Boolean needAddProjectNameToHost = config.needAddProjectNameToHost) |
/** * Метод получения Jenkins Crumb * @param apiTokenCred - CredentialsId для доступа к Jenkins по Token * @param needAddProjectNameToHost - нужно ли добавлять имя проектной области Jenkins Job к хосту * @return - результат получения Crumb */ |
def triggerJobs(def jobName, def parameters = [], propagate = false, wait = false, customHeader = [], apiTokenCred = config.apiTokenCred, time = 40) |
/** * Метод триггера Jenkins Job * @param jobName - имя Jenkins Job для триггера * @param parameters - параметры экрана запуска Jenkins Job * @param propagate - передавать ли результат запуска Jenkins Job в инициирующий Jenkins Job * @param wait - нужно ли ждать завершения работы вызванного Jenkins Job * @param customHeader - персональный заголовок * @param apiTokenCred - CredentialsId для доступа к Jenkins по Token * @param time - время ожидания после триггера Jenkins Job * @return - возвращает ссылку на запустившуюся сборку */ |
def saveBuildLog(def url, def GitCredentialsIdPasswordLogin, pipeline = config.pipeline, starter_email = config.starter_email, def needArhiveArtifact = true, workspace = config.workspace) |
/** * Метод сохранения лога сборки * @param url - ссылка на сборку в Jenkins * @param GitCredentialsIdPasswordLogin - параметры экрана запуска Jenkins Job * @param pipeline - имя pipeline * @param starter_email - пользователь запустивший сборку в Jenkins * @param workspace - рабочее пространство */ |
def withCred(credentialType, credentialId, needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод получения идентификационных данных по credential * @param credentialType - тип credential в Jenkins * @param credentialId - credential * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return - возвращает словарь с идентификационными данными credential */ |
def customSshagent(credentialId, needVault = config.needVault, workspace = config.workspace, Closure closure /** всегда располагать крайним параметром */) |
/** * Вызывает ssh-агент используя ключ из Jenkins или Vault * @param credentialId - credential * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param closure - Функция, вызываемая внутри ssh-agent (вызывается аналогично ssh-agent) */ |
def secretfileTuning(IDsVariables, needVault = config.needVault, workspace = config.workspace) |
/** * Метод надстройки для работы с credential тип file * @param IDsVariables - credential, значение переменной в credential (формат Credential:Variable) * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @return - возвращает словарь с данными credential тип file */ |
def httpRequestTuning(credentialId, customHeader = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault) |
/** * Метод надстройки для работы с httpRequest * @param credentialId - credential * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @return - возвращает словарь данных для идентификации(credential в Jenkins) \ авторизации(credential в HashiCorp Vault) */ |
def saveLogInDiffFiles(log, fileName) |
/** * Метод разбора и сохранения ответ от системы оркестрации приложений * @param log - ответ от системы оркестрации приложений * @param fileName - имя файлов, к которому будут добавляться суффиксы */ |
def saveMailInfo(String recipients, String mailText, String mailTheme, String fileName, String directoryToZip, String globFiles, Boolean needArhiveArtifact = true, String workspace = config.workspace, String style = null) |
/** * Метод сохранения информации о письме, архивация выбранной директории и перенос вложений в отдельную папку * @param recipients - получатели письма * @param mailText - текст письма * @param mailTheme - тема письма * @param fileName - имя файла (одного без архивации/имя архива при отправке нескольких файлов) * @param directoryToZip - директория для архивации * @param globFiles - маска файлов * @param needArhiveArtifact - нужно заархивировать артефакты * @param workspace - рабочее пространство * @param style - стили html элементов */ |
def withCustomCreds(creds, additionalEnvsWithTuning = [], additionalEnvsWithoutTuning = [], needVault = config.needVault, workspace = config.workspace, credentialTypes = config.credentialTypes, configurationBlock = config.configurationVault, Closure closure /** всегда располагать крайним параметром */) |
/** * Метод, который получает credentials из Jenkins или Vault и вызывает блок withEnv. Пароли при этом скрываются * @param creds - список credentials * @param additionalEnvs - дополнительный список env (не маскируется) * @param needVault - требуется хранилище * @param workspace - рабочее пространство * @param credentialTypes - Типы Credential - Jenkins : Vault * @param configurationBlock - настройки для HashiCorp Vault * @param closure - функция, которую нужно запустить в withEnv блоке */ |
def withEnvTuning(envsWithTuning, envsWithoutTuning = [], Closure closure /** всегда располагать крайним параметром */) |
/** * Метод, вызывающий withEnv и скрывающий все переданные параметры * @param envsWithTuning - список параметров которые будут скрыты (заполняется аналогично withEnv) * @param envsWithoutTuning - список параметров без скрытия (заполняется аналогично withEnv) * @param closure - функция, которую нужно запустить в withEnv блоке */ |
def sendMailInfo() |
/** * Метод отправки писем, накопленных за время сборки */ |
def checkDefaultValues(param, paramName) |
/** * Проверка что в параметре указан корректные имена значений по умолчанию * @param param - описание параметра * @param paramName - имя параметра * @return сообщение с ошибкой */ |
def checkReferencedParameters(param, paramName, paramsList) |
/** * Проверка что указаны все необходимые зависимые параметры для главного параметра * @param param - описание параметра * @param paramName - имя параметра * @param paramsList - список уже заданных параметров * @return сообщение с ошибкой */ |
def updatingSecrets(String clusterName, String projectName, List listFiles, String ClustersXml, String workspace = config.workspace, Map configurationBlock = config.configurationVault, String yq = config.yq) |
/** * Метод обновления secret(s) в HashiCorp Vault-хранилище * @param clusterName - наименование кластера * @param projectName - наименование проекта * @param listFiles - список файлов secret(s) * @param ClustersXml - Список кластеров * @param workspace - рабочее пространство * @param configurationBlock - настройки для HashiCorp Vault */ |
def curlForVault(request, pathKV, data = '', workspace = config.workspace, configurationBlock = config.configurationVault, vaultUrlUI = config.vaultUrlUI) |
/** * Метод для работы с secret(s) в HashiCorp Vault-хранилище * @param request - тип curl-запроса : 'LIST', 'GET', 'POST', 'PUT', 'DELETE' * @param pathKV - относительный путь хранилища\secret(s) в хранилище HashiCorp Vault * @param data - данные secret(s) в формате json {"key": "value"} * @param workspace - рабочее пространство * @param configurationBlock - настройки для HashiCorp Vault * @param vaultUrlUI - адрес HashiCorp Vault Web UI (HTTP) * @return - результат выполнения запроса */ |
def checkHttpStatus(response, validResponseCodes = null, Map excludeCheckParams = null) |
/** * Метод проверки HTTP кода * @param response - ответ HTTP запроса (ответ httpRequest или словарь с результатами ответа) * @param validResponseCodes - успешные HTTP коды (список интервалов и одиночных значений) * @param excludeCheckParams - параметры для проверки исключений (possibleRetryFl - возможен повтор для некоторых ошибочных статусов) * @return - действие, которое нужно выполнить */ |
def compare2Dmap(mapOne, mapTwo, condition = null) |
/** * Сравнение двух map типа ключ=значение. * @param mapOne - структура, которую нужно сравнить * @param mapTwo - структура, которую нужно сравнить * @param condition - условие сравнения двух структур * @return результат о равенстве mapOne по отношению к mapTwo */ |
def sortByDESC(list) |
/** * Метод обратной сортировки списка (аннотация @NonCPS обязательна) * @param list - список * @result отсортированный список */ |
def addMetadataInHelmChartsTemplates(helmChartsDir, Map labels, tabString = " ") |
/** * Добавление меток в Helm Charts template, в формате yml * @param helmChartsDir - директория Helm Charts * @param labels - метки, которые нужно добавить * @param tabString - отступ в yml файле * @return Перезаписывает yml template, добавляя в них все переданные метки */ |
def httpRequestCustom(httpReqParams, tuningParams = [], tun = null) |
/** * Расширенный метод httpRequest с обработкой возвращаемого HTTP-кода * @param httpReqParams - словарь параметров для httpRequest (validResponseCodes имеет тип список интервалов и одиночных значений, пример: [200…201, 404]) и дополнительных необязательных параметров * @param tuningParams - словарь параметров для httpRequestTuning * @param tun - результат выполнения httpRequestTuning для повторных инициализаций */ |
def sortListByElement(ArrayList list, element, direction = "-") |
/** * Метод сортировки списка по названию поля с возможностью изменения направления. * @param list - список для преобразования * @param element - наименование параметра по которому осуществить сортировку * @param direction - направление сортировки: + (по возрастанию), - (по убыванию) */ |
def toolResolver(String tool, String toolType, String toolDir) |
/** * Метод работы с tool Jenkins * @param tool - имя tool * @param toolType - тип tool * @param toolDir - директория с tool * @return путь до исполняемого поля tool */ |
def toolResolver(String toolName, Map tools = config.tools) |
/** * Метод работы с tool Jenkins * @param toolName - имя tool * @param tools - список tools * @return путь до исполняемого поля tool */ |
String unarchive(String fileName, String dirName = "distrib", Boolean quiet = false) |
/** * Метод распаковки архива * @param fileName - имя файла архива * @param dirName - каталог для распаковки * @param quiet - каталог для распаковки * @return - имя каталога в котором распакован дистрибутив */ |
String whatEndsWith(String distrPath) |
/** * Метод определения расширения архива * @param distrPath - путь до архива * @return - расширение архива */ |
def getErrHttpStatusMsg(httpStatusParams) |
/** * Метод получения информации по неуспешному HTTP статусу * @param httpStatusParams - словарь параметров HTTP статуса ( status - код, content - содержание) * @return результат - информация по статусу */ |
def configurationTuning( needConfiguration = config.needNexus, configurationBlock = config.configurationVaultNexus, credentialType = 'usernamePassword', subpath = '', fields = [namefield: 'nexus_user_cred_name', passwordfield: 'nexus_user_cred_password'], needVault = config.needVault, configurationVault = config.configurationVault, credentialTypes = config.credentialTypes ) |
/** * Метод: подменить блок конфигурации настроек HashiCorp Vault * @param needConfiguration - флаг активности подменной конфигурации * @param configurationBlock - подменный блок конфигурации * @param credentialType - тип credential для secret(s) * @param subpath - подкаталог расположения secret(s) в хранилище * @param fields - словарь подменных(персонализированных) ключей * @param needVault - требуется хранилище * @param configurationVault - настройки для базового блока конфигураций настроек HashiCorp Vault * @param credentialTypes - Типы credential - Jenkins : Vault */ |
def getTypeFromCfgFile(configFile) |
/** * Метод получения типа на основании имени конфигурационного файла * @param configFile - имя конфигурационного файла * @return результат - тип конфигурационного файла */ |
String archiveDistrib(String formatDistrib, String nameDistrib, String filesToArchiveStr, List excludeFiles = []) |
/** * Метод формирования архива * @param formatDistrib - формат дистрибутива * @param nameDistrib - имя архива * @param filesToArchiveStr - файлы, которые нужно положить в архив * @param excludeFiles - список файлов, которые нужно исключить из архива * @return полное имя архива */ |
Map getParamsFromCIXml(String CIXmlString, String ciNumber) |
/** * Метод получения параметров из CIXml на основе файла CIXmlParams.json * @param CIXmlString - CIXml в формате строки * @param ciNumber - КЭ, для которого нужно найти параметры */ |
def getHashForReleaseNote(jiraTicketKey) |
/** * Метод определения списка commit для сборки * @param jiraTicketKey - ключ задачи Jira * @return список commit */ |
def isCurlWithGetHttpCode(scriptCurl) |
/** * Проверка наличия в curl запросе кода получения HTTP кода * @param scriptCurl - curl запрос * @return результат проверки */ |
def expandCurlWithGetHttpCode(scriptCurl) |
/** * Расширение curl запроса кодом получения HTTP кода, возвращает исходный запрос если добавление не произошло (в данный момент не используется) * @param scriptCurl - curl запрос * @return результат - расширенный запрос */ |
def getCurlResponseHttpCode(response) |
/** * Метод получения HTTP статуса из ответа curl запроса * @param response - ответ curl запроса * @return - результат (словарь: httpCode - HTTP код, response - ответ без HTTP кода) */ |
def shCurlWithCheckHttpCode(shCurlParams) |
/** * Расширенный метод curl запроса с обработкой возвращаемого HTTP статуса * @param shCurlParams - словарь параметров для curl запроса (параметры для sh curl (returnStdout, script), validResponseCodes - валидные коды (по умолчанию null), retryCount - число запусков в случае возникновения ошибки, которая может быть решена повторным запуском (по умолчанию 3)) * @return - результат выполнения */ |
def generateBuildDescriptionWithDistribInfo(listDistribInfo = []) |
/** * Метод формирования HTML таблицы с информацией по дистрибутивам для добавления в описание сборки * @param listDistribInfo - список словарей с информацией по дистрибутивам * @return - HTML для добавления в описание сборки */ |
String getStackTraceException(Exception ex) |
/** * Метод получения stackTrace Exception в виде String * @param ex - Exception * @return stackTrace в виде строки */ |
String getCurrentTime(long time, String format) |
/** * Метод получения даты в нужном String формате * @param time - дата типа long * @param format - формат даты (например: "yyyy-MM-dd_hh:mm") * @return дата типа String */ |
def approveInput(String submitterAllowed, Boolean needSecondApprove, String secondSubmitterAllowed, String inputText = "Предварительная проверка выполнена\n\nНажмите Proceed, если вы уверены в правильности") |
/** * Метод подтверждения дальнейшей работы джобы * @param submitterAllowed - список пользователей, которые могут подтвердить дальнейшую работу джобы * @param needSecondApprove - нужно ли второе подтверждение * @param secondSubmitterAllowed - список пользователей, которые могут подтвердить дальнейшую работу джобы во второй раз (инициатор запуска джобы будет игнорироваться) * @param inputText - текст сообщения input * @return результат DevCommon.requestInput */ |
def approveInputWithParameters(String submitterAllowed, Boolean needSecondApprove, String secondSubmitterAllowed, List parameters, String inputText = "Предварительная проверка выполнена\n\nНажмите Proceed, если вы уверены в правильности") |
/** * Метод подтверждения дальнейшей работы джобы * @param submitterAllowed - список пользователей, которые могут подтвердить дальнейшую работу джобы * @param needSecondApprove - нужно ли второе подтверждение * @param secondSubmitterAllowed - список пользователей, которые могут подтвердить дальнейшую работу джобы во второй раз (инициатор запуска джобы будет игнорироваться) * @param parameters - параметры для экрана input * @param inputText - текст сообщения input * @return результат DevCommon.requestInput */ |
def readYaml(LinkedHashMap args) |
/** * Метод запуска readYaml для текста/файла * @param args - Map с параметрами для плагина readYaml Jenkins * @return объект yaml */ |
def readYaml(String file, String yqPath, int divisionNumber) |
/** * Метод чтения из файла kind: List через разделение списка * @param file - имя YAML файла * @param yqPath - путь до yq tool * @param readFile - флаг подтверждения использования этого метода * @return объект yaml */ |
def readYaml(String text,String yqPath = config.yq) |
/** * Метод чтения из текста kind: List через разделение списка * @param file - текст YAML * @param yqPath - путь до yq tool * @return объект yaml */ |
static String readSMDLXml(jenkinsEnv, String path, String xml) |
/** * Метод чтения Xml * @param path - текст YAML * @return объект yaml */ |
void additionalConfirm(Map additionalConfirm, String starter_id, Boolean needSecondApprove, String submitterAllowed) |
/** * Метод дополнительного подтверждения установки конфигурационных файлов в проект оркестрации * @param additionalConfirm - map, где ключ - тип конфигурационного файла, значение - строка с сообщением, которые добавятся в input * @param starter_id - автор сборки * @param needSecondApprove - флаг подтверждения второй рукой * @param submitterAllowed - строка-список с логинами пользователей, которые могут подтвердить input */ |
String getFileFromJenkinsParam(String parameterName, String destPath) |
/** * Метод получения файла из Jenkins параметра с типом stashedFile * @param parameterName - имя Jenkins параметра * @param destPath - путь по которому его нужно сохранить * @return путь до файла, если файл был задан в параметрах. Иначе возвращается null */ |