Ottomata has uploaded a new change for review. https://gerrit.wikimedia.org/r/109942
Change subject: Removing deprecated user_metrics module ...................................................................... Removing deprecated user_metrics module Change-Id: Iebe5dcddba38b812ef9e9c846d19c544d08eda6d --- M puppet/manifests/roles.pp D puppet/modules/user_metrics/README D puppet/modules/user_metrics/manifests/init.pp D puppet/modules/user_metrics/templates/settings.py.erb D puppet/modules/user_metrics/templates/virtual_host.erb 5 files changed, 0 insertions(+), 232 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant refs/changes/42/109942/1 diff --git a/puppet/manifests/roles.pp b/puppet/manifests/roles.pp index fc42e2c..dd5b2c2 100644 --- a/puppet/manifests/roles.pp +++ b/puppet/manifests/roles.pp @@ -247,15 +247,6 @@ class { '::browsertests': } } -# == Class: role::umapi -# Configures this machine to run the User Metrics API (UMAPI), a web -# interface for obtaining aggregate measurements of user activity on -# MediaWiki sites. -class role::umapi { - include role::mediawiki - - class { '::user_metrics': } -} # == Class: role::uploadwizard # Configures a MediaWiki instance with UploadWizard, a JavaScript-driven diff --git a/puppet/modules/user_metrics/README b/puppet/modules/user_metrics/README deleted file mode 100644 index 96bfec8..0000000 --- a/puppet/modules/user_metrics/README +++ /dev/null @@ -1,17 +0,0 @@ -User Metrics API Puppet Module ------------------------------- - -This Puppet module configures a development instance of the User Metrics API. -See <https://metrics.wikimedia.org> for more information about the User Metrics -API. - -This module is not enabled by default. To enable it, uncomment the following -line in puppet/manifests/extras.pp: - - # class { 'user_metrics': } - -Then run 'vagrant provision'. That should set up a User Metrics API WSGI app -using the Flask framework and Apache as HTTP server. It will be accessible at -http://10.11.12.13:8121. You may wish to forward this port so that it is -accessible from the host environment. See the examples in the file -'Vagrantfile' in the repository root directory. diff --git a/puppet/modules/user_metrics/manifests/init.pp b/puppet/modules/user_metrics/manifests/init.pp deleted file mode 100644 index 08c2077..0000000 --- a/puppet/modules/user_metrics/manifests/init.pp +++ /dev/null @@ -1,96 +0,0 @@ -# == Class: user_metrics -# -# Configures a development instance of the User Metrics API. -# See <https://metrics.wikimedia.org>. This module is not included by -# default. To use it, uncomment the following line in -# puppet/manifests/extras.pp and run 'vagrant provision': -# -# # class { 'user_metrics': } -# -# The site will be available at <http://10.11.12.13:8182>. You may wish -# to forward the port so that it is accessible from the host environment. -# See 'Vagrantfile' for detail. -# -class user_metrics { - require mysql - - $site_name = 'metrics.vagrant' - $user_metrics_path = '/vagrant/user_metrics' - $document_root = '/vagrant/user_metrics/user_metrics/api' - $metrics_user = 'vagrant' - - $secret_key = 'nonyabiznass' - - $user_metrics_db_user = 'root' - $user_metrics_db_pass = 'vagrant' - $user_metrics_db_host = '127.0.0.1' - $user_metrics_db_port = 3306 - $user_metrics_db_name = 'user_metrics' - - # connetions will be rendered into settings.py. - $mysql_connections = { - 'cohorts' => { - 'user' => $user_metrics_db_user, - 'passwd' => $user_metrics_db_pass, - 'host' => $user_metrics_db_host, - 'port' => $user_metrics_db_port, - 'db' => $user_metrics_db_name, - }, - 's1' => { - 'user' => $user_metrics_db_user, - 'passwd' => $user_metrics_db_pass, - 'host' => $user_metrics_db_host, - 'port' => $user_metrics_db_port, - 'db' => 'wiki', - } - } - - include ::apache - include ::apache::mods::wsgi - include ::apache::mods::alias - - package { [ 'python-flask', 'python-flask-login', 'python-mysqldb', 'python-numpy' ]: - ensure => 'installed', - } - - git::clone { 'analytics/user-metrics': - directory => $user_metrics_path, - require => Package['python-flask'], - } - - # create the user_metrics cohorts database - exec { 'create user metrics database': - command => "mysql -pvagrant -e \"CREATE DATABASE ${user_metrics_db_name};\" && mysql -pvagrant ${user_metrics_db_name} < ${user_metrics_path}/scripts/user_metrics.sql;", - unless => "mysql -pvagrant -e 'SHOW DATABASES' | grep -q ${user_metrics_db_name}", - user => 'root', - logoutput => true, - require => [ Git::Clone['analytics/user-metrics'], Service['mysql'] ] - } - - # Need settings.py to configure metrics-api python application - file { "${user_metrics_path}/user_metrics/config/settings.py": - content => template('user_metrics/settings.py.erb'), - require => Git::Clone['analytics/user-metrics'], - } - - # create default admin account - exec { 'create user metrics admin': - command => "python ${user_metrics_path}/scripts/create_account.py", - # Yes, this script loads via relative paths. Sigh... - cwd => "${user_metrics_path}/scripts", - unless => 'mysql -pvagrant user_metrics -e "select \'exists\' from api_user where user_name = \'admin\'" | grep -q exists', - require => [ Exec['create user metrics database'], File["${user_metrics_path}/user_metrics/config/settings.py"] ], - } - - # Seed the MediaWiki wiki database with data good for testing user_metrics API. - exec { 'seed mediawiki database': - command => "mysql -f -pvagrant wiki < ${user_metrics_path}/scripts/seed.sql;", - unless => 'mysql -pvagrant wiki -e "SELECT \'exists\' FROM page WHERE page_title = \'Hydriz\'" | grep -q exists', - require => [ Git::Clone['analytics/user-metrics'], Service['mysql'] ] - } - - apache::site { $site_name: - content => template('user_metrics/virtual_host.erb'), - require => [ Git::Clone['analytics/user-metrics'], Apache::Mod['wsgi', 'alias'] ], - } -} diff --git a/puppet/modules/user_metrics/templates/settings.py.erb b/puppet/modules/user_metrics/templates/settings.py.erb deleted file mode 100644 index 93b87a6..0000000 --- a/puppet/modules/user_metrics/templates/settings.py.erb +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Settings file for User Metrics API. -# This file is managed by Puppet. -# -from user_metrics.config import logging -from pkg_resources import WorkingSet , DistributionNotFound, VersionConflict -from os.path import exists -from urllib2 import urlopen -import json -import os - -# Get working set of Python modules -working_set = WorkingSet() - - -# Project settings -# ================ - -__instance_host__ = '<%= @site_name %>' -__instance_port__ = 5000 - -__project_home__ = '<%= @user_metrics_path %>' -__web_home__ = os.path.join(__project_home__, 'user_metrics/api/') -__data_file_dir__ = os.path.join(__project_home__, 'data/') - -__query_module__ = 'user_metrics.query.query_calls_sql' -__user_thread_max__ = 50 -__rev_thread_max__ = 20 -__time_series_thread_max__ = 6 - -__cohort_data_instance__ = 'cohorts' -__cohort_db__ = 'usertags' -__cohort_meta_db__ = 'usertags_meta' -__cohort_meta_instance__ = '<%= @user_metrics_db_name %>' - -__secret_key__ = '<%= @secret_key %>' - -try: - working_set.require('Flask-Login>=0.1.2') - __flask_login_exists__ = True - logging.debug(__name__ + ' :: Using module flask.ext.login...') -except (DistributionNotFound, VersionConflict): - __flask_login_exists__ = False - logging.debug(__name__ + ' :: Can\'t find module flask.ext.login...') - - -# Database connection settings -# ============================ - -connections = { -<% mysql_connections.keys.sort.each do |name| -%> - <%= "'#{name}'" %>: { -<% mysql_connections[name].keys.sort.each do |key| -%> - <%= "'#{key}'" %>: <%= (mysql_connections[name][key] =~ /^\d+$/) ? mysql_connections[name][key] : "'#{mysql_connections[name][key]}'" %>, -<% end # connection..each -%> - }, -<% end # mysql_connections..each -%> -} - -def get_project_host_map(usecache=True): - cache_name = 'project_host_map.json' - if not exists(cache_name) or not usecache: - cluster_url_fmt = 'http://noc.wikimedia.org/conf/s%d.dblist' - host_fmt = 's%d' - project_host_map = {} - for i in range(1,8): - host = host_fmt % i - url = cluster_url_fmt % i - projects = urlopen(url).read().splitlines() - for project in projects: - project_host_map[project] = host - json.dump(project_host_map, open(cache_name, 'w')) - else: - project_host_map = json.load(open(cache_name)) - return project_host_map - -PROJECT_DB_MAP = get_project_host_map() diff --git a/puppet/modules/user_metrics/templates/virtual_host.erb b/puppet/modules/user_metrics/templates/virtual_host.erb deleted file mode 100644 index 71b225e..0000000 --- a/puppet/modules/user_metrics/templates/virtual_host.erb +++ /dev/null @@ -1,32 +0,0 @@ -# Apache site for User Metrics API. -# This file is managed by Puppet. -# -<% -# ERb template variables: -# -# site_name -# document_root -# user_metrics_path -# metrics_user -# --%> - -Listen 8182 -<VirtualHost *:8182> - ServerName <%= @site_name %> - ServerAdmin http://www.mediawiki.org/wiki/Vagrant - - WSGIDaemonProcess api user=<%= @metrics_user %> group=www-data threads=5 python-path=<%= @user_metrics_path %> - WSGIScriptAlias / <%= @document_root %>/api.wsgi - - <Directory <%= document_root %>> - WSGIProcessGroup api - WSGIApplicationGroup %{GLOBAL} - - Options Indexes FollowSymLinks MultiViews - AllowOverride None - Order deny,allow - Allow from all - </Directory> -</VirtualHost> - -- To view, visit https://gerrit.wikimedia.org/r/109942 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iebe5dcddba38b812ef9e9c846d19c544d08eda6d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vagrant Gerrit-Branch: master Gerrit-Owner: Ottomata <o...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits