luna_scanner 0.0.3
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 +15 -0
- data/.gitignore +18 -0
- data/Changelog.txt +10 -0
- data/Gemfile +4 -0
- data/INSTALL +21 -0
- data/LICENSE.txt +22 -0
- data/README.md +99 -0
- data/Rakefile +14 -0
- data/bin/luna_scanner +7 -0
- data/lib/luna_scanner.rb +66 -0
- data/lib/luna_scanner/cli.rb +159 -0
- data/lib/luna_scanner/device.rb +132 -0
- data/lib/luna_scanner/logger.rb +32 -0
- data/lib/luna_scanner/rcommand.rb +128 -0
- data/lib/luna_scanner/scanner.rb +156 -0
- data/lib/luna_scanner/update_firmware.sh +273 -0
- data/lib/luna_scanner/util.rb +64 -0
- data/lib/luna_scanner/version.rb +3 -0
- data/lib/luna_scanner/web.rb +98 -0
- data/luna_scanner.gemspec +29 -0
- data/test/device_test.rb +77 -0
- data/test/local_ip_test.rb +14 -0
- data/test/logger_test.rb +16 -0
- data/test/luna_scanner_test.rb +21 -0
- data/test/test_helper.rb +11 -0
- data/test/web_test.rb +2 -0
- metadata +147 -0
data/test/device_test.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require File.expand_path("../test_helper", __FILE__)
|
2
|
+
|
3
|
+
describe LunaScanner::Device do
|
4
|
+
it "must have load_from_file method" do
|
5
|
+
LunaScanner::Device.must_respond_to(:load_from_file)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "must be initialized with given attributes" do
|
9
|
+
device = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00001234", :model => "T-7202D", :version => "20131212.121212")
|
10
|
+
device.ip.must_equal("192.168.1.22")
|
11
|
+
device.sn.must_equal("00001234")
|
12
|
+
device.model.must_equal("T-7202D")
|
13
|
+
device.version.must_equal("20131212.121212")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "must be format when display" do
|
17
|
+
device1 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00001234", :model => "T-7202D", :version => "20131212.121212")
|
18
|
+
device2 = LunaScanner::Device.new(:ip => "192.168.1.1", :sn => "00001234", :model => "T-7202D", :version => "20131212.121212")
|
19
|
+
device3 = LunaScanner::Device.new(:ip => "192.168.111.111", :sn => "00001234", :model => "T-7202D", :version => "20131212.121212")
|
20
|
+
device4 = LunaScanner::Device.new(:ip => "192.168.111.2", :sn => "00001234", :model => "T-7202", :version => "20131212.121212")
|
21
|
+
device5 = LunaScanner::Device.new(:ip => "192.168.10.2", :sn => "00001234", :model => "T-720", :version => "20131212.121212")
|
22
|
+
device6 = LunaScanner::Device.new(:ip => "192.168.10.21", :sn => "00001234", :model => "T-72011D", :version => "20131212.121212")
|
23
|
+
|
24
|
+
########################## "----SN---------IP------------MODEL------VERSION--------"
|
25
|
+
device1.display.must_equal(" 00001234 192.168.1.22 T-7202D 20131212.121212")
|
26
|
+
device2.display.must_equal(" 00001234 192.168.1.1 T-7202D 20131212.121212")
|
27
|
+
device3.display.must_equal(" 00001234 192.168.111.111 T-7202D 20131212.121212")
|
28
|
+
device4.display.must_equal(" 00001234 192.168.111.2 T-7202 20131212.121212")
|
29
|
+
device5.display.must_equal(" 00001234 192.168.10.2 T-720 20131212.121212")
|
30
|
+
device6.display.must_equal(" 00001234 192.168.10.21 T-72011D 20131212.121212")
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should generate new ip from sn" do
|
35
|
+
device1 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00000034", :model => "T-7202D", :version => "20131212.121212")
|
36
|
+
device1.ip_from_sn.must_equal("8.128.2.34")
|
37
|
+
|
38
|
+
device2 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00000250", :model => "T-7202D", :version => "20131212.121212")
|
39
|
+
device2.ip_from_sn.must_equal("8.128.3.0")
|
40
|
+
|
41
|
+
device2 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00000251", :model => "T-7202D", :version => "20131212.121212")
|
42
|
+
device2.ip_from_sn.must_equal("8.128.3.1")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should generate ip file" do
|
46
|
+
device1 = LunaScanner::Device.new(:ip => "192.168.1.22", "00000034", "T-7202D", :version => "20131212.121212")
|
47
|
+
device1.new_ip.must_equal("# and how to activate them. For more information, see interfaces(5).
|
48
|
+
|
49
|
+
# The loopback network interface
|
50
|
+
auto lo
|
51
|
+
iface lo inet loopback
|
52
|
+
|
53
|
+
#enable this if you are using 100Mbps
|
54
|
+
auto eth0
|
55
|
+
allow-hotplug eth0
|
56
|
+
iface eth0 inet static
|
57
|
+
address 0.0.0.0
|
58
|
+
|
59
|
+
auto eth1
|
60
|
+
allow-hotplug eth1
|
61
|
+
iface eth1 inet static
|
62
|
+
address 8.128.2.34
|
63
|
+
netmask 255.255.252.0
|
64
|
+
gateway 8.128.3.254
|
65
|
+
")
|
66
|
+
|
67
|
+
device2 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00000034", :model => "T-7202D", :version => "20131212.121212")
|
68
|
+
`echo '#{device2.new_ip}' > /tmp/interfaces0`
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should write ip config file" do
|
72
|
+
device1 = LunaScanner::Device.new(:ip => "192.168.1.22", :sn => "00000034", :model => "T-7202D", :version => "20131212.121212")
|
73
|
+
device1.write_ip_to_config
|
74
|
+
File.exist?("/tmp/interfaces").must_equal true
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
def local_ip
|
4
|
+
orig = Socket.do_not_reverse_lookup
|
5
|
+
Socket.do_not_reverse_lookup =true # turn off reverse DNS resolution temporarily
|
6
|
+
UDPSocket.open do |s|
|
7
|
+
s.connect '64.233.187.99', 1 #google
|
8
|
+
s.addr.last
|
9
|
+
end
|
10
|
+
ensure
|
11
|
+
Socket.do_not_reverse_lookup = orig
|
12
|
+
end
|
13
|
+
|
14
|
+
puts local_ip
|
data/test/logger_test.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path("../test_helper", __FILE__)
|
2
|
+
|
3
|
+
describe LunaScanner::Logger do
|
4
|
+
it "must have info method" do
|
5
|
+
LunaScanner::Logger.must_respond_to(:info)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "must have success method" do
|
9
|
+
LunaScanner::Logger.must_respond_to(:success)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "must have error method" do
|
13
|
+
LunaScanner::Logger.must_respond_to(:error)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path("../test_helper", __FILE__)
|
2
|
+
|
3
|
+
describe LunaScanner do
|
4
|
+
|
5
|
+
it "root must be defined" do
|
6
|
+
LunaScanner.root.wont_be_nil
|
7
|
+
end
|
8
|
+
|
9
|
+
it "pwd must be defined" do
|
10
|
+
LunaScanner.pwd.wont_be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it "local_ip must be defined" do
|
14
|
+
LunaScanner.local_ip.wont_be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "version must be defined" do
|
18
|
+
LunaScanner::VERSION.wont_be_nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
|
2
|
+
require 'bundler'
|
3
|
+
Bundler.setup
|
4
|
+
Bundler.require :default, :test
|
5
|
+
|
6
|
+
require 'minitest/autorun'
|
7
|
+
|
8
|
+
|
9
|
+
lib = File.expand_path('../../lib', __FILE__)
|
10
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
11
|
+
require "luna_scanner.rb"
|
data/test/web_test.rb
ADDED
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: luna_scanner
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- qichunren
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: net-ssh
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.7.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.7.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: net-scp
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sinatra
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.4.4
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.4.4
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Discover luna-client devices in LAN
|
84
|
+
email:
|
85
|
+
- whyruby@gmail.com
|
86
|
+
executables:
|
87
|
+
- luna_scanner
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- .gitignore
|
92
|
+
- Changelog.txt
|
93
|
+
- Gemfile
|
94
|
+
- INSTALL
|
95
|
+
- LICENSE.txt
|
96
|
+
- README.md
|
97
|
+
- Rakefile
|
98
|
+
- bin/luna_scanner
|
99
|
+
- lib/luna_scanner.rb
|
100
|
+
- lib/luna_scanner/cli.rb
|
101
|
+
- lib/luna_scanner/device.rb
|
102
|
+
- lib/luna_scanner/logger.rb
|
103
|
+
- lib/luna_scanner/rcommand.rb
|
104
|
+
- lib/luna_scanner/scanner.rb
|
105
|
+
- lib/luna_scanner/update_firmware.sh
|
106
|
+
- lib/luna_scanner/util.rb
|
107
|
+
- lib/luna_scanner/version.rb
|
108
|
+
- lib/luna_scanner/web.rb
|
109
|
+
- luna_scanner.gemspec
|
110
|
+
- test/device_test.rb
|
111
|
+
- test/local_ip_test.rb
|
112
|
+
- test/logger_test.rb
|
113
|
+
- test/luna_scanner_test.rb
|
114
|
+
- test/test_helper.rb
|
115
|
+
- test/web_test.rb
|
116
|
+
homepage: https://github.com/qichunren/luna-scanner
|
117
|
+
licenses:
|
118
|
+
- MIT
|
119
|
+
metadata: {}
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 2.0.3
|
137
|
+
signing_key:
|
138
|
+
specification_version: 4
|
139
|
+
summary: Discover luna-clinet devices in LAN, batch config them.
|
140
|
+
test_files:
|
141
|
+
- test/device_test.rb
|
142
|
+
- test/local_ip_test.rb
|
143
|
+
- test/logger_test.rb
|
144
|
+
- test/luna_scanner_test.rb
|
145
|
+
- test/test_helper.rb
|
146
|
+
- test/web_test.rb
|
147
|
+
has_rdoc:
|