teuton-server 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3eb8184096b8e41fa039d349c8050072d9cc95db54b7b3bde613064c6e0a176e
4
- data.tar.gz: 7d6a326cc2a53846afd5a2ee6786d25d5255efa30ec3f4bfb32a074d6b5fcfa2
3
+ metadata.gz: ec933cb05436596fafa3db82ed125be0fb80201098cac2840798a794f8af4736
4
+ data.tar.gz: e95c6c46ccb016feacbf42f2083d2106384a6a9f7f01735904365ecf0d7b4d27
5
5
  SHA512:
6
- metadata.gz: 50ef0a75bbdf2ae4f84dd130322b013ee29a43f5f7dfc2f6e3490605353aa8f30761f139737cae8a8a661d180378d246e58a7d786d81f59000c3d275443ea654
7
- data.tar.gz: 7330c7c18bb912e45be34eb70cb8a8423c98a70c2f02a76de99aca84f8e5071b942a4a8e445d1c21d7b1fa3ae4a41e11db4216956ae71c75daa59e3e922047f1
6
+ metadata.gz: 7499a9387e09c676eea03818686693c27bdd19aa709334d3de919990420ecf64af96e916979e4350043fc1b3f47157942f4ae4fae8aece6a72e50f065bca2c74
7
+ data.tar.gz: c1cfffaf08176150a1cab549e725746e19209aed1a527d60c7643dcd79f8890712a8bfac921b3729eb3d31c2c388f5fc9c2e672cd9f1f2a490b803a2c3c947ab
data/README.md CHANGED
@@ -11,7 +11,7 @@ But with TeutonServer, T-NODE host listen to evaluation requests from S-NODE hos
11
11
 
12
12
  * `gem install teuton-server`, to install TeutonServer.
13
13
 
14
- > Ensure [Teuton Software](https://github.com/teuton-software/teuton) is installed too.
14
+ > Ensure [Teuton Software (version => 2.1)](https://github.com/teuton-software/teuton) is installed too.
15
15
 
16
16
  ## Running
17
17
 
data/bin/teuton-server CHANGED
@@ -9,5 +9,5 @@ require 'teuton-server'
9
9
  # * start => Start Teuton Server
10
10
  TeutonServer.show_help if ARGV.first == 'help'
11
11
  TeutonServer.show_version if ARGV.first == 'version'
12
- TeutonServer.init(ARGV) if ARGV.first == 'init'
12
+ TeutonServer.init(ARGV.slice(1,ARGV.size)) if ARGV.first == 'init'
13
13
  TeutonServer.start(ARGV)
@@ -1,7 +1,8 @@
1
+ ##
1
2
  # This module groups some global configuration params.
2
3
  module Application
3
- NAME = 'teuton-server'
4
- VERSION = '0.0.6'
5
- CONFIGFILE = 'teuton-server.yaml'
6
- PORT = 16000
4
+ NAME = 'teuton-server' # Application name
5
+ VERSION = '0.0.8' # Application version
6
+ CONFIGFILE = 'teuton-server.yaml' # Default config file name
7
+ PORT = 16000 # Default base port
7
8
  end
@@ -1,6 +1,11 @@
1
1
  require 'socket'
2
2
 
3
+ ##
4
+ # This class wake up service to respond request from 1 client.
3
5
  class Service
6
+ ##
7
+ # Run 1 service to respond request from 1 client.
8
+ # @param param [Hash] Service params
4
9
  def run(param)
5
10
  service = TCPServer.open(param[:server][:port])
6
11
  accept_clients service, param
@@ -25,7 +30,10 @@ class Service
25
30
  end
26
31
 
27
32
  def authorized_request?(client, param)
28
- return true if param[:client][:ip] == :allow
33
+ if param[:client][:ip] == :allow
34
+ param[:client][:ip] = client.peeraddr[2]
35
+ return true
36
+ end
29
37
  return false if param[:client][:ip] == :deny
30
38
  return param[:client][:ip] == client.peeraddr[2]
31
39
  end
@@ -58,6 +66,7 @@ class Service
58
66
  ok = system(command)
59
67
  action = {}
60
68
  action[:timestamp] = Time.now
69
+ action[:testname] = testname
61
70
  action[:cmd] = command
62
71
  action[:grade] = Rainbow('FAIL!').red
63
72
  action[:grade] = get_grade_from_report(param, testindex) if ok
@@ -92,7 +101,7 @@ class Service
92
101
  puts output
93
102
  client.puts("Connection : #{src} -> #{dest} ")
94
103
  client.puts("Timestamp : #{action[:timestamp]}")
95
- client.puts("Action : #{action[:cmd]}")
104
+ client.puts("Test Name : #{action[:testname]}")
96
105
  client.puts("Grade : #{action[:grade]}")
97
106
  client.close
98
107
  end
data/lib/teuton-server.rb CHANGED
@@ -4,8 +4,18 @@ require_relative 'teuton-server/application'
4
4
  require_relative 'teuton-server/input_loader'
5
5
  require_relative 'teuton-server/service_manager'
6
6
 
7
+ ##
8
+ # TeutonServer has these main actions:
9
+ # * help => show_help
10
+ # * version => show_version
11
+ # * init => init or create server config file
12
+ # * start => Start Teuton Server
7
13
  module TeutonServer
8
- # Start TeutonServer
14
+ ##
15
+ # Start TeutonServer arguments:
16
+ # * No arguments => start server with default config file (teuton-server.yaml).
17
+ # * Directory => start server with default config file (DIR/teuton-server.yaml).
18
+ # * YAML file => start server with config file (file.yaml).
9
19
  # @param args [Array] List of arguments
10
20
  def self.start(args)
11
21
  param = InputLoader.read_configuration(args)
@@ -22,8 +32,10 @@ module TeutonServer
22
32
  puts " init , Create server.yaml config file"
23
33
  puts " CONFIGFILE, YAML server configuration file"
24
34
  puts "Example:"
25
- puts " Start TeutonServer using 192.168.1.16 IP:"
26
- puts " teuton-server server.yaml 192.168.1.16"
35
+ puts " teuton-server server.yaml 192.168.1.16 " +
36
+ "# Start TeutonServer using 192.168.1.16 IP:"
37
+ puts " teuton-server init foo/config.yaml " +
38
+ "# Create config file"
27
39
  exit 0
28
40
  end
29
41
 
@@ -33,14 +45,21 @@ module TeutonServer
33
45
  exit 0
34
46
  end
35
47
 
36
- # Create default configuration file
48
+ # Create default configuration file. Arguments:
49
+ # * "" => Create default config file (teuton-server.yaml)
50
+ # * "DIR" => Create DIR/teuton-server.yaml config file.
51
+ # * "FILE.yaml" => Create FILE.yaml config file.
37
52
  # @param args [Array] List of arguments, where args.first = 'init'
38
53
  def self.init(args)
39
- folder = '.'
40
- folder = args[1] if args.size > 1
41
54
  src = File.join(File.dirname(__FILE__),
42
55
  'teuton-server', 'files', Application::CONFIGFILE)
43
- dest = File.join(folder, Application::CONFIGFILE)
56
+ dest = File.join(Application::CONFIGFILE)
57
+
58
+ if args.size > 0
59
+ file = args.first
60
+ dest = File.join(file) if File.extname(file) == '.yaml'
61
+ dest = File.join(file, Application::CONFIGFILE) if File.directory? file
62
+ end
44
63
  if File.exists? dest
45
64
  puts "teuton-server => " + Rainbow("File \'#{dest}\' exists!").red
46
65
  exit 1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teuton-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Vargas Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-13 00:00:00.000000000 Z
11
+ date: 2019-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: teuton
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.1.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.1.1
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: minitest
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -47,9 +61,9 @@ executables:
47
61
  extensions: []
48
62
  extra_rdoc_files:
49
63
  - README.md
50
- - docs/configfile.md
51
- - docs/installation.md
52
64
  - docs/start.md
65
+ - docs/installation.md
66
+ - docs/configfile.md
53
67
  files:
54
68
  - README.md
55
69
  - bin/teuton-server
@@ -80,7 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
94
  - !ruby/object:Gem::Version
81
95
  version: '0'
82
96
  requirements: []
83
- rubygems_version: 3.0.3
97
+ rubyforge_project:
98
+ rubygems_version: 2.7.6.2
84
99
  signing_key:
85
100
  specification_version: 4
86
101
  summary: TeutonServer (Teuton Software project)