mms-api 0.0.8 → 0.0.9

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: 8a105e082d9ced5d68e42aee67686335005933ee
4
- data.tar.gz: 075b3be253bb229508ea4782091d8fe5d0fdbd6a
3
+ metadata.gz: 2f84b83712abb35d5ddc92349e7f7edc6ce8ce1d
4
+ data.tar.gz: 9402addd71a60272c9c7ec83b615f0dff43807b4
5
5
  SHA512:
6
- metadata.gz: cb36e55f69d541c3bcc3a9924059c833a8c0f56f3d2ffc21105756b868a112a6689619f1edfa141f35d4ee00e838b32a06feb8bfb8658bd1187bb2f6597462c7
7
- data.tar.gz: 05dfa0e848bbd32438114b4fef7c86c28fb16487b39ed68c8b895038dafd34117c9147bcae29f34393d2f80a75be03c0c03d44a120535d6cdbc47062ae5bb28b
6
+ metadata.gz: 0b33d1456eb0dd74586cd4cae98fd2c58f943ce3232a37bf5dbe025c34d907af08cdb78bfa2badf6816bad4a88ddb5958459d658ac87a914e0ebf6cfb45e7e83
7
+ data.tar.gz: b06c7b7efc6826286ea196834b8e3bd99c3cabb61526283aaa4f68a1e9dba9c4e543290108af2f2b5239205abe6549a7ca9c26aaa9936360a764e95cbe7018b0
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- mms-api
1
+ mms-api [![Build Status](https://travis-ci.org/cargomedia/mms-api.png)](https://travis-ci.org/cargomedia/mms-api)
2
2
  =======
3
3
  Minimalistic [MMS API](http://mms.mongodb.com/) agent for ruby
4
4
 
@@ -33,6 +33,15 @@ Options:
33
33
  -h, --help Show this help
34
34
  ```
35
35
 
36
+ `mms-api` reads default configuration from your home directory `~/.mms-api`. Example configuration:
37
+
38
+ ```
39
+ username=sysadmin@example.tld
40
+ apikey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
41
+ # apiurl=https://mms.mydomain.tld/api/public/v1.0
42
+ # action=hosts
43
+ ```
44
+
36
45
  API coverage
37
46
  ------------
38
47
  The MMS Public API follows the principles of the REST architectural style to expose a number of internal resources which enable programmatic access to [MMS’s features](http://mms.mongodb.com/help/reference/api/). Current implementation support only a few of API features.
@@ -5,7 +5,8 @@ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
5
5
  require 'mms'
6
6
  require 'optparse'
7
7
  require 'terminal-table'
8
- require 'pp'
8
+ require 'parseconfig'
9
+ require 'pathname'
9
10
 
10
11
  actions_available = ["groups", "hosts", "clusters", "snapshots", "restorejobs", "restorejobs-create"]
11
12
 
@@ -15,18 +16,28 @@ app_usage = "#{app_name} command [options]"
15
16
  app_version = MMS::VERSION
16
17
  app_commands = "#{actions_available.join(' | ')}"
17
18
 
19
+ config = {}
18
20
  options = {}
21
+
22
+ config_file = Pathname.new(Dir.home) + app_name.prepend('.')
23
+ if config_file.exist?
24
+ config = ParseConfig.new(config_file)
25
+ end
26
+
19
27
  optparse = OptionParser.new do |opts|
20
28
  opts.banner = "#{app_dscr}\n\nUsage:\n\n\t#{app_usage}\n\nCommands:\n\n\t#{app_commands}\n\nOptions:\n\n"
21
29
 
30
+ options[:username] = config['username']
22
31
  opts.on("-u", "--username <string>", "MMS user") do |u|
23
32
  options[:username] = u
24
33
  end
25
34
 
35
+ options[:apikey] = config['apikey']
26
36
  opts.on("-k", "--apikey <string>", "MMS api-key") do |k|
27
37
  options[:apikey] = k
28
38
  end
29
39
 
40
+ options[:apiurl] = config['apiurl']
30
41
  opts.on("-a", "--apiurl <string>", "MMS api url. Full url including version: https://mms.mydomain.tld/api/public/v1.0") do |a|
31
42
  options[:apiurl] = a
32
43
  end
@@ -36,7 +47,7 @@ optparse = OptionParser.new do |opts|
36
47
  options[:name] = n
37
48
  end
38
49
 
39
- options[:limit] = 5
50
+ options[:limit] = config['limit'] || 5
40
51
  opts.on("-l", "--limit <int>", "Limit for result items") do |l|
41
52
  options[:limit] = l.to_i
42
53
  end
@@ -69,7 +80,7 @@ rescue OptionParser::InvalidOption, OptionParser::MissingArgument
69
80
  end
70
81
 
71
82
  begin
72
- action = ARGV.first.downcase
83
+ action = (ARGV.first || config['action'] || '').downcase
73
84
  raise("Unknown action #{action.upcase}") unless actions_available.include? (action)
74
85
  rescue => e
75
86
  puts "Error: #{e.message}"
@@ -24,6 +24,10 @@ module MMS
24
24
  @storage.delete key unless @storage[key].nil?
25
25
  end
26
26
 
27
+ def clear
28
+ initialize
29
+ end
30
+
27
31
  def storage
28
32
  @storage
29
33
  end
@@ -1,3 +1,3 @@
1
1
  module MMS
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mms-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cargo Media
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-05 00:00:00.000000000 Z
13
+ date: 2014-12-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: net-http-digest_auth
@@ -40,6 +40,20 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.4.5
43
+ - !ruby/object:Gem::Dependency
44
+ name: parseconfig
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.0.6
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 1.0.6
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: rake
45
59
  requirement: !ruby/object:Gem::Requirement