lib/kakine/adapter/real.rb in kakine-0.2.0 vs lib/kakine/adapter/real.rb in kakine-0.3.0
- old
+ new
@@ -1,34 +1,53 @@
+require 'json'
module Kakine
class Adapter
class Real
- def create_rule(security_group_id, direction, attributes)
- attributes.delete("direction")
- if attributes["port"]
- attributes["port_range_max"] = attributes["port_range_min"] = attributes.delete("port")
+ def create_rule(security_group_id, direction, security_rule)
+ attributes = {}
+ %w(protocol port_range_max port_range_min remote_ip ethertype).each do |k|
+ attributes[k] = eval("security_rule.#{k}")
end
if attributes["remote_ip"]
attributes["remote_ip_prefix"] = attributes.delete("remote_ip")
end
data = {}
attributes.each{|k,v| data[k.to_sym] = v}
- Fog::Network[:openstack].create_security_group_rule(security_group_id, direction, data)
+ begin
+ Fog::Network[:openstack].create_security_group_rule(security_group_id, direction, data)
+ rescue Excon::Errors::Conflict => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ rescue Excon::Errors::BadRequest => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ end
end
def delete_rule(security_group_rule_id)
Fog::Network[:openstack].delete_security_group_rule(security_group_rule_id)
end
def create_security_group(attributes)
data = {}
attributes.each{|k,v| data[k.to_sym] = v}
- response = Fog::Network[:openstack].create_security_group(data)
- response.data[:body]["security_group"]["id"]
+ begin
+ response = Fog::Network[:openstack].create_security_group(data)
+ response.data[:body]["security_group"]["id"]
+ rescue Excon::Errors::Conflict => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ rescue Excon::Errors::BadRequest => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ end
end
def delete_security_group(security_group_id)
- Fog::Network[:openstack].delete_security_group(security_group_id)
+ begin
+ Fog::Network[:openstack].delete_security_group(security_group_id)
+ rescue Excon::Errors::Conflict => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ rescue Excon::Errors::BadRequest => e
+ JSON.parse(e.response[:body]).each { |e,m| puts "#{e}:#{m["message"]}" }
+ end
end
end
end
end