From e8b89573fd2831f0536bf47c0710210b70ff7c3b Mon Sep 17 00:00:00 2001 From: Jeremy Parker Date: Thu, 18 Feb 2021 17:22:21 +1100 Subject: [PATCH 1/2] upgrade pip before installing --- manifests/install.pp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/manifests/install.pp b/manifests/install.pp index 5ed143e..087025b 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -113,6 +113,7 @@ system => true, } + $upgrade_pip_command = "${venv_dir}/bin/pip3 install --upgrade pip" if $install_dependencies_from_filesystem { $install_requirements_command = "${venv_dir}/bin/pip3 install -r requirements.txt --no-index --find-links ${python_dependency_path}" $install_local_requirements_command = "${venv_dir}/bin/pip3 install -r local_requirements.txt --no-index --find-links ${python_dependency_path}" @@ -129,7 +130,7 @@ extract_path => $install_root, creates => $software_directory_with_version, cleanup => true, - notify => Exec['install python requirements'], + notify => Exec['upgrade pip'], } exec { 'netbox permission': @@ -184,6 +185,16 @@ cwd => '/tmp', unless => "/usr/bin/grep '^[\\t ]*VIRTUAL_ENV=[\\\\'\\\"]*${venv_dir}[\\\"\\\\'][\\t ]*$' ${venv_dir}/bin/activate", } + ~>exec { 'upgrade pip': + cwd => $software_directory, + path => [ "${venv_dir}/bin", '/usr/bin', '/usr/sbin' ], + environment => ["VIRTUAL_ENV=${venv_dir}"], + provider => shell, + user => $user, + command => $upgrade_pip_command, + onlyif => "/usr/bin/grep '^[\\t ]*VIRTUAL_ENV=[\\\\'\\\"]*${venv_dir}[\\\"\\\\'][\\t ]*$' ${venv_dir}/bin/activate", + refreshonly => true, + } ~>exec { 'install python requirements': cwd => $software_directory, path => [ "${venv_dir}/bin", '/usr/bin', '/usr/sbin' ], From dcaffdbfe8014e00fbfebfe2bbf81fc8d8001b2f Mon Sep 17 00:00:00 2001 From: Jeremy Parker Date: Fri, 19 Feb 2021 15:09:40 +1100 Subject: [PATCH 2/2] combine requirements.txt and local_requirements.txt, avoids unwanted upgrades on requirements.txt --- manifests/install.pp | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/manifests/install.pp b/manifests/install.pp index 087025b..304e21a 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -115,11 +115,9 @@ $upgrade_pip_command = "${venv_dir}/bin/pip3 install --upgrade pip" if $install_dependencies_from_filesystem { - $install_requirements_command = "${venv_dir}/bin/pip3 install -r requirements.txt --no-index --find-links ${python_dependency_path}" - $install_local_requirements_command = "${venv_dir}/bin/pip3 install -r local_requirements.txt --no-index --find-links ${python_dependency_path}" + $install_requirements_command = "${venv_dir}/bin/pip3 install -r requirements.txt -r local_requirements.txt --no-index --find-links ${python_dependency_path}" } else { - $install_requirements_command = "${venv_dir}/bin/pip3 install -r requirements.txt" - $install_local_requirements_command = "${venv_dir}/bin/pip3 install -r local_requirements.txt" + $install_requirements_command = "${venv_dir}/bin/pip3 install -r requirements.txt -r local_requirements.txt" } archive { $local_tarball: @@ -155,7 +153,7 @@ file_line { 'napalm': path => "${software_directory}/local_requirements.txt", line => 'napalm', - notify => Exec['install local python requirements'], + notify => Exec['install python requirements'], require => File['local_requirements'] } } @@ -164,7 +162,7 @@ file_line { 'django_storages': path => "${software_directory}/local_requirements.txt", line => 'django-storages', - notify => Exec['install local python requirements'], + notify => Exec['install python requirements'], require => File['local_requirements'] } } @@ -173,7 +171,7 @@ file_line { 'ldap': path => "${software_directory}/local_requirements.txt", line => 'django-auth-ldap', - notify => Exec['install local python requirements'], + notify => Exec['install python requirements'], require => File['local_requirements'] } } @@ -205,14 +203,4 @@ onlyif => "/usr/bin/grep '^[\\t ]*VIRTUAL_ENV=[\\\\'\\\"]*${venv_dir}[\\\"\\\\'][\\t ]*$' ${venv_dir}/bin/activate", refreshonly => true, } - ~>exec { 'install local python requirements': - cwd => $software_directory, - path => [ "${venv_dir}/bin", '/usr/bin', '/usr/sbin' ], - environment => ["VIRTUAL_ENV=${venv_dir}"], - provider => shell, - user => $user, - command => $install_local_requirements_command, - onlyif => "/usr/bin/grep '^[\\t ]*VIRTUAL_ENV=[\\\\'\\\"]*${venv_dir}[\\\"\\\\'][\\t ]*$' ${venv_dir}/bin/activate", - refreshonly => true, - } }