设为首页 收藏本站
查看: 820|回复: 0

[经验分享] ceph 对象存储 创建api

[复制链接]

尚未签到

发表于 2019-2-2 10:04:06 | 显示全部楼层 |阅读模式
# -*- coding:utf-8 -*-
import boto
import boto.s3.connection
import paramiko
class Accountinfo():
"""
用法详见 http://docs.ceph.org.cn/man/8/radosgw-admin/
"""
def __init__(self):
self.hostname = '192.168.44.70'
self.port = 22
self.username = 'root'
self.passwd = '123456'
def new_connect(self):
try:
paramiko.util.log_to_file('paramiko.log')
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.44.70',port=22,username='root',password='123456')
return ssh
except Exception as e:
return 'error'
def user_manager(self,username,flag):
"""
为s3访问创建radosgw用户
flag: c -> create,d -> delete
"""
ssh = self.new_connect()
if not isinstance(ssh,str):
c_command = '/usr/bin/radosgw-admin  user create --uid="%s" --display-name="%s"' % (username, username.title())
d_command = '/usr/bin/radosgw-admin  user rm --uid="%s"' % (username)
if flag == 'c':
stdin, stdout, stderr = ssh.exec_command(c_command)
outstr = stdout.read()
errstr = stdout.read()
ssh.close()
return outstr,errstr
elif flag == 'd':
stdin, stdout, stderr = ssh.exec_command(d_command)
ssh.close()
return 'delete %s success'% username
# return stdout, stderr
else:
ssh.close()
return 'flag == c or d','flag error'
return 'connect error'
class CephS3():
# 单例模式
__instance = None
def __init__(self):
self.access_key = "BKOLF8C5319QK2UIMQ09"
self.secret_key = "jBiFwY3LeHh78tM9W6Y8oQUM2VNIbieGVViB3wEB"
self.host = '192.168.44.70'
self.port = 7480
self.conn = boto.connect_s3(
aws_access_key_id= self.access_key,
aws_secret_access_key= self.secret_key,
host = self.host,
port = self.port,
is_secure=False,
calling_format = boto.s3.connection.OrdinaryCallingFormat()
)
@staticmethod
def get_connect():
if CephS3.__instance:
return CephS3.__instance
else:
CephS3.__instance = CephS3().conn
return CephS3.__instance
def list_all_buckets(self):
con = CephS3.get_connect()
all_buckets = con.get_all_buckets()
for bucket in all_buckets:
print("{name}\t{created}".format(name=bucket.name,created=bucket.creation_date))
def create_bucket(self,bucketname):
# con = self.connect()
con = CephS3.get_connect()
all_bucket = con.get_all_buckets()
all_bucket_name = [i.name for i in all_bucket]
try:
if bucketname not in all_bucket_name:
bucket = con.create_bucket(bucketname)
return 'ok'
# print('Bucket %s create success'% bucketname)
else:
return 'fail'
# print('Bucket %s already exists!' % bucketname)
except Exception as e:
return str(e)
def delete_bucket(self,bucketname):
con = CephS3.get_connect()
all_bucket = con.get_all_buckets()
all_bucket_name = [i.name for i in all_bucket]
try:
if bucketname in all_bucket_name:
bucket = con.delete_bucket(bucketname)
return 'ok'
else:
return 'fail'
except Exception as e:
print(str(e))
def list_bucket_object(self,bucketname):
con = CephS3.get_connect()
bucket = con.get_bucket(bucketname)
list_buckets = bucket.list()
print("%-10s\t%-10s\t%-10s\n"%('Name','Size','Modified'))
for key in list_buckets:
print("{name:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670753-1-1.html 上篇帖子: 4节点ceph10.0.20基于centos7.4.1708安装 下篇帖子: [转]“Ceph浅析”系列之(四)——Ceph的工作原理及流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表