@ -855,6 +855,29 @@ def ceph_volume_add(config, pool, volume, size):
|
||||
|
||||
return retstatus, response.json()['message']
|
||||
|
||||
def ceph_volume_upload(config, pool, volume, image_format, image_file):
|
||||
"""
|
||||
Upload a disk image to a Ceph volume
|
||||
|
||||
API endpoint: POST /api/v1/storage/ceph/volume/{pool}/{volume}/upload
|
||||
API arguments: image_format={image_format}
|
||||
API schema: {"message":"{data}"}
|
||||
"""
|
||||
params = {
|
||||
'image_format': image_format
|
||||
}
|
||||
files = {
|
||||
'file': open(image_file,'rb')
|
||||
}
|
||||
response = call_api(config, 'post', '/storage/ceph/volume/{}/{}/upload'.format(pool, volume), params=params, files=files)
|
||||
|
||||
if response.status_code == 200:
|
||||
retstatus = True
|
||||
else:
|
||||
retstatus = False
|
||||
|
||||
return retstatus, response.json()['message']
|
||||
|
||||
def ceph_volume_remove(config, pool, volume):
|
||||
"""
|
||||
Remove Ceph volume
|
||||
|
@ -23,7 +23,7 @@
|
||||
import requests
|
||||
import click
|
||||
|
||||
def call_api(config, operation, request_uri, params=None, data=None):
|
||||
def call_api(config, operation, request_uri, params=None, data=None, files=None):
|
||||
# Craft the URI
|
||||
uri = '{}://{}{}{}'.format(
|
||||
config['api_scheme'],
|
||||
@ -52,14 +52,16 @@ def call_api(config, operation, request_uri, params=None, data=None):
|
||||
uri,
|
||||
headers=headers,
|
||||
params=params,
|
||||
data=data
|
||||
data=data,
|
||||
files=files
|
||||
)
|
||||
if operation == 'put':
|
||||
response = requests.put(
|
||||
uri,
|
||||
headers=headers,
|
||||
params=params,
|
||||
data=data
|
||||
data=data,
|
||||
files=files
|
||||
)
|
||||
if operation == 'patch':
|
||||
response = requests.patch(
|
||||
|
Reference in New Issue
Block a user