Awight has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/401780 )
Change subject: Check out both ores and revscoring as editable modules ...................................................................... Check out both ores and revscoring as editable modules Also, install ores[redis] dependencies in a way that hides the details from puppet. It seems that we no longer need the manual installation of revscoring dependencies. This went away as mysteriously as it began. Bug: T181850 Change-Id: Ifcaa471006a90b8e76118fbb4e91523656ae740d --- M puppet/modules/ores/manifests/init.pp M puppet/modules/ores/templates/systemd/ores-celery.erb M puppet/modules/ores/templates/systemd/ores-wsgi.erb M puppet/modules/role/manifests/ores.pp 4 files changed, 50 insertions(+), 24 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant refs/changes/80/401780/1 diff --git a/puppet/modules/ores/manifests/init.pp b/puppet/modules/ores/manifests/init.pp index 089d08d..0e2c053 100644 --- a/puppet/modules/ores/manifests/init.pp +++ b/puppet/modules/ores/manifests/init.pp @@ -26,47 +26,75 @@ # revscoring require_package('python3-dev', 'g++', 'gfortran', 'liblapack-dev', 'libopenblas-dev', 'libenchant-dev') + file { $deploy_dir: + ensure => directory, + } + # ORES (in a venv as it needs Python 3) - virtualenv::environment { $deploy_dir: + $venv_dir = "${deploy_dir}/venv" + virtualenv::environment { $venv_dir: ensure => present, owner => $::share_owner, group => $::share_group, python => 'python3', - require => Package['python3-dev', 'g++', 'gfortran', 'liblapack-dev', 'libopenblas-dev', 'libenchant-dev'], + require => [ + Package['python3-dev', 'g++', 'gfortran', 'liblapack-dev', 'libopenblas-dev', 'libenchant-dev'], + File[$deploy_dir], + ], } - virtualenv::package { 'ores': - package => 'git+https://github.com/wiki-ai/ores.git#egg=ores', - path => $deploy_dir, + + $sources_dir = "${deploy_dir}/src" + file { $sources_dir: + ensure => directory, + } + git::clone { 'revscoring': + directory => "${sources_dir}/revscoring", + remote => 'https://github.com/wiki-ai/revscoring', + require => File[$sources_dir], + } + $ores_root = "${sources_dir}/ores" + git::clone { 'ores': + directory => $ores_root, + remote => 'https://github.com/wiki-ai/ores', + require => File[$sources_dir], + } + + virtualenv::package { 'revscoring': + package => "${sources_dir}/revscoring", + path => $venv_dir, editable => true, + require => Git::Clone['revscoring'], } - #FIXME this should happen as part of normal dependency management but for some reason it doesn't - # pylru probably needs to be fixed in the revscoring pakcage, redis in ores - exec { 'pip_install_revscoring_dependencies_hack': - command => "curl https://raw.githubusercontent.com/wiki-ai/revscoring/master/requirements.txt | ${deploy_dir}/bin/pip install pylru redis -r /dev/stdin", - cwd => $deploy_dir, - subscribe => Virtualenv::Package['ores'], - refreshonly => true, + + virtualenv::package { 'ores': + # Tricky syntax to get pip to install ores with the extra "redis" + # dependencies specified in setup.py + package => "${ores_root}[redis]", + path => $venv_dir, + editable => true, + require => [ + Virtualenv::Package['revscoring'], + Git::Clone['ores'], + ], } - $repo_dir = "${deploy_dir}/src/ores" apache::reverse_proxy { 'ores': port => $port, } - $cfg_file = "${repo_dir}/config/999-vagrant.yaml" + $cfg_file = "${ores_root}/config/999-vagrant.yaml" file { $cfg_file: ensure => present, content => template('ores/ores.yaml.erb'), - require => Virtualenv::Package['ores'], + require => Git::Clone['ores'], } systemd::service { 'ores-wsgi': ensure => present, service_params => { require => [ - VirtualEnv::Package['ores'], + Virtualenv::Package['ores'], Class['mediawiki::ready_service'], - Exec['pip_install_revscoring_dependencies_hack'], Apache::Site['ores'], ], subscribe => [ @@ -78,9 +106,8 @@ ensure => present, service_params => { require => [ - VirtualEnv::Package['ores'], + Virtualenv::Package['ores'], Class['mediawiki::ready_service'], - Exec['pip_install_revscoring_dependencies_hack'], Apache::Site['ores'], ], subscribe => [ diff --git a/puppet/modules/ores/templates/systemd/ores-celery.erb b/puppet/modules/ores/templates/systemd/ores-celery.erb index ae46a7c..7c51e06 100644 --- a/puppet/modules/ores/templates/systemd/ores-celery.erb +++ b/puppet/modules/ores/templates/systemd/ores-celery.erb @@ -11,8 +11,8 @@ User=www-data Group=www-data SyslogIdentifier=ores-celery -WorkingDirectory=<%= @repo_dir %> -ExecStart=<%= @deploy_dir %>/bin/ores applications.celery +WorkingDirectory=<%= @ores_root %> +ExecStart=<%= @venv_dir %>/bin/ores applications.celery Restart=always [Install] diff --git a/puppet/modules/ores/templates/systemd/ores-wsgi.erb b/puppet/modules/ores/templates/systemd/ores-wsgi.erb index ab46d23..4503085 100644 --- a/puppet/modules/ores/templates/systemd/ores-wsgi.erb +++ b/puppet/modules/ores/templates/systemd/ores-wsgi.erb @@ -11,8 +11,8 @@ User=www-data Group=www-data SyslogIdentifier=ores-wsgi -WorkingDirectory=<%= @repo_dir %> -ExecStart=<%= @deploy_dir %>/bin/ores applications.wsgi --port=<%= @port %> --processes=1 +WorkingDirectory=<%= @ores_root %> +ExecStart=<%= @venv_dir %>/bin/ores applications.wsgi --port=<%= @port %> --processes=1 Restart=always [Install] diff --git a/puppet/modules/role/manifests/ores.pp b/puppet/modules/role/manifests/ores.pp index 338a8a2..ca7d059 100644 --- a/puppet/modules/role/manifests/ores.pp +++ b/puppet/modules/role/manifests/ores.pp @@ -10,7 +10,6 @@ mediawiki::extension { 'ORES': needs_update => true, settings => { - # Use the staging server until production supports 'damaging' wgOresBaseUrl => 'https://ores.wikimedia.org/', # Point at some fake data with flat probability distribution. -- To view, visit https://gerrit.wikimedia.org/r/401780 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifcaa471006a90b8e76118fbb4e91523656ae740d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vagrant Gerrit-Branch: stretch-migration Gerrit-Owner: Awight <awi...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits