Class: HybridPlatformsConductor::HpcPlugins::Test::Ports

Inherits:
TestOnlyRemoteNode show all
Defined in:
lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb

Overview

Various tests on ports

Defined Under Namespace

Modules: ConfigDslExtension

Constant Summary

Constants included from LoggerHelpers

LoggerHelpers::LEVELS_MODIFIERS, LoggerHelpers::LEVELS_TO_STDERR

Instance Attribute Summary

Attributes inherited from Test

#errors, #expected_failure, #name, #node, #platform

Instance Method Summary collapse

Methods inherited from TestOnlyRemoteNode

only_on_nodes

Methods inherited from Test

#assert_equal, #assert_match, #error, #executed, #executed?, #initialize, only_on_nodes, only_on_platforms, #to_s

Methods inherited from Plugin

extend_config_dsl_with, #initialize, valid?

Methods included from LoggerHelpers

#err, #init_loggers, #log_component=, #log_debug?, #log_level=, #out, #section, #set_loggers_format, #stderr_device, #stderr_device=, #stderr_displayed?, #stdout_device, #stdout_device=, #stdout_displayed?, #stdouts_to_s, #with_progress_bar

Constructor Details

This class inherits a constructor from HybridPlatformsConductor::Test

Instance Method Details

#test_for_nodeObject

Check my_test_plugin.rb.sample documentation for signature details.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb', line 58

def test_for_node
  @nodes_handler.select_confs_for_node(@node, @config.ports_rules).each do |ports_rule_info|
    node_ip = @nodes_handler.get_host_ip_of(@node)
    ports_rule_info[:ports].each do |port|
      log_debug "Test port #{node_ip}:#{port}"
      port_opened =
        begin
          Socket.tcp(node_ip, port, connect_timeout: 5) { true }
        rescue
          false
        end
      case ports_rule_info[:state]
      when :opened
        error "Port #{port} should be opened but it's not" unless port_opened
      when :closed
        error "Port #{port} should be closed but it's not" if port_opened
      else
        raise "Unknown desired state for port: #{ports_rule_info[:state]}. Please correct this test plugin."
      end
    end
  end
end