mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge branch '2019.2.1' into bugs/test_file_recurse_set
This commit is contained in:
commit
571d82a128
190 changed files with 4034 additions and 2606 deletions
153
.ci/docs
153
.ci/docs
|
@ -1,69 +1,92 @@
|
|||
pipeline {
|
||||
agent {
|
||||
label 'docs'
|
||||
}
|
||||
options {
|
||||
timestamps()
|
||||
ansiColor('xterm')
|
||||
timeout(time: 2, unit: 'HOURS')
|
||||
}
|
||||
environment {
|
||||
PYENV_ROOT = "/usr/local/pyenv"
|
||||
PATH = "$PYENV_ROOT/bin:$PATH"
|
||||
PY_COLORS = 1
|
||||
SPHINXOPTS = "-W"
|
||||
}
|
||||
stages {
|
||||
stage('github-pending') {
|
||||
steps {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Testing docs...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/docs"
|
||||
// Define the maximum time, in hours, that a test run should run for
|
||||
def global_timeout = 2
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
[
|
||||
$class: 'RebuildSettings', autoRebuild: false, rebuildDisabled: false
|
||||
],
|
||||
])
|
||||
|
||||
def shell_header
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('docs') {
|
||||
ansiColor('xterm') {
|
||||
timestamps {
|
||||
try {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Testing docs...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/docs"
|
||||
}
|
||||
shell_header = 'export PYENV_ROOT="/usr/local/pyenv"\nexport PATH="$PYENV_ROOT/bin:$PATH"'
|
||||
} else {
|
||||
shell_header = ''
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('Setup') {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init -)"
|
||||
pyenv --version
|
||||
pyenv install --skip-existing 3.6.8
|
||||
pyenv shell 3.6.8
|
||||
python --version
|
||||
pip install -U https://github.com/s0undt3ch/nox/archive/hotfix/py2.zip#egg=Nox==2018.10.17
|
||||
nox --version
|
||||
'''
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init -)"
|
||||
pyenv shell 3.6.8
|
||||
nox -e docs
|
||||
'''
|
||||
archiveArtifacts artifacts: 'doc/doc-archive.tar.gz'
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The docs job has passed',
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/docs"
|
||||
}
|
||||
} else {
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The docs job has failed',
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/docs"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
message: "FAILED: PR-Job: '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
|
||||
} catch (Exception e) {
|
||||
sh 'echo Failed to send the Slack notification'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('setup') {
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init -)"
|
||||
pyenv --version
|
||||
pyenv install --skip-existing 2.7.15
|
||||
pyenv shell 2.7.15
|
||||
python --version
|
||||
pip install -U https://github.com/s0undt3ch/nox/archive/hotfix/py2.zip#egg=Nox==2018.10.17
|
||||
nox --version
|
||||
'''
|
||||
}
|
||||
}
|
||||
stage('build') {
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init -)"
|
||||
pyenv shell 2.7.15
|
||||
nox -e docs
|
||||
'''
|
||||
archiveArtifacts artifacts: 'doc/doc-archive.tar.gz'
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
cleanWs()
|
||||
}
|
||||
success {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The docs job has passed',
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/docs"
|
||||
}
|
||||
failure {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The docs job has failed',
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/docs"
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
message: "FAILED: PR-Job: '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'centos'
|
||||
def distro_version = '6'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 8, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=centos6,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=centos-6',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 8, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'centos'
|
||||
def distro_version = '7'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 8, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=centos7,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=centos-7',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 8, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'centos'
|
||||
def distro_version = '7'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq-3.4',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=centos7,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=centos-7',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'debian'
|
||||
def distro_version = '8'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 8, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=debian8,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=debian-8',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 8, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'debian'
|
||||
def distro_version = '8'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=debian8,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=debian-8',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'debian'
|
||||
def distro_version = '9'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=debian9,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=debian-9',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'debian'
|
||||
def distro_version = '9'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=debian9,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=debian-9',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
//// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'ubuntu'
|
||||
def distro_version = '1604'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=ubuntu1604,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=ubuntu-1604',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
//// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'ubuntu'
|
||||
def distro_version = '1604'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=ubuntu1604,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=ubuntu-1604',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'ubuntu'
|
||||
def distro_version = '1804'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=ubuntu1804,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=ubuntu-1804',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'ubuntu'
|
||||
def distro_version = '1804'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,95 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=ubuntu1804,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=ubuntu-1804',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -114,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'windows'
|
||||
def distro_version = '2016'
|
||||
def python_version = 'py2'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,94 +21,122 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 6, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-win-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=windows2016,py2',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py2',
|
||||
'TEST_PLATFORM=windows-2016',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'NOX_PASSTHROUGH_OPTS=--ssh-tests',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -113,4 +153,4 @@ timeout(time: 6, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
// Define the maximum time, in hours, that a test run should run for
|
||||
def testrun_timeout = 6
|
||||
// Now define a global pipeline timeout. This is the test run timeout with one(1) additional
|
||||
// hour to allow for artifacts to be downloaded, if possible.
|
||||
def global_timeout = testrun_timeout + 1;
|
||||
|
||||
def distro_name = 'windows'
|
||||
def distro_version = '2016'
|
||||
def python_version = 'py3'
|
||||
def golden_images_branch = '2019.2'
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
|
@ -9,94 +21,121 @@ properties([
|
|||
booleanParam(defaultValue: true, description: 'Run full test suite', name: 'runFull')
|
||||
])
|
||||
])
|
||||
timeout(time: 8, unit: 'HOURS') {
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('kitchen-slave') {
|
||||
timestamps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
credentialsId: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
ansiColor('xterm') {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-win-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
'GOLDEN_IMAGES_CI_BRANCH=2019.2',
|
||||
'CODECOV_FLAGS=windows2016,py3',
|
||||
'PATH=/usr/local/rbenv/shims/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
'TEST_SUITE=py3',
|
||||
'TEST_PLATFORM=windows-2016',
|
||||
'PY_COLORS=1',
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
try {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
timestamps {
|
||||
withEnv([
|
||||
'SALT_KITCHEN_PLATFORMS=/var/jenkins/workspace/nox-platforms.yml',
|
||||
'SALT_KITCHEN_VERIFIER=/var/jenkins/workspace/nox-verifier.yml',
|
||||
'SALT_KITCHEN_DRIVER=/var/jenkins/workspace/driver.yml',
|
||||
'NOX_ENV_NAME=runtests-zeromq',
|
||||
'NOX_ENABLE_FROM_FILENAMES=true',
|
||||
"GOLDEN_IMAGES_CI_BRANCH=${golden_images_branch}",
|
||||
"CODECOV_FLAGS=${distro_name}${distro_version},${python_version}",
|
||||
'PATH=~/.rbenv/shims:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin',
|
||||
'RBENV_VERSION=2.4.2',
|
||||
"TEST_SUITE=${python_version}",
|
||||
"TEST_PLATFORM=${distro_name}-${distro_version}",
|
||||
"FORCE_FULL=${params.runFull}",
|
||||
]) {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "running ${TEST_SUITE}-${TEST_PLATFORM}...",
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
}
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('setup-bundle') {
|
||||
sh 'bundle install --with ec2 windows --without opennebula docker'
|
||||
sh 'git fetch --no-tags https://github.com/saltstack/salt.git +refs/heads/${CHANGE_TARGET}:refs/remotes/origin/${CHANGE_TARGET}'
|
||||
sh 'bundle install --with ec2 windows --without docker macos opennebula vagrant'
|
||||
}
|
||||
|
||||
stage('Create VM') {
|
||||
retry(3) {
|
||||
sh '''
|
||||
t=$(shuf -i 1-15 -n 1); echo "Sleeping $t seconds"; sleep $t
|
||||
bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
}
|
||||
try {
|
||||
stage('run kitchen') {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM || bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem || ssh-add ~/.ssh/kitchen.pem'
|
||||
try {
|
||||
timeout(time: testrun_timeout, unit: 'HOURS') {
|
||||
stage('Converge VM') {
|
||||
sh 'bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
stage('Run Tests') {
|
||||
withEnv(["DONT_DOWNLOAD_ARTEFACTS=1"]) {
|
||||
sh 'bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stage('cleanup kitchen') {
|
||||
script {
|
||||
withCredentials([
|
||||
[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
||||
]) {
|
||||
sshagent(credentials: ['jenkins-testing-ssh-key']) {
|
||||
sh 'ssh-add ~/.ssh/jenkins-testing.pem'
|
||||
sh 'bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM'
|
||||
} finally {
|
||||
try {
|
||||
stage('Download Artefacts') {
|
||||
withEnv(["ONLY_DOWNLOAD_ARTEFACTS=1"]){
|
||||
sh '''
|
||||
bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM || exit 0
|
||||
'''
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} finally {
|
||||
stage('Cleanup') {
|
||||
sh '''
|
||||
bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; echo "ExitCode: $?;"
|
||||
'''
|
||||
}
|
||||
stage('Upload Coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
archiveArtifacts artifacts: 'artifacts/*,artifacts/**/*'
|
||||
}
|
||||
stage('report code coverage') {
|
||||
script {
|
||||
withCredentials([[$class: 'StringBinding', credentialsId: 'codecov-upload-token-salt', variable: 'CODECOV_TOKEN']]) {
|
||||
sh '''
|
||||
if [ -n "${FORCE_FULL}" -a "${FORCE_FULL}" = "true" -a -f artifacts/coverage/coverage.xml ]; then
|
||||
curl -L https://codecov.io/bash | /bin/sh -s -- -R $(pwd) -s artifacts/coverage/ -F "${CODECOV_FLAGS}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
try {
|
||||
junit 'artifacts/xml-unittests-output/*.xml'
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has passed",
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
} else {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: "The ${TEST_SUITE}-${TEST_PLATFORM} job has failed",
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/${TEST_SUITE}-${TEST_PLATFORM}"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
|
@ -113,4 +152,4 @@ timeout(time: 8, unit: 'HOURS') {
|
|||
}
|
||||
}
|
||||
|
||||
// vi: ft=groovy
|
||||
// vim: ft=groovy
|
||||
|
|
348
.ci/lint
348
.ci/lint
|
@ -1,175 +1,195 @@
|
|||
pipeline {
|
||||
agent { label 'pr-lint-slave' }
|
||||
options {
|
||||
timestamps()
|
||||
ansiColor('xterm')
|
||||
timeout(time: 3, unit: 'HOURS')
|
||||
}
|
||||
environment {
|
||||
PYENV_ROOT = "/usr/local/pyenv"
|
||||
PATH = "$PYENV_ROOT/bin:$PATH"
|
||||
PY_COLORS = 1
|
||||
}
|
||||
stages {
|
||||
stage('github-pending') {
|
||||
steps {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint on changes begins...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
}
|
||||
stage('setup') {
|
||||
steps {
|
||||
sh '''
|
||||
# Need -M to detect renames otherwise they are reported as Delete and Add, need -C to detect copies, -C includes -M
|
||||
# -M is on by default in git 2.9+
|
||||
git diff --name-status -l99999 -C "origin/$CHANGE_TARGET" > file-list-status.log
|
||||
# the -l increase the search limit, lets use awk so we do not need to repeat the search above.
|
||||
gawk 'BEGIN {FS="\\t"} {if ($1 != "D") {print $NF}}' file-list-status.log > file-list-changed.log
|
||||
gawk 'BEGIN {FS="\\t"} {if ($1 == "D") {print $NF}}' file-list-status.log > file-list-deleted.log
|
||||
(git diff --name-status -l99999 -C "origin/$CHANGE_TARGET" "origin/$BRANCH_NAME";echo "---";git diff --name-status -l99999 -C "origin/$BRANCH_NAME";printenv|grep -E '=[0-9a-z]{40,}+$|COMMIT=|BRANCH') > file-list-experiment.log
|
||||
eval "$(pyenv init -)"
|
||||
pyenv --version
|
||||
pyenv install --skip-existing 2.7.15
|
||||
pyenv shell 2.7.15
|
||||
python --version
|
||||
pip install -U https://github.com/s0undt3ch/nox/archive/hotfix/py2.zip#egg=Nox==2018.10.17
|
||||
nox --version
|
||||
# Create the required virtualens in serial
|
||||
nox --install-only -e lint-salt
|
||||
nox --install-only -e lint-tests
|
||||
'''
|
||||
archiveArtifacts artifacts: 'file-list-status.log,file-list-changed.log,file-list-deleted.log,file-list-experiment.log'
|
||||
}
|
||||
}
|
||||
stage('linting chg') {
|
||||
parallel {
|
||||
stage('lint salt chg') {
|
||||
when {
|
||||
expression { return readFile('file-list-changed.log') =~ /(?i)(^|\n)(salt\/.*\.py|setup\.py)\n/ }
|
||||
// Define the maximum time, in hours, that a test run should run for
|
||||
def global_timeout = 3
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')),
|
||||
[
|
||||
$class: 'ScannerJobProperty', doNotScan: false
|
||||
],
|
||||
[
|
||||
$class: 'RebuildSettings', autoRebuild: false, rebuildDisabled: false
|
||||
],
|
||||
])
|
||||
|
||||
def shell_header
|
||||
|
||||
timeout(time: global_timeout, unit: 'HOURS') {
|
||||
node('lint') {
|
||||
ansiColor('xterm') {
|
||||
timestamps {
|
||||
try {
|
||||
// Set the GH status even before cloning the repo
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
stage('github-pending') {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint begins...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
shell_header = 'export PYENV_ROOT="/usr/local/pyenv"\nexport PATH="$PYENV_ROOT/bin:$PATH"'
|
||||
} else {
|
||||
shell_header = ''
|
||||
}
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
// Checkout the repo
|
||||
stage('checkout-scm') {
|
||||
cleanWs notFailBuild: true
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// Setup the kitchen required bundle
|
||||
stage('Setup') {
|
||||
sh shell_header + '''
|
||||
# Need -M to detect renames otherwise they are reported as Delete and Add, need -C to detect copies, -C includes -M
|
||||
# -M is on by default in git 2.9+
|
||||
git diff --name-status -l99999 -C "origin/$CHANGE_TARGET" > file-list-status.log
|
||||
# the -l increase the search limit, lets use awk so we do not need to repeat the search above.
|
||||
gawk 'BEGIN {FS="\\t"} {if ($1 != "D") {print $NF}}' file-list-status.log > file-list-changed.log
|
||||
gawk 'BEGIN {FS="\\t"} {if ($1 == "D") {print $NF}}' file-list-status.log > file-list-deleted.log
|
||||
(git diff --name-status -l99999 -C "origin/$CHANGE_TARGET" "origin/$BRANCH_NAME";echo "---";git diff --name-status -l99999 -C "origin/$BRANCH_NAME";printenv|grep -E '=[0-9a-z]{40,}+$|COMMIT=|BRANCH') > file-list-experiment.log
|
||||
eval "$(pyenv init -)"
|
||||
pyenv --version
|
||||
pyenv install --skip-existing 2.7.15
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-salt-chg.log
|
||||
grep -Ei '^salt/.*\\.py$|^setup\\.py$' file-list-changed.log | xargs -r '--delimiter=\\n' nox -e lint-salt --
|
||||
EC=$?
|
||||
exit $EC
|
||||
python --version
|
||||
pip install -U https://github.com/s0undt3ch/nox/archive/hotfix/py2.zip#egg=Nox==2018.10.17
|
||||
nox --version
|
||||
# Create the required virtualenvs in serial
|
||||
nox --install-only -e lint-salt
|
||||
nox --install-only -e lint-tests
|
||||
'''
|
||||
archiveArtifacts artifacts: 'file-list-status.log,file-list-changed.log,file-list-deleted.log,file-list-experiment.log'
|
||||
}
|
||||
}
|
||||
stage('lint test chg') {
|
||||
when {
|
||||
expression { return readFile('file-list-changed.log') =~ /(?i)(^|\n)tests\/.*\.py\n/ }
|
||||
stage('Lint Changes') {
|
||||
try {
|
||||
parallel(
|
||||
lintSalt: {
|
||||
stage('Lint Salt Changes') {
|
||||
if (readFile('file-list-changed.log') =~ /(?i)(^|\n)(salt\/.*\.py|setup\.py)\n/) {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-salt-chg.log
|
||||
grep -Ei '^salt/.*\\.py$|^setup\\.py$' file-list-changed.log | xargs -r '--delimiter=\\n' nox -e lint-salt --
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
}
|
||||
},
|
||||
lintTests: {
|
||||
stage('Lint Test Changes') {
|
||||
if (readFile('file-list-changed.log') =~ /(?i)(^|\n)tests\/.*\.py\n/) {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-tests-chg.log
|
||||
grep -Ei '^tests/.*\\.py$' file-list-changed.log | xargs -r '--delimiter=\\n' nox -e lint-tests --
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
} finally {
|
||||
archiveArtifacts artifacts: 'pylint-report-*-chg.log', allowEmptyArchive: true
|
||||
step([$class: 'WarningsPublisher',
|
||||
parserConfigurations: [[
|
||||
parserName: 'PyLint',
|
||||
pattern: 'pylint-report-*-chg.log'
|
||||
]],
|
||||
failedTotalAll: '0',
|
||||
useDeltaValues: false,
|
||||
canRunOnFailed: true,
|
||||
usePreviousBuildAsReference: true
|
||||
])
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-tests-chg.log
|
||||
grep -Ei '^tests/.*\\.py$' file-list-changed.log | xargs -r '--delimiter=\\n' nox -e lint-tests --
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
stage('Lint Full') {
|
||||
if (env.CHANGE_BRANCH =~ /(?i)^merge[._-]/) {
|
||||
// perform a full linit if this is a merge forward and the change only lint passed.
|
||||
try {
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint on everything begins...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
parallel(
|
||||
lintSaltFull: {
|
||||
stage('Lint Salt Full') {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-salt-full.log
|
||||
nox -e lint-salt
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
},
|
||||
lintTestsFull: {
|
||||
stage('Lint Tests Full') {
|
||||
sh shell_header + '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-tests-full.log
|
||||
nox -e lint-salt
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
}
|
||||
)
|
||||
} finally {
|
||||
archiveArtifacts artifacts: 'pylint-report-*-full.log', allowEmptyArchive: true
|
||||
step([$class: 'WarningsPublisher',
|
||||
parserConfigurations: [[
|
||||
parserName: 'PyLint',
|
||||
pattern: 'pylint-report-*-full.log'
|
||||
]],
|
||||
failedTotalAll: '0',
|
||||
useDeltaValues: false,
|
||||
canRunOnFailed: true,
|
||||
usePreviousBuildAsReference: true
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
} finally {
|
||||
cleanWs notFailBuild: true
|
||||
if (currentBuild.resultIsBetterOrEqualTo('SUCCESS')) {
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The lint test passed',
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
} else {
|
||||
if (env.NODE_NAME.startsWith('jenkins-pr-')) {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'The lint test failed',
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
try {
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
message: "FAILED: PR-Job: '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
|
||||
} catch (Exception e) {
|
||||
sh 'echo Failed to send the Slack notification'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts artifacts: 'pylint-report-*-chg.log', allowEmptyArchive: true
|
||||
step([$class: 'WarningsPublisher',
|
||||
parserConfigurations: [[
|
||||
parserName: 'PyLint',
|
||||
pattern: 'pylint-report-*-chg.log'
|
||||
]],
|
||||
failedTotalAll: '0',
|
||||
useDeltaValues: false,
|
||||
canRunOnFailed: true,
|
||||
usePreviousBuildAsReference: true
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('linting all') {
|
||||
// perform a full linit if this is a merge forward and the change only lint passed.
|
||||
when {
|
||||
expression { return env.CHANGE_BRANCH =~ /(?i)^merge[._-]/ }
|
||||
}
|
||||
parallel {
|
||||
stage('setup full') {
|
||||
steps {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint on everything begins...',
|
||||
status: 'PENDING',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
}
|
||||
stage('lint salt full') {
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-salt-full.log
|
||||
nox -e lint-salt
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
}
|
||||
stage('lint test full') {
|
||||
steps {
|
||||
sh '''
|
||||
eval "$(pyenv init - --no-rehash)"
|
||||
pyenv shell 2.7.15
|
||||
EC=254
|
||||
export PYLINT_REPORT=pylint-report-tests-full.log
|
||||
nox -e lint-salt
|
||||
EC=$?
|
||||
exit $EC
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts artifacts: 'pylint-report-*-full.log', allowEmptyArchive: true
|
||||
step([$class: 'WarningsPublisher',
|
||||
parserConfigurations: [[
|
||||
parserName: 'PyLint',
|
||||
pattern: 'pylint-report-*-full.log'
|
||||
]],
|
||||
failedTotalAll: '0',
|
||||
useDeltaValues: false,
|
||||
canRunOnFailed: true,
|
||||
usePreviousBuildAsReference: true
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
cleanWs()
|
||||
}
|
||||
success {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint test has passed',
|
||||
status: 'SUCCESS',
|
||||
context: "jenkins/pr/lint"
|
||||
}
|
||||
failure {
|
||||
githubNotify credentialsId: 'test-jenkins-credentials',
|
||||
description: 'Python lint test has failed',
|
||||
status: 'FAILURE',
|
||||
context: "jenkins/pr/lint"
|
||||
slackSend channel: "#jenkins-prod-pr",
|
||||
color: '#FF0000',
|
||||
message: "FAILED: PR-Job: '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// vim: ft=groovy
|
||||
|
|
|
@ -3,40 +3,6 @@ repos:
|
|||
- repo: https://github.com/saltstack/pip-tools-compile-impersonate
|
||||
rev: master
|
||||
hooks:
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py2.7-tcp-requirements
|
||||
name: Linux Py2.7 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(lint|cloud|docs|osx|windows|)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=linux
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-osx-py2.7-tcp-requirements
|
||||
name: OSX Py2.7 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/osx\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=darwin
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py2.7-tcp-requirements
|
||||
name: Windows Py2.7 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/windows\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=windows
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py2.7-zmq-requirements
|
||||
name: Linux Py2.7 ZeroMQ Requirements
|
||||
|
@ -54,25 +20,30 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py2.7-zmq-requirements
|
||||
name: OSX Py2.7 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=darwin
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py2.7-zmq-requirements
|
||||
name: Windows Py2.7 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=windows
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -94,25 +65,30 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py2.7-raet-requirements
|
||||
name: OSX Py2.7 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|raet|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --out-prefix=raet
|
||||
- --platform=darwin
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py2.7-raet-requirements
|
||||
name: Windows Py2.7 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|raet|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --out-prefix=raet
|
||||
- --platform=windows
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -127,15 +103,6 @@ repos:
|
|||
- --py-version=2.7
|
||||
- --platform=linux
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-doc-requirements
|
||||
name: Docs Py2.7 Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=2.7
|
||||
- --platform=linux
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-cloud-py2.7-requirements
|
||||
name: Cloud Py2.7 Requirements
|
||||
|
@ -145,23 +112,11 @@ repos:
|
|||
- --py-version=2.7
|
||||
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.4-tcp-requirements
|
||||
name: Linux Py3.4 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.4
|
||||
- --platform=linux
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.4-zmq-requirements
|
||||
name: Linux Py3.4 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.4
|
||||
|
@ -175,7 +130,7 @@ repos:
|
|||
alias: compile-linux-py3.4-raet-requirements
|
||||
name: Linux Py3.4 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.4
|
||||
|
@ -195,45 +150,11 @@ repos:
|
|||
- -v
|
||||
- --py-version=3.4
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.5-tcp-requirements
|
||||
name: Linux Py3.5 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=linux
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.5-tcp-requirements
|
||||
name: OSX Py3.5 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/osx\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=darwin
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.5-tcp-requirements
|
||||
name: Windows Py3.5 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/windows\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=windows
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.5-zmq-requirements
|
||||
name: Linux Py3.5 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
|
@ -246,25 +167,30 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.5-zmq-requirements
|
||||
name: OSX Py3.5 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=darwin
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.5-zmq-requirements
|
||||
name: Windows Py3.5 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=windows
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -273,7 +199,7 @@ repos:
|
|||
alias: compile-linux-py3.5-raet-requirements
|
||||
name: Linux Py3.5 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
|
@ -287,26 +213,31 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.5-raet-requirements
|
||||
name: OSX Py3.5 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|raet|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=darwin
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --remove-line=^enum34==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.5-raet-requirements
|
||||
name: Windows Py3.5 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|raet|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.5
|
||||
- --platform=windows
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -322,33 +253,19 @@ repos:
|
|||
- --py-version=3.5
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.6-tcp-requirements
|
||||
name: Linux Py3.6 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
alias: compile-doc-requirements
|
||||
name: Docs Py3.5 Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --py-version=3.5
|
||||
- --platform=linux
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.6-tcp-requirements
|
||||
name: OSX Py3.6 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/osx\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --platform=darwin
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.6-zmq-requirements
|
||||
name: Linux Py3.6 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
|
@ -361,25 +278,30 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.6-zmq-requirements
|
||||
name: OSX Py3.6 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --platform=darwin
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.6-zmq-requirements
|
||||
name: Windows Py3.6 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --platform=windows
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -388,7 +310,7 @@ repos:
|
|||
alias: compile-linux-py3.6-raet-requirements
|
||||
name: Linux Py3.6 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
|
@ -402,26 +324,31 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.6-raet-requirements
|
||||
name: OSX Py3.6 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|raet|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --platform=darwin
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --remove-line=^enum34==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.6-raet-requirements
|
||||
name: Windows Py3.6 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|raet|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.6
|
||||
- --platform=windows
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -437,33 +364,19 @@ repos:
|
|||
- --py-version=3.6
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.7-tcp-requirements
|
||||
name: Linux Py3.7 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
alias: compile-doc-requirements
|
||||
name: Docs Py3.6 Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --py-version=3.6
|
||||
- --platform=linux
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.7-tcp-requirements
|
||||
name: OSX Py3.7 TCP Requirements
|
||||
files: ^requirements/((base|pytest)\.txt|static/osx\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=darwin
|
||||
- --out-prefix=tcp
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-linux-py3.7-zmq-requirements
|
||||
name: Linux Py3.7 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
|
@ -476,25 +389,30 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.7-zmq-requirements
|
||||
name: OSX Py3.7 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=darwin
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.7-zmq-requirements
|
||||
name: Windows Py3.7 ZeroMQ Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=windows
|
||||
- --out-prefix=zeromq
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/zeromq.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -503,7 +421,7 @@ repos:
|
|||
alias: compile-linux-py3.7-raet-requirements
|
||||
name: Linux Py3.7 RAET Requirements
|
||||
files: ^requirements/((base|raet|pytest)\.txt|static/(.*)\.in)$
|
||||
exclude: ^requirements/static/(centos-6|amzn-1|lint|cloud|docs|osx|windows)\.in$
|
||||
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|osx|windows)\.in$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
|
@ -517,26 +435,31 @@ repos:
|
|||
- id: pip-tools-compile
|
||||
alias: compile-osx-py3.7-raet-requirements
|
||||
name: OSX Py3.7 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/osx\.in)$
|
||||
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|raet|pytest)\.txt|static/osx\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=darwin
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/osx/req.txt
|
||||
- --include=pkg/osx/req_ext.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
- --remove-line=^pycrypto==(.*)$
|
||||
- --remove-line=^enum34==(.*)$
|
||||
- --passthrough-line-from-input=^pyobjc(.*)$
|
||||
- id: pip-tools-compile
|
||||
alias: compile-windows-py3.7-raet-requirements
|
||||
name: Windows Py3.7 RAET Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/windows\.in)$
|
||||
files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|raet|pytest)\.txt|static/windows\.in))$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=windows
|
||||
- --out-prefix=raet
|
||||
- --include=pkg/windows/req.txt
|
||||
- --include=pkg/windows/req_win.txt
|
||||
- --include=requirements/base.txt
|
||||
- --include=requirements/raet.txt
|
||||
- --include=requirements/pytest.txt
|
||||
|
@ -550,3 +473,12 @@ repos:
|
|||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
|
||||
- id: pip-tools-compile
|
||||
alias: compile-doc-requirements
|
||||
name: Docs Py3.7 Requirements
|
||||
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
|
||||
args:
|
||||
- -v
|
||||
- --py-version=3.7
|
||||
- --platform=linux
|
||||
|
|
|
@ -23,6 +23,7 @@ execution modules
|
|||
|
||||
acme
|
||||
aix_group
|
||||
aixpkg
|
||||
aliases
|
||||
alternatives
|
||||
ansiblegate
|
||||
|
|
7
doc/ref/modules/all/salt.modules.aixpkg.rst
Normal file
7
doc/ref/modules/all/salt.modules.aixpkg.rst
Normal file
|
@ -0,0 +1,7 @@
|
|||
===================
|
||||
salt.modules.aixpkg
|
||||
===================
|
||||
|
||||
.. automodule:: salt.modules.aixpkg
|
||||
:members:
|
||||
:undoc-members:
|
|
@ -12,28 +12,29 @@ salt.modules.pkg
|
|||
====================================== ========================================
|
||||
Execution Module Used for
|
||||
====================================== ========================================
|
||||
:py:mod:`~salt.modules.aixpkg` AIX OS using ``installp`` and ``rpm``
|
||||
:py:mod:`~salt.modules.aptpkg` Debian/Ubuntu-based distros which use
|
||||
``apt-get(8)`` for package management
|
||||
:py:mod:`~salt.modules.brew` Mac OS software management using
|
||||
:py:mod:`~salt.modules.mac_brew_pkg` Mac OS software management using
|
||||
`Homebrew`_
|
||||
:py:mod:`~salt.modules.ebuild` Gentoo-based systems (utilizes the
|
||||
:py:mod:`~salt.modules.ebuildpkg` Gentoo-based systems (utilizes the
|
||||
``portage`` python module as well as
|
||||
``emerge(1)``)
|
||||
:py:mod:`~salt.modules.freebsdpkg` FreeBSD-based OSes using ``pkg_add(1)``
|
||||
:py:mod:`~salt.modules.openbsdpkg` OpenBSD-based OSes using ``pkg_add(1)``
|
||||
:py:mod:`~salt.modules.pacman` Arch Linux-based distros using
|
||||
:py:mod:`~salt.modules.pacmanpkg` Arch Linux-based distros using
|
||||
``pacman(8)``
|
||||
:py:mod:`~salt.modules.pkgin` NetBSD-based OSes using ``pkgin(1)``
|
||||
:py:mod:`~salt.modules.pkgng` FreeBSD-based OSes using ``pkg(8)``
|
||||
:py:mod:`~salt.modules.pkgutil` Solaris-based OSes using `OpenCSW`_'s
|
||||
``pkgutil(1)``
|
||||
:py:mod:`~salt.modules.solarispkg` Solaris-based OSes using ``pkgadd(1M)``
|
||||
:py:mod:`~salt.modules.solarisips` Solaris-based OSes using IPS ``pkg(1)``
|
||||
:py:mod:`~salt.modules.solarisipspkg` Solaris-based OSes using IPS ``pkg(1)``
|
||||
:py:mod:`~salt.modules.win_pkg` Salt's :ref:`Windows Package Manager
|
||||
<windows-package-manager>`
|
||||
:py:mod:`~salt.modules.yumpkg` RedHat-based distros and derivatives
|
||||
using ``yum(8)`` or ``dnf(8)``
|
||||
:py:mod:`~salt.modules.zypper` SUSE-based distros using ``zypper(8)``
|
||||
:py:mod:`~salt.modules.zypperpkg` SUSE-based distros using ``zypper(8)``
|
||||
====================================== ========================================
|
||||
|
||||
.. _Homebrew: http://brew.sh/
|
||||
|
|
|
@ -10,26 +10,26 @@ salt.modules.service
|
|||
``service`` is a virtual module that is fulfilled by one of the following
|
||||
modules:
|
||||
|
||||
====================================== ========================================
|
||||
Execution Module Used for
|
||||
====================================== ========================================
|
||||
:py:mod:`~salt.modules.debian_service` Debian Wheezy and earlier
|
||||
:py:mod:`~salt.modules.freebsdservice` FreeBSD-based OSes using ``service(8)``
|
||||
:py:mod:`~salt.modules.gentoo_service` Gentoo Linux using ``sysvinit`` and
|
||||
``rc-update(8)``
|
||||
:py:mod:`~salt.modules.launchctl` Mac OS hosts using ``launchctl(1)``
|
||||
:py:mod:`~salt.modules.netbsdservice` NetBSD-based OSes
|
||||
:py:mod:`~salt.modules.openbsdservice` OpenBSD-based OSes
|
||||
:py:mod:`~salt.modules.rh_service` RedHat-based distros and derivatives
|
||||
using ``service(8)`` and
|
||||
``chkconfig(8)``. Supports both pure
|
||||
sysvinit and mixed sysvinit/upstart
|
||||
systems.
|
||||
:py:mod:`~salt.modules.service` Fallback which simply wraps sysvinit
|
||||
scripts
|
||||
:py:mod:`~salt.modules.smf` Solaris-based OSes which use SMF
|
||||
:py:mod:`~salt.modules.systemd` Linux distros which use systemd
|
||||
:py:mod:`~salt.modules.upstart` Ubuntu-based distros using upstart
|
||||
:py:mod:`~salt.modules.win_service` Windows
|
||||
====================================== ========================================
|
||||
========================================= ========================================
|
||||
Execution Module Used for
|
||||
========================================= ========================================
|
||||
:py:mod:`~salt.modules.debian_service` Debian Wheezy and earlier
|
||||
:py:mod:`~salt.modules.freebsdservice` FreeBSD-based OSes using ``service(8)``
|
||||
:py:mod:`~salt.modules.gentoo_service` Gentoo Linux using ``sysvinit`` and
|
||||
``rc-update(8)``
|
||||
:py:mod:`~salt.modules.mac_service` Mac OS hosts using ``launchctl(1)``
|
||||
:py:mod:`~salt.modules.netbsdservice` NetBSD-based OSes
|
||||
:py:mod:`~salt.modules.openbsdservice` OpenBSD-based OSes
|
||||
:py:mod:`~salt.modules.rh_service` RedHat-based distros and derivatives
|
||||
using ``service(8)`` and
|
||||
``chkconfig(8)``. Supports both pure
|
||||
sysvinit and mixed sysvinit/upstart
|
||||
systems.
|
||||
:py:mod:`~salt.modules.service` Fallback which simply wraps sysvinit
|
||||
scripts
|
||||
:py:mod:`~salt.modules.smf_service` Solaris-based OSes which use SMF
|
||||
:py:mod:`~salt.modules.systemd_service` Linux distros which use systemd
|
||||
:py:mod:`~salt.modules.upstart_service` Ubuntu-based distros using upstart
|
||||
:py:mod:`~salt.modules.win_service` Windows
|
||||
========================================= ========================================
|
||||
|
||||
|
|
86
noxfile.py
86
noxfile.py
|
@ -25,6 +25,8 @@ if __name__ == '__main__':
|
|||
import nox
|
||||
from nox.command import CommandFailed
|
||||
|
||||
IS_PY3 = sys.version_info > (2,)
|
||||
|
||||
# Be verbose when runing under a CI context
|
||||
PIP_INSTALL_SILENT = (os.environ.get('JENKINS_URL') or os.environ.get('CI') or os.environ.get('DRONE')) is None
|
||||
|
||||
|
@ -55,15 +57,22 @@ def _get_session_python_version_info(session):
|
|||
try:
|
||||
version_info = session._runner._real_python_version_info
|
||||
except AttributeError:
|
||||
session_py_version = session.run(
|
||||
'python', '-c'
|
||||
'import sys; sys.stdout.write("{}.{}.{}".format(*sys.version_info))',
|
||||
silent=True,
|
||||
log=False,
|
||||
bypass_install_only=True
|
||||
)
|
||||
version_info = tuple(int(part) for part in session_py_version.split('.') if part.isdigit())
|
||||
session._runner._real_python_version_info = version_info
|
||||
old_install_only_value = session._runner.global_config.install_only
|
||||
try:
|
||||
# Force install only to be false for the following chunk of code
|
||||
# For additional information as to why see:
|
||||
# https://github.com/theacodes/nox/pull/181
|
||||
session._runner.global_config.install_only = False
|
||||
session_py_version = session.run(
|
||||
'python', '-c'
|
||||
'import sys; sys.stdout.write("{}.{}.{}".format(*sys.version_info))',
|
||||
silent=True,
|
||||
log=False,
|
||||
)
|
||||
version_info = tuple(int(part) for part in session_py_version.split('.') if part.isdigit())
|
||||
session._runner._real_python_version_info = version_info
|
||||
finally:
|
||||
session._runner.global_config.install_only = old_install_only_value
|
||||
return version_info
|
||||
|
||||
|
||||
|
@ -71,14 +80,21 @@ def _get_session_python_site_packages_dir(session):
|
|||
try:
|
||||
site_packages_dir = session._runner._site_packages_dir
|
||||
except AttributeError:
|
||||
site_packages_dir = session.run(
|
||||
'python', '-c'
|
||||
'import sys; from distutils.sysconfig import get_python_lib; sys.stdout.write(get_python_lib())',
|
||||
silent=True,
|
||||
log=False,
|
||||
bypass_install_only=True
|
||||
)
|
||||
session._runner._site_packages_dir = site_packages_dir
|
||||
old_install_only_value = session._runner.global_config.install_only
|
||||
try:
|
||||
# Force install only to be false for the following chunk of code
|
||||
# For additional information as to why see:
|
||||
# https://github.com/theacodes/nox/pull/181
|
||||
session._runner.global_config.install_only = False
|
||||
site_packages_dir = session.run(
|
||||
'python', '-c'
|
||||
'import sys; from distutils.sysconfig import get_python_lib; sys.stdout.write(get_python_lib())',
|
||||
silent=True,
|
||||
log=False,
|
||||
)
|
||||
session._runner._site_packages_dir = site_packages_dir
|
||||
finally:
|
||||
session._runner.global_config.install_only = old_install_only_value
|
||||
return site_packages_dir
|
||||
|
||||
|
||||
|
@ -94,11 +110,19 @@ def _get_distro_info(session):
|
|||
distro = session._runner._distro
|
||||
except AttributeError:
|
||||
# The distro package doesn't output anything for Windows
|
||||
session.install('--progress-bar=off', 'distro', silent=PIP_INSTALL_SILENT)
|
||||
output = session.run('distro', '-j', silent=True, bypass_install_only=True)
|
||||
distro = json.loads(output.strip())
|
||||
session.log('Distro information:\n%s', pprint.pformat(distro))
|
||||
session._runner._distro = distro
|
||||
old_install_only_value = session._runner.global_config.install_only
|
||||
try:
|
||||
# Force install only to be false for the following chunk of code
|
||||
# For additional information as to why see:
|
||||
# https://github.com/theacodes/nox/pull/181
|
||||
session._runner.global_config.install_only = False
|
||||
session.install('--progress-bar=off', 'distro', silent=PIP_INSTALL_SILENT)
|
||||
output = session.run('distro', '-j', silent=True)
|
||||
distro = json.loads(output.strip())
|
||||
session.log('Distro information:\n%s', pprint.pformat(distro))
|
||||
session._runner._distro = distro
|
||||
finally:
|
||||
session._runner.global_config.install_only = old_install_only_value
|
||||
return distro
|
||||
|
||||
|
||||
|
@ -841,8 +865,12 @@ def _lint(session, rcfile, flags, paths):
|
|||
raise
|
||||
finally:
|
||||
stdout.seek(0)
|
||||
contents = stdout.read().encode('utf-8')
|
||||
contents = stdout.read()
|
||||
if contents:
|
||||
if IS_PY3:
|
||||
contents = contents.decode('utf-8')
|
||||
else:
|
||||
contents = contents.encode('utf-8')
|
||||
sys.stdout.write(contents)
|
||||
sys.stdout.flush()
|
||||
if pylint_report_path:
|
||||
|
@ -892,14 +920,20 @@ def lint_tests(session):
|
|||
_lint(session, '.testing.pylintrc', flags, paths)
|
||||
|
||||
|
||||
@nox.session(python='2.7')
|
||||
@nox.session(python='3')
|
||||
def docs(session):
|
||||
'''
|
||||
Build Salt's Documentation
|
||||
'''
|
||||
session.install('--progress-bar=off', '-r', 'requirements/static/py2.7/docs.txt', silent=PIP_INSTALL_SILENT)
|
||||
pydir = _get_pydir(session)
|
||||
if pydir == 'py3.4':
|
||||
session.error('Sphinx only runs on Python >= 3.5')
|
||||
session.install(
|
||||
'--progress-bar=off',
|
||||
'-r', 'requirements/static/{}/docs.txt'.format(pydir),
|
||||
silent=PIP_INSTALL_SILENT)
|
||||
os.chdir('doc/')
|
||||
session.run('make', 'clean', external=True)
|
||||
session.run('make', 'html', external=True)
|
||||
session.run('make', 'html', 'SPHINXOPTS=-W', external=True)
|
||||
session.run('tar', '-czvf', 'doc-archive.tar.gz', '_build/html')
|
||||
os.chdir('..')
|
||||
|
|
|
@ -2,29 +2,32 @@ apache-libcloud==2.4.0
|
|||
backports.ssl_match_hostname==3.7.0.1
|
||||
backports_abc==0.5
|
||||
certifi
|
||||
cffi==1.11.2
|
||||
cffi==1.12.2
|
||||
CherryPy==17.4.1
|
||||
click==7.0
|
||||
enum34==1.1.6
|
||||
futures==3.2.0; python_version == '2.7'
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb==0.6.4
|
||||
GitPython==2.1.10
|
||||
gitpython==2.1.11
|
||||
idna==2.8
|
||||
ipaddress==1.0.22
|
||||
Jinja2==2.10
|
||||
jinja2==2.10.1
|
||||
linode-python==1.1.1
|
||||
Mako==1.0.7
|
||||
MarkupSafe==1.1.0
|
||||
markupsafe==1.1.1
|
||||
msgpack-python==0.5.6
|
||||
psutil==5.6.1
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycrypto==2.6.1
|
||||
pycryptodome==3.8.1
|
||||
pyobjc==5.1.2
|
||||
python-dateutil==2.7.5
|
||||
python-gnupg==0.4.3
|
||||
PyYAML==3.13
|
||||
pyzmq==17.1.2
|
||||
pyopenssl
|
||||
python-dateutil==2.8.0
|
||||
python-gnupg==0.4.4
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
requests==2.21.0
|
||||
setproctitle
|
||||
singledispatch==3.4.0.3
|
||||
smmap==0.9.0
|
||||
timelib==0.2.4
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
cryptography==2.4.2
|
||||
pyOpenSSL==18.0.0
|
||||
cryptography==2.6.1
|
||||
pyopenssl==19.0.0
|
||||
|
|
|
@ -2,38 +2,38 @@
|
|||
backports-abc==0.5
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
certifi
|
||||
cffi==1.11.5
|
||||
cffi==1.12.2
|
||||
CherryPy==17.4.1
|
||||
cryptography==2.4.2
|
||||
cryptography==2.6.1
|
||||
enum34==1.1.6
|
||||
futures==3.2.0; python_version == '2.7'
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb==0.6.4
|
||||
GitPython==2.1.10
|
||||
idna==2.8
|
||||
ioloop==0.1a0
|
||||
ipaddress==1.0.22
|
||||
Jinja2==2.10
|
||||
libnacl==1.6.1 # required by the nacl module
|
||||
jinja2==2.10.1
|
||||
libnacl==1.6.1
|
||||
lxml==4.3.0
|
||||
Mako==1.0.7
|
||||
MarkupSafe==1.1.0
|
||||
markupsafe==1.1.1
|
||||
msgpack-python==0.5.6
|
||||
psutil==5.4.8
|
||||
psutil==5.6.1
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycrypto==2.6.1
|
||||
pycryptodomex==3.8.1
|
||||
pycurl==7.43.0.2
|
||||
pymssql==2.1.4
|
||||
PyMySQL==0.9.3
|
||||
pyOpenSSL==18.0.0
|
||||
python-dateutil==2.7.5
|
||||
python-gnupg==0.4.3
|
||||
pyopenssl==19.0.0
|
||||
python-dateutil==2.8.0
|
||||
python-gnupg==0.4.4
|
||||
pythonnet==2.3.0
|
||||
PyYAML==3.13
|
||||
pyzmq==17.1.2
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
requests==2.21.0
|
||||
setproctitle
|
||||
singledispatch==3.4.0.3
|
||||
smmap==0.9.0
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3
|
||||
wheel==0.32.3
|
||||
wheel==0.33.4
|
||||
|
|
|
@ -19,7 +19,8 @@ mock>=2.0.0; python_version < '3.6'
|
|||
more-itertools==5.0.0
|
||||
moto
|
||||
msgpack-python >= 0.4.2, != 0.5.5
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2; python_version < '3.7'
|
||||
paramiko>=2.2.3; python_version >= '3.7'
|
||||
psutil
|
||||
# Let's install cryptodome instead of pycrypto because of pycrypto's outstanding security issues
|
||||
# PyCrypto, if pulled, will be removed from the generated static requirements
|
||||
|
|
|
@ -19,7 +19,8 @@ mock>=2.0.0; python_version < '3.6'
|
|||
more-itertools==5.0.0
|
||||
moto
|
||||
msgpack-python >= 0.4.2, != 0.5.5
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2; python_version < '3.7'
|
||||
paramiko>=2.2.3; python_version >= '3.7'
|
||||
psutil
|
||||
# Let's install cryptodome instead of pycrypto because of pycrypto's outstanding security issues
|
||||
# PyCrypto, if pulled, will be removed from the generated static requirements
|
||||
|
|
|
@ -3,4 +3,5 @@ azure
|
|||
impacket; python_version < '3.0'
|
||||
netaddr
|
||||
profitbricks
|
||||
pypsexec
|
||||
pywinrm
|
||||
|
|
|
@ -18,7 +18,8 @@ mock>=2.0.0; python_version < '3.6'
|
|||
more-itertools==5.0.0
|
||||
moto
|
||||
msgpack-python >= 0.4.2, != 0.5.5
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2; python_version < '3.7'
|
||||
paramiko>=2.2.3; python_version >= '3.7'
|
||||
psutil
|
||||
# Let's install cryptodome instead of pycrypto because of pycrypto's outstanding security issues
|
||||
# PyCrypto, if pulled, will be removed from the generated static requirements
|
||||
|
|
|
@ -18,9 +18,9 @@ mock>=2.0.0; python_version < '3.6'
|
|||
more-itertools==5.0.0
|
||||
moto
|
||||
msgpack-python >= 0.4.2, != 0.5.5
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2; python_version < '3.7'
|
||||
paramiko>=2.2.3; python_version >= '3.7'
|
||||
psutil
|
||||
paramiko==2.1.2
|
||||
# Let's install cryptodome instead of pycrypto because of pycrypto's outstanding security issues
|
||||
# PyCrypto, if pulled, will be removed from the generated static requirements
|
||||
pycryptodome
|
||||
|
|
|
@ -1 +1 @@
|
|||
sphinx
|
||||
sphinx>=2.0.1
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
# This is a compilation of requirements installed on salt-jenkins git.salt state run
|
||||
apache-libcloud==2.0.0
|
||||
boto3
|
||||
boto>=2.46.0
|
||||
cffi
|
||||
clustershell
|
||||
croniter>=0.3.0,!=0.3.22
|
||||
dnspython
|
||||
docker
|
||||
futures>=2.0; python_version < '3.0'
|
||||
GitPython>=2.1.8
|
||||
jsonschema<=2.6.0
|
||||
junos-eznc
|
||||
jxmlease
|
||||
|
@ -17,23 +14,13 @@ kubernetes<4.0
|
|||
mock>=2.0.0; python_version < '3.6'
|
||||
more-itertools==5.0.0
|
||||
moto
|
||||
msgpack-python >= 0.4.2, != 0.5.5
|
||||
psutil
|
||||
# Let's install cryptodome instead of pycrypto because of pycrypto's outstanding security issues
|
||||
# PyCrypto, if pulled, will be removed from the generated static requirements
|
||||
pycryptodome
|
||||
pylxd>=2.2.5
|
||||
pyopenssl
|
||||
python-etcd>0.4.2
|
||||
python-gnupg
|
||||
pyvmomi
|
||||
requests
|
||||
rfc3987
|
||||
salttesting==2017.6.1
|
||||
setproctitle
|
||||
strict_rfc3339
|
||||
supervisor==3.3.5; python_version < '3'
|
||||
timelib
|
||||
tornado<5.0
|
||||
virtualenv
|
||||
yamlordereddictloader
|
||||
|
|
|
@ -93,7 +93,7 @@ certifi==2019.3.9 # via msrest, requests
|
|||
cffi==1.12.2 # via azure-datalake-store, cryptography
|
||||
chardet==3.0.4 # via requests
|
||||
click==7.0 # via flask
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, pyopenssl, requests-ntlm
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, pyopenssl, requests-ntlm, smbprotocol
|
||||
dnspython==1.16.0 # via ldapdomaindump
|
||||
enum34==1.1.6 # via cryptography, msrest
|
||||
flask==1.0.2 # via impacket
|
||||
|
@ -111,22 +111,24 @@ markupsafe==1.1.1 # via jinja2
|
|||
msrest==0.6.6 # via azure-applicationinsights, azure-eventgrid, azure-keyvault, azure-loganalytics, azure-mgmt-cdn, azure-mgmt-compute, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-dns, azure-mgmt-eventhub, azure-mgmt-keyvault, azure-mgmt-media, azure-mgmt-network, azure-mgmt-rdbms, azure-mgmt-resource, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-servicefabric, msrestazure
|
||||
msrestazure==0.6.0 # via azure-batch, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
|
||||
netaddr==0.7.19
|
||||
ntlm-auth==1.3.0 # via requests-ntlm
|
||||
ntlm-auth==1.3.0 # via requests-ntlm, smbprotocol
|
||||
oauthlib==3.0.1 # via requests-oauthlib
|
||||
pathlib2==2.3.3 # via azure-datalake-store
|
||||
profitbricks==4.1.3
|
||||
pyasn1==0.4.5 # via impacket, ldap3
|
||||
pyasn1==0.4.5 # via impacket, ldap3, smbprotocol
|
||||
pycparser==2.19 # via cffi
|
||||
pycryptodomex==3.8.1 # via impacket
|
||||
pyjwt==1.7.1 # via adal
|
||||
pyopenssl==19.0.0 # via impacket
|
||||
pypsexec==0.1.0
|
||||
python-dateutil==2.8.0 # via adal, azure-cosmosdb-table, azure-storage-common
|
||||
pywinrm==0.3.0
|
||||
requests-ntlm==1.1.0 # via pywinrm
|
||||
requests-oauthlib==1.2.0 # via msrest
|
||||
requests==2.21.0 # via adal, azure-cosmosdb-table, azure-datalake-store, azure-keyvault, azure-servicebus, azure-servicemanagement-legacy, azure-storage-common, msrest, profitbricks, pywinrm, requests-ntlm, requests-oauthlib
|
||||
scandir==1.10.0 # via pathlib2
|
||||
six==1.12.0 # via cryptography, impacket, isodate, pathlib2, profitbricks, pyopenssl, python-dateutil, pywinrm
|
||||
six==1.12.0 # via cryptography, impacket, isodate, pathlib2, profitbricks, pyopenssl, pypsexec, python-dateutil, pywinrm, smbprotocol
|
||||
smbprotocol==0.1.1 # via pypsexec
|
||||
typing==3.6.6 # via msrest
|
||||
urllib3==1.24.2 # via requests
|
||||
werkzeug==0.15.2 # via flask
|
||||
|
|
|
@ -66,7 +66,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -66,7 +66,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -65,7 +65,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -65,7 +65,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -2,15 +2,16 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py2.7/raet-osx.txt -v requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/osx.in
|
||||
# pip-compile -o requirements/static/py2.7/raet-osx.txt -v pkg/osx/req.txt pkg/osx/req_ext.txt requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/osx.in
|
||||
#
|
||||
apache-libcloud==2.0.0
|
||||
apache-libcloud==2.4.0
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
backports.tempfile==1.0 # via moto
|
||||
backports.weakref==1.0.post1 # via backports.tempfile
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
|
@ -18,30 +19,36 @@ boto3==1.9.132
|
|||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
click==7.0
|
||||
clustershell==1.8.1
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
cookies==2.2.1 # via responses
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
croniter==0.3.29
|
||||
cryptography==2.6.1 # via moto, paramiko, pylxd, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6 # via cryptography, raet
|
||||
enum34==1.1.6
|
||||
funcsigs==1.0.2 # via mock, pytest
|
||||
functools32==3.2.3.post2 # via jsonschema
|
||||
future==0.17.1 # via python-jose
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.11
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
idna==2.8
|
||||
ioflo==1.7.5
|
||||
ipaddress==1.0.22 # via cryptography, docker, kubernetes
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -52,7 +59,9 @@ jxmlease==1.0.1
|
|||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
linode-python==1.1.1
|
||||
lxml==4.3.3 # via junos-eznc, ncclient
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
meld3==1.0.2 # via supervisor
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
|
@ -66,12 +75,13 @@ paramiko==2.4.2 # via junos-eznc, ncclient, scp
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock, pylxd
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1
|
||||
pylxd==2.2.9
|
||||
pynacl==1.3.0 # via paramiko
|
||||
|
@ -84,13 +94,14 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, croniter, kubernetes, moto, pylxd
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
raet==0.6.8
|
||||
requests-toolbelt==0.9.1 # via pylxd
|
||||
requests-unixsocket==0.1.5 # via pylxd
|
||||
|
@ -104,18 +115,24 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
supervisor==3.3.5 ; python_version < "3"
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version < "3"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests, requests-unixsocket
|
||||
virtualenv==16.4.3
|
||||
vultr==1.0.1
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
ws4py==0.5.1 # via pylxd
|
||||
xmltodict==0.12.0 # via moto
|
||||
yamlordereddictloader==0.4.0
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
# Passthrough dependencies from pkg/osx/req.txt
|
||||
pyobjc==5.1.2
|
||||
|
|
|
@ -65,7 +65,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -65,7 +65,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -2,42 +2,51 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py2.7/raet-windows.txt -v requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/windows.in
|
||||
# pip-compile -o requirements/static/py2.7/raet-windows.txt -v pkg/windows/req.txt pkg/windows/req_win.txt requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/windows.in
|
||||
#
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
backports.tempfile==1.0 # via moto
|
||||
backports.weakref==1.0.post1 # via backports.tempfile
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
cffi==1.12.2 # via cryptography
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
colorama==0.4.1 # via pytest
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
cookies==2.2.1 # via responses
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
cryptography==2.6.1 # via moto, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dmidecode==0.9.0
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==2.7.0
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6 # via cryptography, raet
|
||||
enum34==1.1.6
|
||||
funcsigs==1.0.2 # via mock, pytest
|
||||
functools32==3.2.3.post2 # via jsonschema
|
||||
future==0.17.1 # via python-jose
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.10
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
idna==2.8
|
||||
ioflo==1.7.5
|
||||
ipaddress==1.0.22 # via cryptography, docker, kubernetes
|
||||
ioloop==0.1a0
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -46,6 +55,8 @@ jsonschema==2.6.0
|
|||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
lxml==4.3.0
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
meld3==1.0.2 # via supervisor
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
|
@ -57,13 +68,17 @@ patch==1.16
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1 # via python-jose
|
||||
pycryptodomex==3.8.1
|
||||
pycurl==7.43.0.2
|
||||
pymysql==0.9.3
|
||||
pyopenssl==19.0.0
|
||||
pytest-cov==2.6.1
|
||||
pytest-helpers-namespace==2019.1.8
|
||||
|
@ -72,14 +87,16 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, kubernetes, moto
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pythonnet==2.3.0
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pywin32==223
|
||||
pywin32==224
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
raet==0.6.8
|
||||
requests==2.21.0
|
||||
responses==0.10.6 # via moto
|
||||
|
@ -90,16 +107,21 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
sed==0.3.1
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
supervisor==3.3.5 ; python_version < "3"
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version < "3"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests
|
||||
virtualenv==16.4.3
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wheel==0.33.4
|
||||
wmi==1.4.9
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
xmltodict==0.12.0 # via moto
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
|
|
|
@ -64,7 +64,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -64,7 +64,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -63,7 +63,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -63,7 +63,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -2,15 +2,16 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py2.7/zeromq-osx.txt -v requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/osx.in
|
||||
# pip-compile -o requirements/static/py2.7/zeromq-osx.txt -v pkg/osx/req.txt pkg/osx/req_ext.txt requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/osx.in
|
||||
#
|
||||
apache-libcloud==2.0.0
|
||||
apache-libcloud==2.4.0
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
backports.tempfile==1.0 # via moto
|
||||
backports.weakref==1.0.post1 # via backports.tempfile
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
|
@ -18,29 +19,35 @@ boto3==1.9.132
|
|||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
click==7.0
|
||||
clustershell==1.8.1
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
cookies==2.2.1 # via responses
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
croniter==0.3.29
|
||||
cryptography==2.6.1 # via moto, paramiko, pylxd, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6 # via cryptography
|
||||
enum34==1.1.6
|
||||
funcsigs==1.0.2 # via mock, pytest
|
||||
functools32==3.2.3.post2 # via jsonschema
|
||||
future==0.17.1 # via python-jose
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.11
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
ipaddress==1.0.22 # via cryptography, docker, kubernetes
|
||||
idna==2.8
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -50,7 +57,9 @@ junos-eznc==2.2.0
|
|||
jxmlease==1.0.1
|
||||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
linode-python==1.1.1
|
||||
lxml==4.3.3 # via junos-eznc, ncclient
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
meld3==1.0.2 # via supervisor
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
|
@ -64,12 +73,13 @@ paramiko==2.4.2 # via junos-eznc, ncclient, scp
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock, pylxd
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^pycrypto==(.*)$'
|
||||
# pycrypto==2.6.1 ; sys_platform != "win32"
|
||||
pycryptodome==3.8.1
|
||||
|
@ -84,11 +94,11 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, croniter, kubernetes, moto, pylxd
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1 ; python_version != "3.4"
|
||||
|
@ -104,18 +114,24 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
supervisor==3.3.5 ; python_version < "3"
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version < "3"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests, requests-unixsocket
|
||||
virtualenv==16.4.3
|
||||
vultr==1.0.1
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
ws4py==0.5.1 # via pylxd
|
||||
xmltodict==0.12.0 # via moto
|
||||
yamlordereddictloader==0.4.0
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
# Passthrough dependencies from pkg/osx/req.txt
|
||||
pyobjc==5.1.2
|
||||
|
|
|
@ -63,7 +63,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -63,7 +63,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
|
|
@ -2,41 +2,50 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py2.7/zeromq-windows.txt -v requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/windows.in
|
||||
# pip-compile -o requirements/static/py2.7/zeromq-windows.txt -v pkg/windows/req.txt pkg/windows/req_win.txt requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/windows.in
|
||||
#
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot, jaraco.functools
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
backports.tempfile==1.0 # via moto
|
||||
backports.weakref==1.0.post1 # via backports.tempfile
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
cffi==1.12.2 # via cryptography
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
colorama==0.4.1 # via pytest
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
cookies==2.2.1 # via responses
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
cryptography==2.6.1 # via moto, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dmidecode==0.9.0
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==2.7.0
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6 # via cryptography
|
||||
enum34==1.1.6
|
||||
funcsigs==1.0.2 # via mock, pytest
|
||||
functools32==3.2.3.post2 # via jsonschema
|
||||
future==0.17.1 # via python-jose
|
||||
futures==3.2.0 ; python_version < "3.0"
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.10
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
ipaddress==1.0.22 # via cryptography, docker, kubernetes
|
||||
idna==2.8
|
||||
ioloop==0.1a0
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -44,6 +53,9 @@ jsonpickle==1.1 # via aws-xray-sdk
|
|||
jsonschema==2.6.0
|
||||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
lxml==4.3.0
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
meld3==1.0.2 # via supervisor
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
|
@ -55,14 +67,17 @@ patch==1.16
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1 # via python-jose
|
||||
pycryptodomex==3.8.1 ; sys_platform == "win32"
|
||||
pycurl==7.43.0.2
|
||||
pymysql==0.9.3
|
||||
pyopenssl==19.0.0
|
||||
pytest-cov==2.6.1
|
||||
pytest-helpers-namespace==2019.1.8
|
||||
|
@ -71,13 +86,14 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, kubernetes, moto
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pythonnet==2.3.0
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pywin32==223
|
||||
pywin32==224
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1 ; python_version != "3.4"
|
||||
requests==2.21.0
|
||||
|
@ -89,16 +105,21 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
sed==0.3.1
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
supervisor==3.3.5 ; python_version < "3"
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version < "3"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests
|
||||
virtualenv==16.4.3
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wheel==0.33.4
|
||||
wmi==1.4.9
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
xmltodict==0.12.0 # via moto
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
|
|
|
@ -91,23 +91,26 @@ azure==4.0.0
|
|||
certifi==2019.3.9 # via msrest, requests
|
||||
cffi==1.12.2 # via azure-datalake-store, cryptography
|
||||
chardet==3.0.4 # via requests
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm, smbprotocol
|
||||
idna==2.8 # via requests
|
||||
isodate==0.6.0 # via msrest
|
||||
msrest==0.6.6 # via azure-applicationinsights, azure-eventgrid, azure-keyvault, azure-loganalytics, azure-mgmt-cdn, azure-mgmt-compute, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-dns, azure-mgmt-eventhub, azure-mgmt-keyvault, azure-mgmt-media, azure-mgmt-network, azure-mgmt-rdbms, azure-mgmt-resource, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-servicefabric, msrestazure
|
||||
msrestazure==0.6.0 # via azure-batch, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
|
||||
netaddr==0.7.19
|
||||
ntlm-auth==1.3.0 # via requests-ntlm
|
||||
ntlm-auth==1.3.0 # via requests-ntlm, smbprotocol
|
||||
oauthlib==3.0.1 # via requests-oauthlib
|
||||
profitbricks==4.1.3
|
||||
pyasn1==0.4.5 # via smbprotocol
|
||||
pycparser==2.19 # via cffi
|
||||
pyjwt==1.7.1 # via adal
|
||||
pypsexec==0.1.0
|
||||
python-dateutil==2.8.0 # via adal, azure-cosmosdb-table, azure-storage-common
|
||||
pywinrm==0.3.0
|
||||
requests-ntlm==1.1.0 # via pywinrm
|
||||
requests-oauthlib==1.2.0 # via msrest
|
||||
requests==2.21.0 # via adal, azure-cosmosdb-table, azure-datalake-store, azure-keyvault, azure-servicebus, azure-servicemanagement-legacy, azure-storage-common, msrest, profitbricks, pywinrm, requests-ntlm, requests-oauthlib
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, python-dateutil, pywinrm
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, pypsexec, python-dateutil, pywinrm, smbprotocol
|
||||
smbprotocol==0.1.1 # via pypsexec
|
||||
typing==3.6.6 # via msrest
|
||||
urllib3==1.24.2 # via requests
|
||||
xmltodict==0.12.0 # via pywinrm
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -60,7 +57,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -100,8 +97,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -90,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -60,7 +57,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -100,8 +97,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -99,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -99,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,14 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -31,8 +30,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -101,8 +98,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,14 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -31,8 +30,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -101,8 +98,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,8 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -92,8 +89,7 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,8 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -92,8 +89,7 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -99,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -99,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -56,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -98,8 +97,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -88,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -56,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -98,8 +97,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,14 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -99,8 +98,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,14 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -99,8 +98,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,8 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -90,8 +89,7 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,8 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -90,8 +89,7 @@ salttesting==2017.6.1
|
|||
scandir==1.10.0 # via pathlib2
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker, websocket-client
|
||||
backports.ssl-match-hostname==3.7.0.1 # via docker
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +96,7 @@ scandir==1.10.0 # via pathlib2
|
|||
scp==0.13.2 # via junos-eznc
|
||||
selectors2==2.0.1 # via ncclient
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -91,22 +91,25 @@ azure==4.0.0
|
|||
certifi==2019.3.9 # via msrest, requests
|
||||
cffi==1.12.2 # via azure-datalake-store, cryptography
|
||||
chardet==3.0.4 # via requests
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm, smbprotocol
|
||||
idna==2.8 # via requests
|
||||
isodate==0.6.0 # via msrest
|
||||
msrest==0.6.6 # via azure-applicationinsights, azure-eventgrid, azure-keyvault, azure-loganalytics, azure-mgmt-cdn, azure-mgmt-compute, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-dns, azure-mgmt-eventhub, azure-mgmt-keyvault, azure-mgmt-media, azure-mgmt-network, azure-mgmt-rdbms, azure-mgmt-resource, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-servicefabric, msrestazure
|
||||
msrestazure==0.6.0 # via azure-batch, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
|
||||
netaddr==0.7.19
|
||||
ntlm-auth==1.3.0 # via requests-ntlm
|
||||
ntlm-auth==1.3.0 # via requests-ntlm, smbprotocol
|
||||
oauthlib==3.0.1 # via requests-oauthlib
|
||||
profitbricks==4.1.3
|
||||
pyasn1==0.4.5 # via smbprotocol
|
||||
pycparser==2.19 # via cffi
|
||||
pyjwt==1.7.1 # via adal
|
||||
pypsexec==0.1.0
|
||||
python-dateutil==2.8.0 # via adal, azure-cosmosdb-table, azure-storage-common
|
||||
pywinrm==0.3.0
|
||||
requests-ntlm==1.1.0 # via pywinrm
|
||||
requests-oauthlib==1.2.0 # via msrest
|
||||
requests==2.21.0 # via adal, azure-cosmosdb-table, azure-datalake-store, azure-keyvault, azure-servicebus, azure-servicemanagement-legacy, azure-storage-common, msrest, profitbricks, pywinrm, requests-ntlm, requests-oauthlib
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, python-dateutil, pywinrm
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, pypsexec, python-dateutil, pywinrm, smbprotocol
|
||||
smbprotocol==0.1.1 # via pypsexec
|
||||
urllib3==1.24.2 # via requests
|
||||
xmltodict==0.12.0 # via pywinrm
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py2.7/docs.txt -v requirements/static/docs.in
|
||||
# pip-compile -o requirements/static/py3.5/docs.txt -v requirements/static/docs.in
|
||||
#
|
||||
alabaster==0.7.12 # via sphinx
|
||||
babel==2.6.0 # via sphinx
|
||||
babel==2.7.0 # via sphinx
|
||||
certifi==2019.3.9 # via requests
|
||||
chardet==3.0.4 # via requests
|
||||
docutils==0.14 # via sphinx
|
||||
|
@ -14,13 +14,17 @@ imagesize==1.1.0 # via sphinx
|
|||
jinja2==2.10.1 # via sphinx
|
||||
markupsafe==1.1.1 # via jinja2
|
||||
packaging==19.0 # via sphinx
|
||||
pygments==2.3.1 # via sphinx
|
||||
pygments==2.4.2 # via sphinx
|
||||
pyparsing==2.4.0 # via packaging
|
||||
pytz==2019.1 # via babel
|
||||
requests==2.21.0 # via sphinx
|
||||
six==1.12.0 # via packaging, sphinx
|
||||
requests==2.22.0 # via sphinx
|
||||
six==1.12.0 # via packaging
|
||||
snowballstemmer==1.2.1 # via sphinx
|
||||
sphinx==1.8.5
|
||||
sphinxcontrib-websupport==1.1.0 # via sphinx
|
||||
typing==3.6.6 # via sphinx
|
||||
urllib3==1.24.2 # via requests
|
||||
sphinx==2.0.1
|
||||
sphinxcontrib-applehelp==1.0.1 # via sphinx
|
||||
sphinxcontrib-devhelp==1.0.1 # via sphinx
|
||||
sphinxcontrib-htmlhelp==1.0.2 # via sphinx
|
||||
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||
sphinxcontrib-qthelp==1.0.2 # via sphinx
|
||||
sphinxcontrib-serializinghtml==1.1.3 # via sphinx
|
||||
urllib3==1.25.3 # via requests
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -60,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -98,8 +94,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -89,8 +85,7 @@ rsa==4.0 # via google-auth
|
|||
s3transfer==0.2.0 # via boto3
|
||||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -60,7 +56,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -98,8 +94,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -31,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -99,8 +95,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -31,8 +29,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -99,8 +95,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,7 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -91,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,7 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -91,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -2,41 +2,48 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py3.5/raet-osx.txt -v requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/osx.in
|
||||
# pip-compile -o requirements/static/py3.5/raet-osx.txt -v pkg/osx/req.txt pkg/osx/req_ext.txt requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/osx.in
|
||||
#
|
||||
apache-libcloud==2.0.0
|
||||
apache-libcloud==2.4.0
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl_match_hostname==3.7.0.1
|
||||
backports_abc==0.5
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
click==7.0
|
||||
clustershell==1.8.1
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
croniter==0.3.29
|
||||
cryptography==2.6.1 # via moto, paramiko, pylxd, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
# enum34==1.1.6
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.11
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
idna==2.8
|
||||
ioflo==1.7.5
|
||||
ipaddress==1.0.22 # via kubernetes
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -47,7 +54,9 @@ jxmlease==1.0.1
|
|||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
linode-python==1.1.1
|
||||
lxml==4.3.3 # via junos-eznc, ncclient
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
more-itertools==5.0.0
|
||||
|
@ -60,12 +69,13 @@ paramiko==2.4.2 # via junos-eznc, ncclient, scp
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock, pylxd
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1
|
||||
pylxd==2.2.9
|
||||
pynacl==1.3.0 # via paramiko
|
||||
|
@ -78,13 +88,14 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, croniter, kubernetes, moto, pylxd
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
raet==0.6.8
|
||||
requests-toolbelt==0.9.1 # via pylxd
|
||||
requests-unixsocket==0.1.5 # via pylxd
|
||||
|
@ -96,17 +107,23 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version >= "3.4"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests, requests-unixsocket
|
||||
virtualenv==16.4.3
|
||||
vultr==1.0.1
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
ws4py==0.5.1 # via pylxd
|
||||
xmltodict==0.12.0 # via moto
|
||||
yamlordereddictloader==0.4.0
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
# Passthrough dependencies from pkg/osx/req.txt
|
||||
pyobjc==5.1.2
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -30,8 +28,6 @@ docker-pycreds==0.4.0 # via docker
|
|||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitpython==2.1.11
|
||||
|
@ -59,7 +55,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -97,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -2,23 +2,28 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py3.5/raet-windows.txt -v requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/windows.in
|
||||
# pip-compile -o requirements/static/py3.5/raet-windows.txt -v pkg/windows/req.txt pkg/windows/req_win.txt requirements/base.txt requirements/raet.txt requirements/pytest.txt requirements/static/windows.in
|
||||
#
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2 # via cryptography
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
colorama==0.4.1 # via pytest
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
cryptography==2.6.1 # via moto, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dmidecode==0.9.0
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
|
@ -26,12 +31,17 @@ docker==2.7.0
|
|||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^enum34==(.*)$'
|
||||
# enum34==1.1.6 # via raet
|
||||
# enum34==1.1.6
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.10
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
idna==2.8
|
||||
ioflo==1.7.5
|
||||
ipaddress==1.0.22 # via kubernetes
|
||||
ioloop==0.1a0
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -40,6 +50,8 @@ jsonschema==2.6.0
|
|||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
lxml==4.3.0
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
more-itertools==5.0.0
|
||||
|
@ -50,13 +62,17 @@ patch==1.16
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1 # via python-jose
|
||||
pycryptodomex==3.8.1
|
||||
pycurl==7.43.0.2
|
||||
pymysql==0.9.3
|
||||
pyopenssl==19.0.0
|
||||
pytest-cov==2.6.1
|
||||
pytest-helpers-namespace==2019.1.8
|
||||
|
@ -65,14 +81,16 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, kubernetes, moto
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pythonnet==2.3.0
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pywin32==223
|
||||
pywin32==224
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1
|
||||
raet==0.6.8
|
||||
requests==2.21.0
|
||||
responses==0.10.6 # via moto
|
||||
|
@ -82,14 +100,20 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
sed==0.3.1
|
||||
setproctitle==1.1.10
|
||||
six==1.12.0 # via cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, raet, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version >= "3.4"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests
|
||||
virtualenv==16.4.3
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wheel==0.33.4
|
||||
wmi==1.4.9
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
xmltodict==0.12.0 # via moto
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -56,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -96,8 +94,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -87,8 +85,7 @@ rsa==4.0 # via google-auth
|
|||
s3transfer==0.2.0 # via boto3
|
||||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -56,7 +54,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -96,8 +94,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kazoo, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +53,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -95,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +53,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -95,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -97,8 +95,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,15 +9,13 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -97,8 +95,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,7 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -89,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,9 +9,7 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
|
@ -89,8 +87,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
setproctitle==1.1.10
|
||||
setuptools-scm==3.2.0
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -2,38 +2,46 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py3.5/zeromq-osx.txt -v requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/osx.in
|
||||
# pip-compile -o requirements/static/py3.5/zeromq-osx.txt -v pkg/osx/req.txt pkg/osx/req_ext.txt requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/osx.in
|
||||
#
|
||||
apache-libcloud==2.0.0
|
||||
apache-libcloud==2.4.0
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl_match_hostname==3.7.0.1
|
||||
backports_abc==0.5
|
||||
bcrypt==3.1.6 # via paramiko
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
click==7.0
|
||||
clustershell==1.8.1
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
croniter==0.3.29
|
||||
cryptography==2.6.1 # via moto, paramiko, pylxd, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==3.7.2
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.11
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
ipaddress==1.0.22 # via kubernetes
|
||||
idna==2.8
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -43,7 +51,9 @@ junos-eznc==2.2.0
|
|||
jxmlease==1.0.1
|
||||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
linode-python==1.1.1
|
||||
lxml==4.3.3 # via junos-eznc, ncclient
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
more-itertools==5.0.0
|
||||
|
@ -56,12 +66,13 @@ paramiko==2.4.2 # via junos-eznc, ncclient, scp
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock, pylxd
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
# Next line explicitly commented out by pip-tools-compile because of the following regex: '^pycrypto==(.*)$'
|
||||
# pycrypto==2.6.1 ; sys_platform != "win32"
|
||||
pycryptodome==3.8.1
|
||||
|
@ -76,11 +87,11 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, croniter, kubernetes, moto, pylxd
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1 ; python_version != "3.4"
|
||||
|
@ -94,17 +105,23 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via bcrypt, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pylxd, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version >= "3.4"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests, requests-unixsocket
|
||||
virtualenv==16.4.3
|
||||
vultr==1.0.1
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
ws4py==0.5.1 # via pylxd
|
||||
xmltodict==0.12.0 # via moto
|
||||
yamlordereddictloader==0.4.0
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
# Passthrough dependencies from pkg/osx/req.txt
|
||||
pyobjc==5.1.2
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +53,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -95,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -9,14 +9,12 @@ asn1crypto==0.24.0 # via cryptography
|
|||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports-abc==0.5 # via tornado
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests, tornado
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.4 # via cherrypy
|
||||
|
@ -55,7 +53,7 @@ msgpack-python==0.5.6
|
|||
msgpack==0.6.1
|
||||
ncclient==0.6.4 # via junos-eznc
|
||||
netaddr==0.7.19 # via junos-eznc
|
||||
paramiko==2.1.2
|
||||
paramiko==2.1.2 ; python_version < "3.7"
|
||||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
|
@ -95,8 +93,7 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
scp==0.13.2 # via junos-eznc
|
||||
setproctitle==1.1.10
|
||||
singledispatch==3.4.0.3 # via tornado
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
|
|
|
@ -2,33 +2,44 @@
|
|||
# This file is autogenerated by pip-compile
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile -o requirements/static/py3.5/zeromq-windows.txt -v requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/windows.in
|
||||
# pip-compile -o requirements/static/py3.5/zeromq-windows.txt -v pkg/windows/req.txt pkg/windows/req_win.txt requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/windows.in
|
||||
#
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
atomicwrites==1.3.0 # via pytest
|
||||
attrs==19.1.0 # via pytest
|
||||
aws-xray-sdk==0.95 # via moto
|
||||
backports.ssl-match-hostname==3.7.0.1 # via websocket-client
|
||||
backports-abc==0.5
|
||||
backports.functools-lru-cache==1.5 # via cheroot
|
||||
backports.ssl-match-hostname==3.7.0.1
|
||||
boto3==1.9.132
|
||||
boto==2.49.0
|
||||
botocore==1.12.132 # via boto3, moto, s3transfer
|
||||
cachetools==3.1.0 # via google-auth
|
||||
certifi==2019.3.9 # via kubernetes, requests
|
||||
cffi==1.12.2 # via cryptography
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
chardet==3.0.4 # via requests
|
||||
cheroot==6.5.5 # via cherrypy
|
||||
cherrypy==17.4.1
|
||||
colorama==0.4.1 # via pytest
|
||||
contextlib2==0.5.5 # via cherrypy
|
||||
coverage==4.5.3 # via pytest-cov
|
||||
cryptography==2.6.1 # via moto, pyopenssl
|
||||
cryptography==2.6.1
|
||||
dmidecode==0.9.0
|
||||
dnspython==1.16.0
|
||||
docker-pycreds==0.4.0 # via docker
|
||||
docker==2.7.0
|
||||
docutils==0.14 # via botocore
|
||||
ecdsa==0.13.2 # via python-jose
|
||||
enum34==1.1.6
|
||||
future==0.17.1 # via python-jose
|
||||
gitdb2==2.0.5 # via gitpython
|
||||
gitdb==0.6.4
|
||||
gitpython==2.1.10
|
||||
google-auth==1.6.3 # via kubernetes
|
||||
idna==2.8 # via requests
|
||||
ipaddress==1.0.22 # via kubernetes
|
||||
idna==2.8
|
||||
ioloop==0.1a0
|
||||
ipaddress==1.0.22
|
||||
jaraco.functools==2.0 # via tempora
|
||||
jinja2==2.10.1
|
||||
jmespath==0.9.4 # via boto3, botocore
|
||||
jsondiff==1.1.1 # via moto
|
||||
|
@ -36,6 +47,9 @@ jsonpickle==1.1 # via aws-xray-sdk
|
|||
jsonschema==2.6.0
|
||||
keyring==5.7.1
|
||||
kubernetes==3.0.0
|
||||
libnacl==1.6.1
|
||||
lxml==4.3.0
|
||||
mako==1.0.7
|
||||
markupsafe==1.1.1
|
||||
mock==2.0.0 ; python_version < "3.6"
|
||||
more-itertools==5.0.0
|
||||
|
@ -46,14 +60,17 @@ patch==1.16
|
|||
pathlib2==2.3.3 # via pytest
|
||||
pbr==5.1.3 # via mock
|
||||
pluggy==0.9.0 # via pytest
|
||||
portend==2.4 # via cherrypy
|
||||
psutil==5.6.1
|
||||
py==1.8.0 # via pytest
|
||||
pyaml==19.4.1 # via moto
|
||||
pyasn1-modules==0.2.4 # via google-auth
|
||||
pyasn1==0.4.5 # via pyasn1-modules, rsa
|
||||
pycparser==2.19 # via cffi
|
||||
pyasn1==0.4.5
|
||||
pycparser==2.19
|
||||
pycryptodome==3.8.1 # via python-jose
|
||||
pycryptodomex==3.8.1 ; sys_platform == "win32"
|
||||
pycurl==7.43.0.2
|
||||
pymysql==0.9.3
|
||||
pyopenssl==19.0.0
|
||||
pytest-cov==2.6.1
|
||||
pytest-helpers-namespace==2019.1.8
|
||||
|
@ -62,13 +79,14 @@ pytest-salt==2018.12.8
|
|||
pytest-tempdir==2018.8.11
|
||||
pytest-timeout==1.3.3
|
||||
pytest==4.4.1
|
||||
python-dateutil==2.8.0 # via botocore, kubernetes, moto
|
||||
python-dateutil==2.8.0
|
||||
python-etcd==0.4.5
|
||||
python-gnupg==0.4.4
|
||||
python-jose==2.0.2 # via moto
|
||||
pytz==2019.1 # via moto
|
||||
pythonnet==2.3.0
|
||||
pytz==2019.1 # via moto, tempora
|
||||
pyvmomi==6.7.1.2018.12
|
||||
pywin32==223
|
||||
pywin32==224
|
||||
pyyaml==3.13
|
||||
pyzmq==18.0.1 ; python_version != "3.4"
|
||||
requests==2.21.0
|
||||
|
@ -79,14 +97,20 @@ s3transfer==0.2.0 # via boto3
|
|||
salttesting==2017.6.1
|
||||
sed==0.3.1
|
||||
setproctitle==1.1.10
|
||||
six==1.12.0 # via cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, websocket-client
|
||||
singledispatch==3.4.0.3
|
||||
six==1.12.0 # via cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, kubernetes, mock, more-itertools, moto, pathlib2, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, singledispatch, tempora, websocket-client
|
||||
smmap2==2.0.5 # via gitdb2
|
||||
smmap==0.9.0
|
||||
strict-rfc3339==0.7
|
||||
tempora==1.14.1 # via portend
|
||||
timelib==0.2.4
|
||||
tornado==4.5.3 ; python_version >= "3.4"
|
||||
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests
|
||||
virtualenv==16.4.3
|
||||
websocket-client==0.40.0 # via docker, kubernetes
|
||||
werkzeug==0.15.2 # via moto
|
||||
wheel==0.33.4
|
||||
wmi==1.4.9
|
||||
wrapt==1.11.1 # via aws-xray-sdk
|
||||
xmltodict==0.12.0 # via moto
|
||||
zc.lockfile==1.4 # via cherrypy
|
||||
|
|
|
@ -91,22 +91,25 @@ azure==4.0.0
|
|||
certifi==2019.3.9 # via msrest, requests
|
||||
cffi==1.12.2 # via azure-datalake-store, cryptography
|
||||
chardet==3.0.4 # via requests
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm
|
||||
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm, smbprotocol
|
||||
idna==2.8 # via requests
|
||||
isodate==0.6.0 # via msrest
|
||||
msrest==0.6.6 # via azure-applicationinsights, azure-eventgrid, azure-keyvault, azure-loganalytics, azure-mgmt-cdn, azure-mgmt-compute, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-dns, azure-mgmt-eventhub, azure-mgmt-keyvault, azure-mgmt-media, azure-mgmt-network, azure-mgmt-rdbms, azure-mgmt-resource, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-servicefabric, msrestazure
|
||||
msrestazure==0.6.0 # via azure-batch, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
|
||||
netaddr==0.7.19
|
||||
ntlm-auth==1.3.0 # via requests-ntlm
|
||||
ntlm-auth==1.3.0 # via requests-ntlm, smbprotocol
|
||||
oauthlib==3.0.1 # via requests-oauthlib
|
||||
profitbricks==4.1.3
|
||||
pyasn1==0.4.5 # via smbprotocol
|
||||
pycparser==2.19 # via cffi
|
||||
pyjwt==1.7.1 # via adal
|
||||
pypsexec==0.1.0
|
||||
python-dateutil==2.8.0 # via adal, azure-cosmosdb-table, azure-storage-common
|
||||
pywinrm==0.3.0
|
||||
requests-ntlm==1.1.0 # via pywinrm
|
||||
requests-oauthlib==1.2.0 # via msrest
|
||||
requests==2.21.0 # via adal, azure-cosmosdb-table, azure-datalake-store, azure-keyvault, azure-servicebus, azure-servicemanagement-legacy, azure-storage-common, msrest, profitbricks, pywinrm, requests-ntlm, requests-oauthlib
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, python-dateutil, pywinrm
|
||||
six==1.12.0 # via cryptography, isodate, profitbricks, pypsexec, python-dateutil, pywinrm, smbprotocol
|
||||
smbprotocol==0.1.1 # via pypsexec
|
||||
urllib3==1.24.2 # via requests
|
||||
xmltodict==0.12.0 # via pywinrm
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue