コード例 #1
0
ファイル: servers.py プロジェクト: navidshaikh/ceph_bridge
class Service(EtcdObj):
    """A table of the ceph services seen by ServerMonitor, usually

    each one is associated with a Server, lazily updated.

    """
    __name__ = 'raw/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()
コード例 #2
0
ファイル: example.py プロジェクト: ashcrow/etcdobj
class Example(EtcdObj):
    """
    An example object with a few fields. Note that it must subclass EtcdObj.
    """

    __name__ = 'example'  # The parent key
    # Fields all take a name that will be used as their key
    anint = fields.IntField('anint')
    astr = fields.StrField('astr')
    adict = fields.DictField('adict')
コード例 #3
0
class Event(EtcdObj):
    """Events generated by the ceph_bridge Eventer.

    """
    __name__ = 'raw/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()
コード例 #4
0
ファイル: servers.py プロジェクト: navidshaikh/ceph_bridge
class Server(EtcdObj):
    """A table of the servers seen by ServerMonitor, lazily updated

    """
    __name__ = 'raw/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()
コード例 #5
0
class SyncObject(EtcdObj):
    """A table for storing a FIFO of ClusterMonitor 'sync objects', i.e.

    cluster maps.

    """
    __name__ = 'raw/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()
コード例 #6
0
 def setUp(self):
     """
     Executes before each test.
     """
     self.instance = fields.StrField('test')