Exemple #1
0
class SyncObject(EtcdObj):
    """A table for storing a FIFO of ClusterMonitor 'sync objects', i.e.

    cluster maps.

    """
    __name__ = 'clusters/gluster/%s/raw_map'

    data = fields.StrField("data")
    updated = fields.StrField("updated")
Exemple #2
0
class Peer(EtcdObj):
    """A table of the peers seen by the pull, lazily updated

    """
    __name__ = 'clusters/gluster/%s/peers/%s'

    state = fields.StrField("state")
    hostname = fields.StrField("hostname")
    peer_uuid = fields.StrField("peer_uuid")
    updated = fields.StrField("updated")

    def render(self):
        self.__name__ = self.__name__ % self.peer_uuid
        return super(Peer, self).render()
Exemple #3
0
class Volume(EtcdObj):
    """A table of the volumes seen by the pull.

    """
    __name__ = 'clusters/gluster/%s/volumes/%s'

    vol_id = fields.StrField("vol_id")
    vol_type = fields.StrField("vol_type")
    name = fields.StrField("name")
    status = fields.StrField("status")
    brick_count = fields.StrField("brick_count")

    def render(self):
        self.__name__ = self.__name__ % self.vol_id
        return super(Volume, self).render()
Exemple #4
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()
Exemple #5
0
class Event(EtcdObj):
    """Events generated by the ceph_bridge Eventer.

    """
    __name__ = 'clusters/ceph/%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()
Exemple #6
0
class Brick(EtcdObj):
    """A table of the volumes seen by the pull.

    """
    __name__ = 'clusters/gluster/%s/bricks/%s'

    vol_id = fields.StrField("vol_id")
    path = fields.StrField("path")
    hostname = fields.StrField("hostname")
    port = fields.StrField("port")
    status = fields.StrField("status")
    filesystem_type = fields.StrField("fs_type")
    mount_opts = fields.StrField("mount_opts")

    def render(self):
        self.__name__ = self.__name__ % (self.path.replace("/", "_"))
        return super(Brick, self).render()
Exemple #7
0
class Server(EtcdObj):
    """A table of the servers seen by ServerMonitor, lazily updated

    """
    __name__ = 'clusters/ceph/%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()
Exemple #8
0
class SyncObject(EtcdObj):
    """A table for storing a FIFO of ClusterMonitor 'sync objects', i.e.

    cluster maps.

    """
    __name__ = 'clusters/ceph/%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")

    def render(self):
        self.__name__ = self.__name__ % (self.fsid, self.sync_type)
        return super(SyncObject, self).render()