Exemplo n.º 1
0
class Memory(EtcdObj):
    """A table of the memory, lazily updated

    """
    __name__ = 'nodes/%s/Memory'

    node_id = fields.StrField("node_id")
    total_size = fields.StrField("total_size")
    total_swap = fields.StrField("total_swap")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(Memory, self).render()
Exemplo n.º 2
0
class Node(EtcdObj):
    """A table of the Os, lazily updated

    """
    __name__ = 'nodes/%s/Node'

    node_id = fields.StrField("node_id")
    fqdn = fields.StrField("fqdn")
    status = fields.StrField("status")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(Node, self).render()
Exemplo n.º 3
0
class TendrlContext(EtcdObj):
    """A table of the tendrl context, lazily updated

    """
    __name__ = 'clusters/%s/Tendrl_context'

    sds_version = fields.StrField("sds_version")
    sds_name = fields.StrField("sds_name")
    cluster_id = fields.StrField("cluster_id")

    def render(self):
        self.__name__ = self.__name__ % self.cluster_id
        return super(TendrlContext, self).render()
Exemplo n.º 4
0
class TendrlDefinitions(EtcdObj):
    """A table of the Os, lazily updated

    """
    # TODO(rohan) add the definitions in etcd at startup
    __name__ = 'clusters/%s/definitions'

    data = fields.StrField("data")
    cluster_id = fields.StrField("cluster_id")

    def render(self):
        self.__name__ = self.__name__ % self.cluster_id
        return super(TendrlDefinitions, self).render()
Exemplo n.º 5
0
class NodeContext(EtcdObj):
    """A table of the node context, lazily updated

    """
    __name__ = 'nodes/%s/Node_context'

    node_id = fields.StrField("node_id")
    machine_id = fields.StrField("machine_id")
    fqdn = fields.StrField("fqdn")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(NodeContext, self).render()
Exemplo n.º 6
0
class Service(EtcdObj):
    """A table of the service, lazily updated

    """
    __name__ = 'nodes/%s/Services/%s'

    node_id = fields.StrField("node_id")
    exists = fields.StrField("exists")
    running = fields.StrField("running")
    service = fields.StrField("service")

    def render(self):
        self.__name__ = self.__name__ % (self.node_id, self.service)
        return super(Service, self).render()
Exemplo n.º 7
0
class Platform(EtcdObj):
    """A table of the Platform, lazily updated

    """
    __name__ = 'nodes/%s/Platform/'

    node_id = fields.StrField("node_id")
    os = fields.StrField("os")
    os_version = fields.StrField("os_version")
    kernel_version = fields.StrField("kernel_version")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(Platform, self).render()
Exemplo n.º 8
0
class Os(EtcdObj):
    """A table of the Os, lazily updated

    """
    __name__ = 'nodes/%s/Os/'

    node_id = fields.StrField("node_id")
    os = fields.StrField("os")
    os_version = fields.StrField("os_version")
    kernel_version = fields.StrField("kernel_version")
    selinux_mode = fields.StrField("selinux_mode")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(Os, self).render()
Exemplo n.º 9
0
class TendrlDefinitions(EtcdObj):
    """A table of the Os, lazily updated

    """
    # TODO(rohan) add the definitions in etcd at startup
    __name__ = '/tendrl_definitions_node-agent'

    data = fields.StrField("data")
Exemplo n.º 10
0
class Service(EtcdObj):
    """A table of the ceph services seen by ServerMonitor, usually

    each one is associated with a Server, lazily updated.

    """
    __name__ = 'clusters/ceph/%s/services/%s/%s/%s'

    fsid = fields.StrField("fsid")
    service_type = fields.StrField("service_type")
    # mon name or OSD id (as string)
    service_id = fields.StrField("service_id")
    # Whether the service process is running
    running = fields.StrField("running")
    # Any status metadata (mon_status) reported, as json string
    status = fields.StrField("status")

    # Server uuid
    server_uuid = fields.StrField("server_uuid")
    server_fqdn = fields.StrField("server_fqdn")

    def render(self):
        self.__name__ = self.__name__ % (self.fsid, self.server_fqdn,
                                         self.service_type, self.service_id)
        return super(Service, self).render()
Exemplo n.º 11
0
class Event(EtcdObj):
    """Events generated by the ceph-integration Eventer.

    """
    __name__ = 'clusters/%s/events/%s'

    id = fields.StrField("uuid")

    # Time at which event was synthesized by Eventer
    when = fields.DateTimeField("when", "%Y-%m-%dT%H:%M:%S%Z")

    severity = fields.IntField("severity")

    # Human readable message
    message = fields.StrField("message")

    # Optionally associated with a cluster
    fsid = fields.StrField("fsid")
    # Optionally associated with a server
    fqdn = fields.StrField("fqdn")
    # Optionally associated with a service type ('osd', 'mon', 'mds') (FSID
    # must be set)
    service_type = fields.StrField("service_type")
    # Optionally associate with a particular service (service_type must be set)
    service_id = fields.StrField("service_id")

    def render(self):
        self.__name__ = self.__name__ % (self.fsid, self.id)
        return super(Event, self).render()
Exemplo n.º 12
0
class Cpu(EtcdObj):
    """A table of the cpu, lazily updated

    """
    __name__ = 'nodes/%s/Cpu'

    node_id = fields.StrField("node_id")
    model = fields.StrField("model")
    vendor_id = fields.StrField("vendor_id")
    model_name = fields.StrField("model_name")
    architecture = fields.StrField("architecture")
    cores_per_socket = fields.StrField("cores_per_socket")
    cpu_op_mode = fields.StrField("cpu_op_mode")
    cpu_family = fields.StrField("cpu_family")
    cpu_count = fields.StrField("cpu_count")

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(Cpu, self).render()
Exemplo n.º 13
0
class NodeContext(EtcdObj):
    """A table of the node context, lazily updated

    """
    __name__ = 'nodes/%s/Node_context'

    node_id = fields.StrField("node_id")
    machine_id = fields.StrField("machine_id")
    fqdn = fields.StrField("fqdn")
    tags = fields.StrField("tags")
    cluster_id = fields.StrField("cluster_id")
    sds_pkg_name = fields.StrField("sds_pkg_name")
    sds_pkg_version = fields.StrField("sds_pkg_version")
    detected_cluster_id = fields.StrField("detected_cluster_id")
    cluster_attrs = fields.DictField("cluster_attrs", {'str': 'str'})

    def render(self):
        self.__name__ = self.__name__ % self.node_id
        return super(NodeContext, self).render()
Exemplo n.º 14
0
class SyncObject(EtcdObj):
    """A table for storing a FIFO of ClusterMonitor 'sync objects', i.e.

    cluster maps.

    """
    __name__ = 'clusters/%s/maps/%s'

    fsid = fields.StrField("fsid")
    cluster_name = fields.StrField("cluster_name")
    sync_type = fields.StrField("sync_type")
    version = fields.StrField("version")
    when = fields.StrField("when")
    data = fields.StrField("data")
    updated = fields.StrField("updated")
    cluster_id = fields.StrField("cluster_id")

    def render(self):
        self.__name__ = self.__name__ % (self.cluster_id, self.sync_type)
        return super(SyncObject, self).render()
Exemplo n.º 15
0
class Server(EtcdObj):
    """A table of the servers seen by ServerMonitor, lazily updated

    """
    __name__ = 'clusters/%s/servers/%s'

    fsid = fields.StrField("fsid")
    # use fqdn as unique identifier
    fqdn = fields.StrField("fqdn")
    hostname = fields.StrField("hostname")
    managed = fields.StrField("managed")
    last_contact = fields.StrField("last_contact")
    boot_time = fields.StrField("boot_time")
    ceph_version = fields.StrField("ceph_version")

    def render(self):
        self.__name__ = self.__name__ % (self.fsid, self.fqdn)
        return super(Server, self).render()
Exemplo n.º 16
0
class Pool(EtcdObj):
    """A table for storing a FIFO of ClusterMonitor 'sync objects', i.e.

    cluster maps.

    """
    __name__ = 'clusters/%s/Pools/%s'

    updated = fields.StrField("updated")
    cluster_id = fields.StrField("cluster_id")
    pool_id = fields.StrField("pool_id")
    poolname = fields.StrField("poolname")
    pg_num = fields.StrField("pg_num")
    min_size = fields.StrField("min_size")
    used = fields.IntField("used")
    percent_used = fields.IntField("percent_used")

    def render(self):
        self.__name__ = self.__name__ % (self.cluster_id, self.pool_id)
        return super(Pool, self).render()