Merge ~ballot/influxdb-charm/+git/influxdb-charm:lp1947882 into influxdb-charm:master

Proposed by Benjamin Allot
Status: Merged
Approved by: Tom Haddon
Approved revision: 430dae51dd6f50ed9367940b616ab47c71779915
Merged at revision: 51e86798f2febe6e38c8e1350b52102e90d98eaa
Proposed branch: ~ballot/influxdb-charm/+git/influxdb-charm:lp1947882
Merge into: influxdb-charm:master
Diff against target: 67 lines (+19/-0)
3 files modified
files/influxdb_override.conf (+2/-0)
layer.yaml (+1/-0)
reactive/influxdb.py (+16/-0)
Reviewer Review Type Date Requested Status
Tom Haddon Approve
Canonical IS Reviewers Pending
Review via email: mp+410551@code.launchpad.net

Commit message

Add a systemd override directive to avoid timeout on start

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
Tom Haddon (mthaddon) :
review: Needs Fixing
Revision history for this message
Tom Haddon (mthaddon) wrote :

LGTM, thx

review: Approve
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 51e86798f2febe6e38c8e1350b52102e90d98eaa

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/files/influxdb_override.conf b/files/influxdb_override.conf
2new file mode 100644
3index 0000000..0543121
4--- /dev/null
5+++ b/files/influxdb_override.conf
6@@ -0,0 +1,2 @@
7+[Service]
8+TimeoutStartSec=30m
9diff --git a/layer.yaml b/layer.yaml
10index c68c892..103c49d 100644
11--- a/layer.yaml
12+++ b/layer.yaml
13@@ -3,6 +3,7 @@ includes:
14 - layer:basic
15 - layer:apt
16 - layer:nagios
17+ - layer:status
18 - interface:http
19 - interface:grafana-source
20 - interface:influxdb-api
21diff --git a/reactive/influxdb.py b/reactive/influxdb.py
22index c751ea8..eb12dfd 100644
23--- a/reactive/influxdb.py
24+++ b/reactive/influxdb.py
25@@ -1,6 +1,7 @@
26 import os
27 import re
28 import shutil
29+import subprocess
30 import yaml
31
32 from charmhelpers.contrib.charmsupport import nrpe
33@@ -9,6 +10,7 @@ from charmhelpers.core import host
34 from charmhelpers.core.templating import render
35 from charms.reactive import hook, set_flag, clear_flag, when, when_all, when_not
36 from charms import apt
37+from charms.layer import status
38
39 import influxdb
40
41@@ -19,6 +21,7 @@ CRONFILE = '/etc/cron.daily/influxdb-charm-backup'
42 CHECK_SRC = 'files/check_influxdb.py'
43 CHECK_DIR = '/usr/local/lib/nagios/plugins'
44 CHECK_CMD = CHECK_DIR + '/check_influxdb.py'
45+INFLUXDB_SERVICE = "influxdb.service"
46
47
48 @when('admin.available')
49@@ -146,6 +149,19 @@ def config_changed():
50 updated_config = apply_configs(f, conf)
51 host.write_file(target, updated_config.encode("utf-8"), perms=0o644)
52
53+ # Write the systemd override timeout for the start of the service
54+ if host.service_available(INFLUXDB_SERVICE):
55+ systemd_override_dir = "/etc/systemd/system/{0}.d/".format(INFLUXDB_SERVICE)
56+ host.mkdir(systemd_override_dir)
57+ systemd_override = os.path.join(systemd_override_dir, "override.conf")
58+ shutil.copy2("files/influxdb_override.conf", systemd_override)
59+ hookenv.log("Setting TimeoutStartSec override for influxdb service", hookenv.DEBUG)
60+ try:
61+ subprocess.check_call(["systemctl", "daemon-reload"])
62+ except (OSError, subprocess.CalledProcessError):
63+ hookenv.log("Cannot reload systemd", hookenv.ERROR)
64+ status.blocked("Cannot configure influxdb.service")
65+ hookenv.log("Restarting influxdb service", hookenv.INFO)
66 host.service_stop('influxdb')
67 host.service_start('influxdb')
68

Subscribers

People subscribed via source and target branches

to all changes: