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")
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()
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()
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()
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()
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()
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()
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()