op5util 0.1.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ddd8e69993dd982aa3c358690c9dc37c3528a051
4
- data.tar.gz: bd4ee465837223e38b036747753279eeefd2faa2
3
+ metadata.gz: 66a61ce3bc99e6e4d91278aefc1c6d3f5f9c4fd2
4
+ data.tar.gz: ba3e0fd30da81840f892b86f3244337a1c74ae6b
5
5
  SHA512:
6
- metadata.gz: 8887314cd4c173d9bd97e22190e78784e373ed737d961562bcdfd2831c735eeb5d71fc2ffe7df0e8e778c16c73046407dfb12627c9c45464469fb9d9ca9dfa83
7
- data.tar.gz: 770838adce301257d86a0bff79d30fded9b24f9f9ba596772e26f8a1fc36e66151ef9eef1fd70f0bd7286ca4f0de2ca0e2d8f7632d70f7131a30fca74ea2c0e6
6
+ metadata.gz: 971e2e9b7b31ec5df7b079ed2da7b67c0783d7b21cf916b6d42df074f3d4a0bb08d2f7990b9373745a4543f251424e42fe82c020dbe3ccad374509142649b7cc
7
+ data.tar.gz: 27bd5cf0ba4dd63fac584f02c4e92c16b91a2465a14cc77a29ae64d73297a0d185510d4e02f78b7120b32c0af509421432cfffc994438462a24159163f15ea1b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- op5util (0.1.2)
4
+ op5util (0.1.3)
5
5
  colorize (= 0.8.1)
6
6
  gli (= 2.16.1)
7
7
  httparty (= 0.15.5)
data/bin/op5util CHANGED
@@ -9,7 +9,7 @@ include GLI::App
9
9
 
10
10
  program_desc 'A small utility to perform common Op5 administration tasks from the command line'
11
11
  program_long_desc '
12
- About authentication, if you supply username/password as command-line flags they will be used first. If username/password options isn\'t supplied on the command-line, the environment variables OP5USER and OP5PASS will be used. If there are no environment variables present, the file ~/.op5pass (or --authfile=) will be read. The file format is a single line with username and password separated by a : (colon). The supplied credentials shoud be an account with administrative privileges.
12
+ About authentication, if you supply username/password as command-line flags they will be used first. If username/password options isn\'t supplied on the command-line, the environment variables OP5USER and OP5PASS will be used. If there are no environment variables present, the file ~/.op5pass (or --authfile=, or environment OP5AUTHFILE) will be read. The file format is a single line with username and password separated by a : (colon). The supplied credentials shoud be an account with administrative privileges.
13
13
 
14
14
  This application uses the REST-api described at https://your.op5.sever/api/help. Although TLS/SSL is used, no verification of the certificate is done as most Op5-servers have a self-signed certificate.'
15
15
 
@@ -32,7 +32,7 @@ desc 'Hostname or IP-address of the Op5 monitor server, if not supplied the envi
32
32
  arg_name 'monitor'
33
33
  flag [:m, :monitor]
34
34
 
35
- desc 'Authfile containing "username:password" used to authenticate with Op5 server'
35
+ desc 'Authfile containing "username:password" used to authenticate with Op5 server, enviromnent variable OP5AUTHFILE will override the default value'
36
36
  default_value '~/.op5pass'
37
37
  arg_name 'authfile'
38
38
  flag [:f, :authfile]
@@ -157,8 +157,11 @@ command :hostgroups do |c|
157
157
  end
158
158
 
159
159
  pre do |global, _command, _options, _args|
160
+ global[:authfile] = ENV['OP5AUTHFILE'] if !ENV['OP5AUTHFILE'].nil? && (global[:authfile] == '~/.op5pass')
160
161
  Op5util.check_auth(global) ? true : false
161
162
  if global[:monitor].nil? && ENV['MONITOR'].nil?
163
+ puts 'Hostname of Op5 server is required, Use -m/--monitor=op5.server.com or environment variable MONITOR'
164
+ raise Op5util::NoMonitorServerError
162
165
  false
163
166
  else
164
167
  global[:monitor] = ENV['MONITOR'] if global['monitor'].nil?
@@ -174,7 +177,7 @@ on_error do |exception|
174
177
  # return false to skip default error handling
175
178
  # TODO: Catch error and print an apropriate message
176
179
  puts "Error, #{exception}"
177
- false
180
+ true
178
181
  end
179
182
 
180
183
  exit run(ARGV)
@@ -8,6 +8,9 @@
8
8
  # Toplevel documentation
9
9
  module Op5util
10
10
  class NoAuthMethodError < StandardError; end
11
+ class UnacceptableAuthFilePermission < StandardError; end
12
+ class NoMonitorServerError < ArgumentError; end
13
+
11
14
  def check_authfile(file)
12
15
  authline = File.open(File.expand_path(file)).readline.chomp
13
16
  rescue StandardError
@@ -18,6 +21,11 @@ module Op5util
18
21
  end
19
22
 
20
23
  def check_auth(global_opts)
24
+ authfile_path = File.expand_path(global_opts[:authfile])
25
+ if File.exist?(authfile_path) && File.stat(authfile_path).mode.to_s(8)[-2, 2] != '00'
26
+ puts "Authfile must not be readable by other than owner, run \"chmod 400 #{global_opts[:authfile]}\" to set better permissions"
27
+ raise UnacceptableAuthFilePermission
28
+ end
21
29
  if !global_opts[:username].nil? && !global_opts[:password].nil?
22
30
  true
23
31
  elsif !ENV['OP5USER'].nil? && !ENV['OP5PASS'].nil?
@@ -28,6 +36,7 @@ module Op5util
28
36
  (global_opts[:username], global_opts[:password]) = check_authfile(global_opts[:authfile])
29
37
  global_opts[:username].nil? ? false : true
30
38
  else
39
+ puts 'No method of authentication with Op5-Server given'
31
40
  raise NoAuthMethodError
32
41
  end
33
42
  end
@@ -1,3 +1,3 @@
1
1
  module Op5util
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: op5util
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niklas Paulsson
@@ -146,6 +146,7 @@ files:
146
146
  - pkg/op5util-0.0.9.gem
147
147
  - pkg/op5util-0.1.0.gem
148
148
  - pkg/op5util-0.1.1.gem
149
+ - pkg/op5util-0.1.2.gem
149
150
  - screenshots/host_op5.png
150
151
  - screenshots/host_op5_listview.png
151
152
  - screenshots/usecase1.png