1
0
Fork 0
ansible-systemd/plugins/modules/target.py

132 Zeilen
3.3 KiB
Python

2023-04-20 22:22:27 +00:00
#!/usr/bin/python3
import pathlib
from typing import List, Union
try:
2023-04-21 18:49:21 +00:00
from ansible_collections.sebastian.systemd.plugins.module_utils.generic import SYSTEMD_SERVICE_CONFIG, Types, systemdbool
2023-04-21 18:40:06 +00:00
from ansible_collections.sebastian.systemd.plugins.module_utils.module import SystemdUnitModule, installable
2023-04-20 22:22:27 +00:00
except ImportError:
2023-04-21 18:49:21 +00:00
from plugins.module_utils.generic import SYSTEMD_SERVICE_CONFIG, Types, systemdbool
2023-04-20 22:22:27 +00:00
from plugins.module_utils.module import SystemdUnitModule, installable
@installable
class Module(SystemdUnitModule):
"""Creates Target units"""
name = "target"
module_spec = dict(
argument_spec=dict(
2023-04-21 18:49:21 +00:00
description=Types.str(),
2023-04-20 22:22:27 +00:00
name=Types.str(required=True),
allow_isolate=Types.bool(default=False),
),
)
2023-04-21 18:52:00 +00:00
def prepare(self):
2023-04-21 19:11:24 +00:00
try:
self.unitfile = (SYSTEMD_SERVICE_CONFIG/ self.get("name")).with_stem(".target")
2023-04-21 19:14:30 +00:00
self.set("name", self.get("name"))
2023-04-21 19:11:24 +00:00
except KeyError:
self.set("params", self.params)
2023-04-21 18:56:16 +00:00
self.__unit = None
2023-04-21 18:52:00 +00:00
2023-04-21 18:49:21 +00:00
def header(self) -> str:
section = super().header()
section += "AllowIsolate={}".format(systemdbool(self.get("allow_isolate", False)))
return section
2023-04-20 22:22:27 +00:00
def unit(self) -> str:
if self.__unit is None:
self.__unit = "\n".join(
(
self.header(),
self.install(),
)
)
return self.__unit
DOCUMENTATION = """---
description:
- Creates Target units
module: target
options:
after:
default: []
description:
- list of units that this unit wants to be started after this unit
elements: str
required: false
type: list
allow_isolate:
default: false
required: false
type: bool
before:
default: []
description:
- list of units that this unit needs to be started before this unit.
elements: str
required: false
type: list
description:
required: true
type: str
documentation:
default: []
description:
- Paths where documentation can be found
elements: str
required: false
type: list
name:
required: true
type: str
partof:
default: []
description:
- list of units that this unit is part of.
- If the restart this unit does it too, but if this restarts it does not affect
the other units.
elements: str
required: false
type: list
required_by:
default: []
description:
- systemd units that require this mount
elements: str
required: false
type: list
requires:
default: []
description:
- list of units that this unit requires. If it fails or can't be started this
unit fails. without before/after this is started at the same time
elements: str
required: false
type: list
wanted_by:
default: []
description:
- systemd units that want the mount, but not explicitly require it. Commonly used
for target if not service explicitly require it.
elements: str
required: false
type: list
wants:
default: []
description:
- list of units that this unit wants. If it fails or can't be started it does
not affect this unit
elements: str
required: false
type: list
short_description: Creates Target units
"""
if __name__ == "__main__":
Module()()