Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: modules/discourse/manifests/sitesetting.pp

Issue 4533129582739456: Issue 1389 - Discourse: Don`t run queries for site settings if the correct value is already set (Closed)
Patch Set: Created Sept. 17, 2014, 6:34 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: modules/discourse/manifests/sitesetting.pp
===================================================================
--- a/modules/discourse/manifests/sitesetting.pp
+++ b/modules/discourse/manifests/sitesetting.pp
@@ -17,20 +17,22 @@ define discourse::sitesetting(
# This is apparently how you do a conditional INSERT in PostgreSQL - sorry
$update_sql = "UPDATE site_settings SET value = '$escaped_value', data_type = $escaped_type WHERE name = '$escaped_setting' RETURNING 1"
$columns = "name, data_type, value, created_at, updated_at"
$values = "SELECT '$escaped_setting', $escaped_type, '$escaped_value', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP"
postgresql_psql {"WITH upd AS ($update_sql) INSERT INTO site_settings ($columns) $values WHERE NOT EXISTS (SELECT * FROM upd)":
db => 'discourse',
psql_user => 'discourse',
- notify => Service['discourse']
+ notify => Service['discourse'],
+ unless => "SELECT 1 FROM site_settings WHERE name = '$escaped_setting' AND value = '$escaped_value' AND data_type = $escaped_type",
}
}
absent: {
postgresql_psql {"DELETE FROM site_settings WHERE name = '$escaped_setting'":
db => 'discourse',
psql_user => 'discourse',
- notify => Service['discourse']
+ notify => Service['discourse'],
+ unless => "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM site_settings WHERE name = '$escaped_setting')",
}
}
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld