Sha256: fbc10e5ff11c69b62824d2bb70e8fbc56936d348e33b6def61b1f4122da7f292

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

class TestLab

  # Router Error Class
  class RouterError < TestLabError; end

  # Router Class
  #
  # @author Zachary Patten <zachary@jovelabs.net>
  class Router < ZTK::DSL::Base
    belongs_to  :node,        :class_name => 'TestNode::Node'

    attribute   :interfaces

    def initialize(*args)
      super(*args)

      @ui = TestLab.ui
    end

    # Create the router
    def create
      @ui.logger.debug { "Router Create: #{self.id} " }
    end

    # Destroy the router
    def destroy
      @ui.logger.debug { "Router Destroy: #{self.id} " }
    end

    # Start the router
    def up
      @ui.logger.debug { "Router Up: #{self.id} " }
    end

    # Stop the router
    def down
      @ui.logger.debug { "Router Down: #{self.id} " }
    end

    # State of the router
    def state
    end

    # Router Callback: after_up
    def setup
      @ui.logger.debug { "Router Callback: After Up: #{self.id} " }
      self.create
      self.up
    end

    # Router Callback: before_down
    def teardown
      @ui.logger.debug { "Router Callback: Before Down: #{self.id} " }
      self.down
      self.destroy
    end

    # Method missing handler
    def method_missing(method_name, *method_args)
      @ui.logger.debug { "ROUTER METHOD MISSING: #{method_name.inspect}(#{method_args.inspect})" }
      super(method_name, *method_args)
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
testlab-0.2.1 lib/testlab/router.rb
testlab-0.2.0 lib/testlab/router.rb
testlab-0.1.0 lib/testlab/router.rb
testlab-0.0.4 lib/testlab/router.rb