Add CLI client interface to image upload

Closes #68
This commit is contained in:
2020-02-09 20:42:56 -05:00
parent e419855911
commit 1de57ab6f3
3 changed files with 63 additions and 3 deletions

View File

@ -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

View File

@ -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(