39bd4a535e
Context manager automatically handles file closing. No need to use f.close() Change-Id: I26382136cef241908252258df813ecfbb56b5aef
75 lines
1.8 KiB
Python
75 lines
1.8 KiB
Python
# step-1
|
|
from __future__ import print_function
|
|
import hashlib
|
|
from shade import *
|
|
|
|
conn = openstack_cloud(cloud='myfavoriteopenstack')
|
|
|
|
# step-2
|
|
container_name = 'fractals'
|
|
container = conn.create_container(container_name)
|
|
print(container)
|
|
|
|
# step-3
|
|
print(conn.list_containers())
|
|
|
|
# step-4
|
|
file_path = 'goat.jpg'
|
|
object_name = 'an amazing goat'
|
|
container = conn.get_container(container_name)
|
|
object = conn.create_object(container=container_name, name=object_name, filename=file_path)
|
|
|
|
# step-5
|
|
print(conn.list_objects(container_name))
|
|
|
|
# step-6
|
|
object = conn.get_object(container_name, object_name)
|
|
print(object)
|
|
|
|
# step-7
|
|
print(hashlib.md5(open('goat.jpg', 'rb').read()).hexdigest())
|
|
|
|
# step-8
|
|
conn.delete_object(container_name, object_name)
|
|
|
|
# step-9
|
|
print(conn.list_objects(container_name))
|
|
|
|
# step-10
|
|
container_name = 'fractals'
|
|
print(conn.get_container(container_name))
|
|
|
|
# step-11
|
|
import base64
|
|
import cStringIO
|
|
import json
|
|
import requests
|
|
|
|
endpoint = 'http://IP_API_1'
|
|
params = { 'results_per_page': '-1' }
|
|
response = requests.get('%s/v1/fractal' % endpoint, params=params)
|
|
data = json.loads(response.text)
|
|
for fractal in data['objects']:
|
|
r = requests.get('%s/fractal/%s' % (endpoint, fractal['uuid']), stream=True)
|
|
with open(fractal['uuid'], 'wb') as f:
|
|
for chunk in r.iter_content(chunk_size=1024):
|
|
if chunk:
|
|
f.write(chunk)
|
|
conn.create_object(container=container_name, name=fractal['uuid'])
|
|
|
|
for object in conn.list_objects(container_name):
|
|
print(object)
|
|
|
|
# step-12
|
|
for object in conn.list_objects(container_name):
|
|
conn.delete_object(container_name, object['name'])
|
|
conn.delete_container(container_name)
|
|
|
|
# step-13
|
|
metadata = {'foo': 'bar'}
|
|
conn.create_object(container=container_name, name=fractal['uuid'],
|
|
metadata=metadata
|
|
)
|
|
|
|
# step-14
|