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