import collections import json from eventool import ssh_cmds from eventool import logger import xmltodict # from lxml import etree as xml_parser from xml.dom import minidom as xml_parser from eventool import parsers LOG = logger.getLogger(__name__) @parsers.cli_command("pcs", subparser="action") class PCSMgmt(ssh_cmds.tmp_cmd): def __init__(self, ssh): super(PCSMgmt, self).__init__(ssh) self._dict_xml = None self._cluster = None # self._haproxy_conf = None @property def cluster(self): self._cluster = self._cluster or self.status_xml() return self._cluster @parsers.cli_choice(parser="pcs", subparser="action") @ssh_cmds.command_decorator def status(self): """Returns full PCS status. """ cmd = "pcs status" return cmd, self._noop_parser
import functools import os from eventool import sshutils import yaml from eventool import logger LOG = logger.getLogger(__name__) CONF_PATH = os.environ.get("HOSTS_CONF", "/etc/eventool/hosts_conf.yaml") class Host(object): def __init__(self, address, user, alias=None, password=None, private_key=None, os=None): self.address = address self.host_roles = [] self.alias = alias or [] self.password = password self.private_key = private_key self.os = os self.user = user self._ssh = None def add_roles(self, *roles): self.host_roles.extend(roles) def __str__(self): return self.address def __repr__(self):