Sha256: 35b43dd3c50f4458e5fb2c38f3f20e1adfe13055b197d2f4de0cf4a92a8ff660

Contents?: true

Size: 949 Bytes

Versions: 3

Compression:

Stored size: 949 Bytes

Contents

require 'phut/netns'
require 'phut/syntax/netns_directive'
require 'phut/syntax/vhost_directive'
require 'phut/syntax/vswitch_directive'
require 'phut/vhost'
require 'phut/virtual_link'

module Phut
  # DSL syntax definitions.
  class Syntax
    def initialize(config, logger)
      @config = config
      @logger = logger
    end

    def vswitch(alias_name = nil, &block)
      attrs = VswitchDirective.new(alias_name, &block)
      OpenVswitch.create(attrs[:dpid], attrs[:port], attrs[:name], @logger)
    end

    def vhost(alias_name = nil, &block)
      attrs = VhostDirective.new(alias_name, &block)
      Vhost.create(attrs[:ip], attrs[:mac], attrs[:promisc], attrs[:name],
                   @logger)
    end

    def netns(name, &block)
      attrs = NetnsDirective.new(name, &block)
      Netns.create(attrs, attrs[:name], @logger)
    end

    def link(name_a, name_b)
      VirtualLink.create(name_a, name_b, @logger)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
phut-0.7.7 lib/phut/syntax.rb
phut-0.7.6 lib/phut/syntax.rb
phut-0.7.5 lib/phut/syntax.rb