Sha256: b616ae1b82a0d0c283e85086289a3cdd986fd5b852db17a96b6965b17f6afdba

Contents?: true

Size: 934 Bytes

Versions: 4

Compression:

Stored size: 934 Bytes

Contents

require 'hashdiff'

module Vcloud
  class EdgeGatewayServices

    def initialize
      @config_loader = Vcloud::ConfigLoader.new
    end

    def update(config_file = nil)
      local_config = @config_loader.load_config(config_file, Vcloud::Schema::EDGE_GATEWAY_SERVICES)

      edge_gateway = Core::EdgeGateway.get_by_name local_config[:gateway]
      remote_config = edge_gateway.vcloud_attributes[:Configuration][:EdgeGatewayServiceConfiguration]
      edge_gateway_interface_list = edge_gateway.interfaces

      proposed_config = EdgeGateway::EdgeGatewayConfiguration.new(
        local_config,
        remote_config,
        edge_gateway_interface_list
      )

      if proposed_config.update_required?
        edge_gateway.update_configuration proposed_config.config
      else
        Vcloud::EdgeGateway.logger.info("EdgeGatewayServices.update: Configuration is already up to date. Skipping.")
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vcloud-edge_gateway-0.2.2 lib/vcloud/edge_gateway_services.rb
vcloud-edge_gateway-0.2.1 lib/vcloud/edge_gateway_services.rb
vcloud-edge_gateway-0.2.0 lib/vcloud/edge_gateway_services.rb
vcloud-edge_gateway-0.1.0 lib/vcloud/edge_gateway_services.rb