{"id":656,"date":"2015-02-28T03:28:46","date_gmt":"2015-02-28T03:28:46","guid":{"rendered":"http:\/\/www.selinuxplus.com\/?p=656"},"modified":"2015-02-28T03:28:46","modified_gmt":"2015-02-28T03:28:46","slug":"%e5%88%a9%e7%94%a8ceph%e7%9a%84rados-class-%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%ef%bc%88python%ef%bc%89","status":"publish","type":"post","link":"http:\/\/www.selinuxplus.com\/?p=656","title":{"rendered":"\u5229\u7528ceph\u7684Rados class \u8fdb\u884c\u64cd\u4f5c\uff08python\uff09"},"content":{"rendered":"<p> \u5229\u7528ceph\u7684python API\u63a5\u53e3\u505aceph\u7b80\u5355\u64cd\u4f5c<\/p>\n<pre class=\"lang:default decode:true \" >class radosObj:\r\n    instance=None\r\n    cluster=None\r\n    def __init__(self):\r\n        self.conf=\"\/etc\/ceph\/ceph.conf\"\r\n        self.keyring=\"\/etc\/ceph\/ceph.keyring\"\r\n        self.cephcmd=\"\/usr\/bin\/ceph\"\r\n        self.cluster=None\r\n    @classmethod\r\n    def Inst(cls):\r\n        if cls.instance is None:\r\n            cls.instance = radosObj()\r\n            cls.instance.connect()\r\n        return cls.instance\r\n\r\n    def connect(self):\r\n        if self.cluster is None:\r\n            self.cluster=rados.Rados(conffile=self.conf)\r\n            self.cluster.connect(timeout=5)\r\n        return self.cluster\r\n\r\n    def get_fsid(self):\r\n        return self.cluster.get_fsid()\r\n\r\n    def get_cluster_stats(self):\r\n        result={}\r\n        result = self.cluster.get_cluster_stats()\r\n        return result\r\n   \r\n    def get_list_pools(self):\r\n        \r\n        result={}\r\n        result['value'] = self.cluster.list_pools()\r\n        return result\r\n   \r\n    def delete_pool(self,poolname):\r\n        value=self.cluster.delete_pool(poolname)\r\n        return value\r\n    def create_pool(self,poolname):\r\n        value=self.cluster.create_pool(poolname)\r\n        return value\r\n    def isexists(self,poolname):\r\n        value=self.cluster.pool_exists(poolname)\r\n        return value\r\n<\/pre>\n<p>\u6d4b\u8bd5\u7a0b\u5e8f<\/p>\n<pre class=\"lang:default decode:true \" >print radosObj.Inst().get_fsid() \r\nprint radosObj.Inst().get_cluster_stats() \r\npools= radosObj.Inst().get_list_pools() \r\nfor pool in pools['value']:\r\n    print pool<\/pre>\n<p>\u7ed3\u679c<\/p>\n<pre class=\"lang:default decode:true \" >[root@ceph01 ~]# python ceph_common.py \r\ndbb4bf43-7b1d-4641-b0ce-2d667d02b3fe\r\n{'kb': 9424876L, 'num_objects': 0L, 'kb_avail': 9390964L, 'kb_used': 33912L}\r\nrbd<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5229\u7528ceph\u7684python API\u63a5\u53e3\u505aceph\u7b80&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[84,83],"tags":[180,151],"_links":{"self":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/656"}],"collection":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=656"}],"version-history":[{"count":1,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions"}],"predecessor-version":[{"id":657,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions\/657"}],"wp:attachment":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=656"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}