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

Reply via email to