diff --git a/src/lib/charm/openstack/mysql_router.py b/src/lib/charm/openstack/mysql_router.py index 71583b3..19e0678 100644 --- a/src/lib/charm/openstack/mysql_router.py +++ b/src/lib/charm/openstack/mysql_router.py @@ -66,6 +66,11 @@ class MySQLRouterCharm(charms_openstack.charm.OpenStackCharm): "/etc/systemd/system", "{}.service".format(name)) + logrotate_file = os.path.join( + "/etc/logrotate.d", + "{}".format(name) + ) + services = [name] restart_map = { "/var/lib/mysql/{}/mysqlrouter.conf".format(name): services @@ -301,6 +306,19 @@ class MySQLRouterCharm(charms_openstack.charm.OpenStackCharm): cmd = ["systemctl", "enable", self.name] subprocess.check_output(cmd, stderr=subprocess.STDOUT) + # Logrotate File + ch_core.templating.render( + source="logrotate", + template_loader=os_templating.get_loader( + "templates/", self.release), + target=self.logrotate_file, + context={ + "owner": self.mysqlrouter_user, + "group": self.mysqlrouter_group + }, + perms=0o644, + ) + def get_db_helper(self): """Get an instance of the MySQLDB8Helper class. diff --git a/src/templates/logrotate b/src/templates/logrotate new file mode 100644 index 0000000..66de91c --- /dev/null +++ b/src/templates/logrotate @@ -0,0 +1,9 @@ +/var/lib/mysql/*/log/*.log { + rotate 9 + notifempty + size 10M + create 0644 {{ owner }} {{ group }} + postrotate + kill -HUP $(pidof mysqlrouter) + endscript +} diff --git a/unit_tests/test_lib_charm_openstack_mysql_router.py b/unit_tests/test_lib_charm_openstack_mysql_router.py index a06daa8..2390f42 100644 --- a/unit_tests/test_lib_charm_openstack_mysql_router.py +++ b/unit_tests/test_lib_charm_openstack_mysql_router.py @@ -268,7 +268,7 @@ class TestMySQLRouterCharm(test_utils.PatchHelper): self.mkdir.assert_called_once_with( "/var/lib/mysql", group="mysql", owner="mysql", perms=0o755) - self.render.assert_called_once() + self.assertEqual(self.render.call_count, 2) self.subprocess.check_output.assert_called_once_with( ['systemctl', 'enable', _name], stderr=self.subprocess.STDOUT)