14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'puppet/modules/role/manifests/echo.pp', line 14
class role::echo(
$shared_tracking_cluster,
$shared_tracking_db,
$echo_dir,
) {
require ::role::mediawiki
include ::role::betafeatures
include ::role::centralauth
include ::role::eventlogging
include ::role::svg
include ::role::langwikis
mysql::sql { 'create echo_unread_wikis':
sql => "USE ${shared_tracking_db}; SOURCE ${echo_dir}/sql/mysql/tables-sharedtracking-generated.sql;",
unless => "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${shared_tracking_db}' AND TABLE_NAME = 'echo_unread_wikis'",
require => [
Mysql::Db[$shared_tracking_db],
Mediawiki::Extension['Echo'],
],
notify => Mediawiki::Maintenance['backfill echo_unread_wikis'],
}
mysql::sql { 'create echo_push_topic':
sql => "USE ${shared_tracking_db}; SOURCE ${echo_dir}/sql/echo_push_topic.sql;",
unless => "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${shared_tracking_db}' AND TABLE_NAME = 'echo_push_topic'",
require => [
Mysql::Db[$shared_tracking_db],
Mediawiki::Extension['Echo'],
]
}
mysql::sql { 'create echo_push_provider':
sql => "USE ${shared_tracking_db}; SOURCE ${echo_dir}/sql/echo_push_provider.sql;",
unless => "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${shared_tracking_db}' AND TABLE_NAME = 'echo_push_provider'",
require => [
Mysql::Db[$shared_tracking_db],
Mediawiki::Extension['Echo'],
]
}
mysql::sql { 'create echo_push_subscription':
sql => "USE ${shared_tracking_db}; SOURCE ${echo_dir}/sql/echo_push_subscription.sql;",
unless => "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${shared_tracking_db}' AND TABLE_NAME = 'echo_push_subscription'",
require => [
Mysql::Db[$shared_tracking_db],
Mediawiki::Extension['Echo'],
]
}
mediawiki::maintenance { 'backfill echo_unread_wikis':
command => '/usr/local/bin/foreachwikiwithextension Echo extensions/Echo/maintenance/backfillUnreadWikis.php',
refreshonly => true,
}
mediawiki::extension { 'Echo':
needs_update => true,
settings => {
wgEchoCrossWikiNotifications => true,
wgEchoSharedTrackingCluster => $shared_tracking_cluster,
wgEchoSharedTrackingDB => $shared_tracking_db,
# For now, we don't use the extension cluster for
# wgEchoCluster, until we solve update.php.
wgEchoEnableEmailBatch => false,
wgAllowHTMLEmail => true,
wgEchoUseCrossWikiBetaFeature => false,
'wgDefaultUserOptions[\'echo-cross-wiki-notifications\']' => true,
'wgEchoConfig[\'eventlogging\'][\'Echo\'][\'enabled\']' => true,
'wgEchoConfig[\'eventlogging\'][\'EchoMail\'][\'enabled\']' => true,
'wgEchoConfig[\'eventlogging\'][\'EchoInteraction\'][\'enabled\']' => true,
},
}
mediawiki::extension { 'Thanks':
require => Mediawiki::Extension['Echo'],
}
$user_a = 'Selenium Echo user a'
$user_b = 'Selenium Echo user b'
mediawiki::user { [ $user_a, $user_b ]:
password => $::mediawiki::admin_pass,
}
role::centralauth::migrate_user { [ $user_a, $user_b ]: }
# CORS for cross-wiki notifications
mediawiki::settings { 'echo CORS':
values => template('role/echo/CORS.php.erb'),
}
}
|