from bundlewrap.utils.dicts import merge_dict version = node.metadata.get('postgresql/version') directories = { '/var/lib/postgresql': { 'owner': 'postgres', 'group': 'postgres', 'needs': [ 'pkg_apt:postgresql', 'zfs_dataset:tank/postgresql', ], 'needed_by': [ 'svc_systemd:postgresql', ], } } files = { f"/etc/postgresql/{version}/main/conf.d/managed.conf": { 'content': '\n'.join( f'{key} = {value}' for key, value in sorted(node.metadata.get('postgresql/conf').items()) ) + '\n', 'owner': 'postgres', 'group': 'postgres', 'needed_by': [ 'svc_systemd:postgresql', ], 'triggers': [ 'svc_systemd:postgresql:restart', ], }, } svc_systemd['postgresql'] = { 'needs': [ 'pkg_apt:postgresql', ], } for user, config in node.metadata.get('postgresql/roles').items(): postgres_roles[user] = merge_dict(config, { 'needs': [ 'svc_systemd:postgresql', ], }) for database, config in node.metadata.get('postgresql/databases').items(): postgres_dbs[database] = merge_dict(config, { 'needs': [ 'svc_systemd:postgresql', ], })