143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/CM/resource/AWS.rb', line 143
def update_keypair(name, data)
begin
info('check_keypair', { :id => id, :name => parameters[:Name] })
aws_keypair = fetch_keypair(name)
private_key_file = aws_keypair[:file]
update = false
if File.exist?(private_key_file)
local_keypair = `openssl pkcs8 -in #{private_key_file} -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c`.strip.sub(/^[^\s]+\s+/, '')
if aws_keypair[:fingerprint] != local_keypair
File.delete(private_key_file)
update = true
end
else
update = true
end
if update
info('update_keypair', { :id => id, :name => parameters[:Name] })
compute.delete_key_pair(name)
create_keypair(name, data, true)
end
rescue => error
myself.status = code.aws_request_failed
raise error
end
end
|