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, environment, component, rules_directory) ⇒ VcloudConfigureRequest
constructor
A new instance of VcloudConfigureRequest.
- #response_body ⇒ Object
- #submit ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(vcloud_settings, auth_header, environment, component, rules_directory) ⇒ VcloudConfigureRequest
Returns a new instance of VcloudConfigureRequest.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 5 def initialize vcloud_settings, auth_header, environment, component, rules_directory @auth_header = auth_header @config_url = vcloud_settings.edge_gateway_config_url @environment = environment @component = component @response = nil @interfaces = YAML::load_file("#{rules_directory}/#{@environment}/interfaces.yaml")['interfaces'] require "#{rules_directory}/common_#{component}.rb" require "#{rules_directory}/#{@environment}/#{component}" end |
Instance Method Details
#components ⇒ Object
17 18 19 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 17 def components { "firewall" => "Firewall", "nat" => "NAT", "lb" => "LoadBalancer" } end |
#response_body ⇒ Object
48 49 50 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 48 def response_body @response.body end |
#submit ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 21 def submit 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 = Kernel.const_get("Component").const_get(components[@component]).generate_xml(@interfaces).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 @response = response end |
#success? ⇒ Boolean
44 45 46 |
# File 'lib/vcloud_network_configurator/vcloud_configure_request.rb', line 44 def success? @response.code == "202" end |