Class: Fog::Image::OpenStack::V2::Image
Instance Attribute Summary
#project
Instance Method Summary
collapse
#initialize, #save
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_sym, *arguments, &block) ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 43
def method_missing(method_sym, *arguments, &block)
if attributes.key?(method_sym)
attributes[method_sym]
elsif attributes.key?(method_sym.to_s)
attributes[method_sym.to_s]
else
super
end
end
|
Instance Method Details
#add_member(member_id) ⇒ Object
121
122
123
124
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 121
def add_member(member_id)
requires :id
service.add_member_to_image(id, member_id)
end
|
#add_tag(tag) ⇒ Object
151
152
153
154
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 151
def add_tag(tag)
requires :id
service.add_tag_to_image(id, tag)
end
|
146
147
148
149
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 146
def add_tags(tags)
requires :id
tags.each { |tag| add_tag tag }
end
|
#create ⇒ Object
63
64
65
66
67
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 63
def create
requires :name
merge_attributes(service.create_image(attributes).body)
self
end
|
#deactivate ⇒ Object
116
117
118
119
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 116
def deactivate
requires :id
service.deactivate_image(id)
end
|
#destroy ⇒ Object
91
92
93
94
95
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 91
def destroy
requires :id
service.delete_image(id)
true
end
|
#download_data(params = {}) ⇒ Object
106
107
108
109
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 106
def download_data(params = {})
requires :id
service.download_image(id, params[:content_range], params)
end
|
#identity ⇒ Object
This overrides the behaviour of Fog::OpenStack::Model::save() which tries to be clever and
assumes save=update if an ID is present - but Image V2 allows ID to specified on creation
71
72
73
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 71
def identity
nil
end
|
#member(member_id) ⇒ Object
141
142
143
144
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 141
def member(member_id)
requires :id
service.get_member_details(id, member_id)
end
|
#members ⇒ Object
136
137
138
139
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 136
def members
requires :id
service.get_image_members(id).body['members']
end
|
#reactivate ⇒ Object
111
112
113
114
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 111
def reactivate
requires :id
service.reactivate_image(id)
end
|
#remove_member(member_id) ⇒ Object
126
127
128
129
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 126
def remove_member(member_id)
requires :id
service.remove_member_from_image(id, member_id)
end
|
#remove_tag(tag) ⇒ Object
161
162
163
164
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 161
def remove_tag(tag)
requires :id
service.remove_tag_from_image(id, tag)
end
|
156
157
158
159
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 156
def remove_tags(tags)
requires :id
tags.each { |tag| remove_tag tag }
end
|
#respond_to?(method_sym, include_all = false) ⇒ Boolean
53
54
55
56
57
58
59
60
61
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 53
def respond_to?(method_sym, include_all = false)
if attributes.key?(method_sym)
true
elsif attributes.key?(method_sym.to_s)
true
else
super
end
end
|
#update(attr = {}) ⇒ Object
Hash of attributes to update is passed in. Setting value to nil will delete that attribute.
Here we convert that hash into a form suitable for Glance's usage of JSON Patch (RFC6902)
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 77
def update(attr = {})
requires :id
json_patch = []
attr.each do |key, value|
op = (@attributes.keys.include? key) ? 'replace' : 'add'
op = 'remove' if value.nil?
json_patch << {:op => op, :path => "/#{key}", :value => value}
end
merge_attributes(
service.update_image(id, json_patch).body
)
self
end
|
#update_member(member) ⇒ Object
131
132
133
134
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 131
def update_member(member)
requires :id
service.update_image_member(id, member)
end
|
#upload_data(io_obj) ⇒ Object
97
98
99
100
101
102
103
104
|
# File 'lib/fog/image/openstack/v2/models/image.rb', line 97
def upload_data(io_obj)
requires :id
if io_obj.kind_of? Hash
service.upload_image(id, nil, io_obj)
else
service.upload_image(id, io_obj)
end
end
|