Class: VcloudConfigureRequest
- Inherits:
-
Object
- Object
- VcloudConfigureRequest
- Defined in:
- lib/vcloud_network_configurator/vcloud_configure_request.rb
Instance Method Summary collapse
- #components ⇒ Object
-
#initialize(vcloud_settings, auth_header, component, rules_files, interfaces_files) ⇒ VcloudConfigureRequest
constructor
A new instance of VcloudConfigureRequest.
- #response_body ⇒ Object
- #submit ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(vcloud_settings, auth_header, component, rules_files, interfaces_files) ⇒ VcloudConfigureRequest
Returns a new instance of VcloudConfigureRequest.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 5 def initialize vcloud_settings, auth_header, component, rules_files, interfaces_files @auth_header = auth_header @config_url = vcloud_settings.edge_gateway_config_url @component = component @response = nil @interfaces = {} interfaces_files.each do |ifile| @interfaces.merge!(YAML::load_file(ifile)['interfaces']) if ifile and File.file?(File.(ifile)) end if interfaces_files rules_files.each do |rfile| next if rfile.nil? = File.(rfile) require if File.file?() end if rules_files end |
Instance Method Details
#components ⇒ Object
23 24 25 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 23 def components { "firewall" => "Firewall", "nat" => "NAT", "lb" => "LoadBalancer" } end |
#response_body ⇒ Object
58 59 60 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 58 def response_body @response.body end |
#submit ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 27 def submit generated_xml = Kernel.const_get("Component").const_get(components[@component]). generate_xml(@interfaces) abort "No rules found. exiting" if generated_xml.nil? url = URI(@config_url) request = Net::HTTP::Post.new url.request_uri request['Accept'] = VcloudSettings.request_headers['Accept'] request['Content-Type'] = VcloudSettings.request_headers['Content-Type'] request['x-vcloud-authorization'] = @auth_header request.body = generated_xml.to_xml puts "Reading configuration from #{@config_file}" puts "Submitting request at #{@config_url}\n" session = Net::HTTP.new(url.host, url.port) session.use_ssl = true response = session.start do |http| http.request request end puts "HTTP #{response.code}" puts response.body @response = response end |
#success? ⇒ Boolean
54 55 56 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 54 def success? @response.code == "202" end |