mms-api 0.0.4 → 0.0.5
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 +4 -4
- data/README.md +62 -0
- data/bin/mms-api +15 -14
- data/lib/mms/resource/restore_job.rb +3 -1
- data/lib/mms/resource/snapshot.rb +3 -1
- data/lib/mms/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dbc10b527566cf58f1694c0525eb267dc9ffeab
|
4
|
+
data.tar.gz: cf1f710e7a902c82971a3af85c414009f1ccc1a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca588615fc6636d100578f39c567ddf1952caf4f7f3abd2eeae54a306304483ac72395e65c232cdafb729f0ffcd4bcbf0791e7eccd1c9c9e5d793566d0f53ee4
|
7
|
+
data.tar.gz: d4c01011132846e6fa2f62bfdbf5b4943ce21b9ca01fa743087b808f5b449860eec72083259850dec289ea85e27e2acbeca28c07927fd599c07679f5a71df66e
|
data/README.md
CHANGED
@@ -1,3 +1,65 @@
|
|
1
1
|
mms-api
|
2
2
|
=======
|
3
3
|
Minimalistic [MMS API](http://mms.mongodb.com/) agent for ruby
|
4
|
+
|
5
|
+
Installation
|
6
|
+
------------
|
7
|
+
```
|
8
|
+
gem install mms-api
|
9
|
+
```
|
10
|
+
|
11
|
+
Cli
|
12
|
+
---
|
13
|
+
```bash
|
14
|
+
$ mms-api --help
|
15
|
+
mms-api is a tool for accessing MMS API
|
16
|
+
|
17
|
+
Usage:
|
18
|
+
|
19
|
+
mms-api command [options]
|
20
|
+
|
21
|
+
Commands:
|
22
|
+
|
23
|
+
groups | clusters | snapshots | restorejobs | restorejobs-create
|
24
|
+
|
25
|
+
Options:
|
26
|
+
|
27
|
+
-u, --username <string> MMS user
|
28
|
+
-k, --apikey <string> MMS api-key
|
29
|
+
-n, --name <string> Filter by resource name using regexp
|
30
|
+
-l, --limit <int> Limit for result items
|
31
|
+
-v, --version Version
|
32
|
+
-h, --help Show this help
|
33
|
+
```
|
34
|
+
|
35
|
+
Development
|
36
|
+
-----------
|
37
|
+
```ruby
|
38
|
+
require 'mms'
|
39
|
+
|
40
|
+
agent = MMS::Agent.new('username', 'apikey')
|
41
|
+
|
42
|
+
# all available resources
|
43
|
+
group_list = agent.groups
|
44
|
+
cluster_list = agent.clusters
|
45
|
+
snapshot_list = agent.snapshots
|
46
|
+
|
47
|
+
# get first cluster from list
|
48
|
+
cluster = cluster_list.first
|
49
|
+
|
50
|
+
# get list of all restore-jobs for specific cluster
|
51
|
+
job_list = agent.findGroup(cluster.group.id).cluster(cluster.id).restorejobs
|
52
|
+
# or simply using cluster instance
|
53
|
+
job_list = cluster.restorejobs
|
54
|
+
|
55
|
+
# get first snapshot from list
|
56
|
+
snapshot = snapshot_list.first
|
57
|
+
|
58
|
+
# create restore job for snapshot
|
59
|
+
group_id = snapshot.cluster.group.id
|
60
|
+
cluster_id = snapshot.cluster.id
|
61
|
+
snapshot_id = snapshot.id
|
62
|
+
job_list = agent.findGroup(group_id).cluster(cluster_id).snapshot(snapshot_id).create_restorejob
|
63
|
+
# or simply using snapshot instance
|
64
|
+
job_list = snapshot.create_restorejob
|
65
|
+
```
|
data/bin/mms-api
CHANGED
@@ -7,14 +7,17 @@ require 'optparse'
|
|
7
7
|
require 'terminal-table'
|
8
8
|
require 'pp'
|
9
9
|
|
10
|
-
name = 'mms-api'
|
11
|
-
version = MMS::VERSION
|
12
|
-
|
13
10
|
actions_available = ["groups", "clusters", "snapshots", "restorejobs", "restorejobs-create"]
|
14
11
|
|
12
|
+
app_name = 'mms-api'
|
13
|
+
app_dscr = "#{app_name} is a tool for accessing MMS API"
|
14
|
+
app_usage = "#{app_name} command [options]"
|
15
|
+
app_version = MMS::VERSION
|
16
|
+
app_commands = "#{actions_available.join(' | ')}"
|
17
|
+
|
15
18
|
options = {}
|
16
19
|
optparse = OptionParser.new do |opts|
|
17
|
-
opts.banner = "
|
20
|
+
opts.banner = "#{app_dscr}\n\nUsage:\n\n\t#{app_usage}\n\nCommands:\n\n\t#{app_commands}\n\nOptions:\n\n"
|
18
21
|
|
19
22
|
opts.on("-u", "--username <string>", "MMS user") do |u|
|
20
23
|
options[:username] = u
|
@@ -25,17 +28,17 @@ optparse = OptionParser.new do |opts|
|
|
25
28
|
end
|
26
29
|
|
27
30
|
options[:name] = '.*'
|
28
|
-
opts.on("-n", "--name <string>", "
|
31
|
+
opts.on("-n", "--name <string>", "Filter for resource name using regexp") do |n|
|
29
32
|
options[:name] = n
|
30
33
|
end
|
31
34
|
|
32
35
|
options[:limit] = 5
|
33
|
-
opts.on("-l", "--limit <
|
36
|
+
opts.on("-l", "--limit <int>", "Limit for result items") do |l|
|
34
37
|
options[:limit] = l.to_i
|
35
38
|
end
|
36
39
|
|
37
40
|
opts.on("-v", "--version", "Version") do |v|
|
38
|
-
puts "#{
|
41
|
+
puts "#{app_name} v#{app_version}"
|
39
42
|
exit
|
40
43
|
end
|
41
44
|
|
@@ -91,10 +94,10 @@ begin
|
|
91
94
|
rows << [cluster.group.name, cluster.name, cluster.shard_name, cluster.replicaset_name, cluster.type_name, cluster.last_heartbeat]
|
92
95
|
end
|
93
96
|
when 'snapshots'
|
94
|
-
heading = ['Group', 'Cluster', 'SnapshotId', 'Complete', 'Created increment', '
|
97
|
+
heading = ['Group', 'Cluster', 'SnapshotId', 'Complete', 'Created increment', 'Name (created date)', 'Expires']
|
95
98
|
results_sorted = results.sort_by { |snapshot| snapshot.created_date }.reverse
|
96
99
|
results_sorted.first(options[:limit]).each do |snapshot|
|
97
|
-
rows << [snapshot.cluster.group.name, snapshot.cluster.name, snapshot.id, snapshot.complete, snapshot.created_increment, snapshot.
|
100
|
+
rows << [snapshot.cluster.group.name, snapshot.cluster.name, snapshot.id, snapshot.complete, snapshot.created_increment, snapshot.name, snapshot.expires]
|
98
101
|
rows << :separator
|
99
102
|
part_count = 0
|
100
103
|
snapshot.parts.each do |part|
|
@@ -105,10 +108,10 @@ begin
|
|
105
108
|
rows << :separator
|
106
109
|
end
|
107
110
|
when 'restorejobs', 'restorejobs-create'
|
108
|
-
heading = ['RestoreId', 'SnapshotId / Cluster / Group', '
|
111
|
+
heading = ['RestoreId', 'SnapshotId / Cluster / Group', 'Name (created)', 'Status', 'Point in time', 'Delivery', 'Restore status']
|
109
112
|
results_sorted = results.sort_by { |job| job.created }.reverse
|
110
113
|
results_sorted.first(options[:limit]).each do |job|
|
111
|
-
rows << [job.id, job.snapshot_id, job.
|
114
|
+
rows << [job.id, job.snapshot_id, job.name, job.status_name, job.point_in_time, job.delivery_method_name, job.delivery_status_name]
|
112
115
|
rows << ['', "#{job.cluster.name} (#{job.cluster.id})", {:value => '', :colspan => 5}]
|
113
116
|
rows << ['', job.cluster.group.name, {:value => '', :colspan => 5}]
|
114
117
|
rows << [{:value => 'download url:', :colspan => 7}]
|
@@ -117,9 +120,7 @@ begin
|
|
117
120
|
end
|
118
121
|
end
|
119
122
|
|
120
|
-
|
121
|
-
|
122
|
-
puts table
|
123
|
+
puts Terminal::Table.new :title => action.upcase, :headings => (heading.nil? ? [] : heading), :rows => rows
|
123
124
|
|
124
125
|
rescue => e
|
125
126
|
puts "Error: `#{e.message}`"
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
module MMS
|
2
4
|
|
3
5
|
class Resource::RestoreJob < Resource
|
@@ -31,7 +33,7 @@ module MMS
|
|
31
33
|
@delivery_method_name = data['delivery']['methodName']
|
32
34
|
@delivery_status_name = data['delivery']['statusName']
|
33
35
|
@delivery_url = data['delivery']['url']
|
34
|
-
@name = @created
|
36
|
+
@name = DateTime.parse(@created).strftime("%Y-%m-%d %H:%M:%S")
|
35
37
|
end
|
36
38
|
end
|
37
39
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
module MMS
|
2
4
|
|
3
5
|
class Resource::Snapshot < Resource
|
@@ -52,7 +54,7 @@ module MMS
|
|
52
54
|
@created_increment = data['created']['increment']
|
53
55
|
@expires = data['expires']
|
54
56
|
@parts = data['parts']
|
55
|
-
@name = @created_date
|
57
|
+
@name = DateTime.parse(@created_date).strftime("%Y-%m-%d %H:%M:%S")
|
56
58
|
end
|
57
59
|
end
|
58
60
|
end
|
data/lib/mms/version.rb
CHANGED