27 from datetime
import datetime
30 from ec2.base.auth
import _sign_parameters_ver2
33 def query(parameters, aws_key=None, aws_secret=None, endpoint=None,
34 method=
None, secure=
False):
35 parameters.setdefault(
'SignatureMethod',
'HmacSHA256')
36 parameters.setdefault(
'SignatureVersion',
'2')
38 parameters[
'AWSAccessKeyId'] = aws_key
40 parameters[
'Timestamp'] = datetime.utcnow().strftime(
"%Y-%m-%dT%H:%M:%SZ")
41 parameters[
'Version'] =
"2012-03-01"
44 signature = _sign_parameters_ver2(
50 parameters[
'Signature'] = signature
53 protocol =
'http' if not secure
else 'https'
54 query_parameters = urllib.urlencode(parameters)
56 request = (
"%s://%s/?%s" % (protocol, endpoint, query_parameters),)
57 elif method ==
'POST':
58 request = (
"%s://%s" % (protocol, endpoint), query_parameters)
60 raise Exception(
'Unsupported %s method: %s' % (protocol.upper(), method))
62 response = urllib.urlopen(*request).read()
64 return request, response
68 instances = cluster_manager.user.vm.get_list()
71 for instance
in instances:
72 tags.append({
'resource-id':
'i-' + str(instance[
'vm_id']),
74 'resource-type':
'instance',
75 'value': instance[
'name']})
80 instance = cluster_manager.user.vm.get_by_id({
'vm_id':id})
82 tags = {
'resource-id':
'i-' + str(instance[
'vm_id']),
84 'resource-type':
'instance',
85 'value': instance[
'name']}
90 volume = cluster_manager.user.storage_image.get_by_id({
'vm_id':id})
92 tags = {
'resource-id':
'i-' + str(volume[
'storage_image_id']),
94 'resource-type':
'volume',
95 'value': volume[
'name']}
100 volumes = cluster_manager.user.storage_image.get_list()
103 for volume
in volumes:
104 tags.append({
'resource-id':
'vol-' + str(volume[
'storage_image_id']),
106 'resource-type':
'volume',
107 'value': volume[
'name']})