@Library('shared-lib') _ properties([ buildDiscarder(logRotator(artifactNumToKeepStr: '10', numToKeepStr: '10')), disableConcurrentBuilds(), parameters([ string(name: 'LICENSE_COUNT', defaultValue: '', description: 'Количество лицензии'), string(name: 'PRODUCT_ID', defaultValue: '', description: 'Идентификатор продукта к которому будут привязаны лицензии'), choice( name: 'LICENSE_KIND', choices: ["SINGLE","MULTIPLE"], description: 'Eдиничная или множественная лицензия' ), choice( name: 'LICENSE_TYPE', choices: ["TRIAL","COMMERCIAL","UNLIMITED"], description: 'Коммерческая, Триальная или Бессрочная' ), string(name: 'LICENSE_DURATION', defaultValue: '', description: 'Валидный период лицензии в месяцах'), string(name: 'OWNER_TITLE', defaultValue: '', description: 'Название новой компании'), string(name: 'OWNER_ID', defaultValue: '', description: 'Идентификатор существующего Владельца'), string(name: 'INSTALLATION_LIMIT', defaultValue: '1', description: 'Количество возможных созданных инсталляции'), string(name: 'KEY_LIMIT', defaultValue: '1', description: 'Максимальное количество созданных ключей'), string(name: 'VALIDATION_PERIOD', defaultValue: '1', description: 'Проверка в часах'), string(name: 'ADMIN_EMAIL', defaultValue: '', description: 'Почта администратора'), string(name: 'OPERATOR_LOGIN', defaultValue: '', description: 'Логин оператор'), string(name: 'COMMENT', defaultValue: '', description: 'Комментарий (необязательно)'), ]), ]) if (params.LICENSE_COUNT == '' || params.LICENSE_DURATION == '' || (params.OWNER_TITLE == '' && params.OWNER_ID == '') || params.INSTALLATION_LIMIT == '' || params.KEY_LIMIT == '' || params.VALIDATION_PERIOD == '' || params.ADMIN_EMAIL == '' || params.OPERATOR_LOGIN == ''){ print "Все обязательные параметры должны быть заполнены" currentBuild.result = 'FAILURE' return } String licApiServer = 'h-license-manager-api-test.avroid.cloud' Map configuration = [ vaultUrl: 'https://vault.avroid.tech', vaultCredentialId: 'vault-role', engineVersion: 2 ] List sshPassword = [ [path: 'team-devops/accounts/ldap/service_accounts/svc_jenkins', engineVersion: 2, secretValues: [ [vaultKey: 'password'], ] ] ] String cmd = "docker exec license_server-api-1 python manage.py avl_mass_license_operator_create" + " --license-count ${params.LICENSE_COUNT}" + " --product-id ${params.PRODUCT_ID}" + " --license-kind ${params.LICENSE_KIND}" + " --license-type ${params.LICENSE_TYPE}" + " --license-duration ${params.LICENSE_DURATION}" + " --installation-limit ${params.INSTALLATION_LIMIT}" + " --key-limit ${params.KEY_LIMIT}" + " --validation-period ${params.VALIDATION_PERIOD}" + " --admin-email ${params.ADMIN_EMAIL}" + " --operator-login ${params.OPERATOR_LOGIN}" if (params.OWNER_ID != '' && params.OWNER_TITLE != '') { print "Только один из этих параметров должен быть передан (OWNER_ID, OWNER_TITLE)" currentBuild.result = 'FAILURE' return } if (params.OWNER_TITLE != '') { cmd = cmd + " --owner-title \'${params.OWNER_TITLE}\'" } if (params.OWNER_ID != '') { cmd = cmd + " --owner-id ${params.OWNER_ID}" } if (params.COMMENT != '') { cmd = cmd + " --comment \'${params.COMMENT}\'" } node('slave01') { stage('Create license') { print cmd withVault([configuration: configuration, vaultSecrets: sshPassword]) { sh """ sshpass -p $password ssh jenkins@${licApiServer} \"${cmd}\" """ } } }