mms-api 0.0.3 → 0.0.4
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/bin/mms-api +12 -13
- data/lib/mms/agent.rb +28 -9
- data/lib/mms/resource/cluster.rb +11 -35
- data/lib/mms/resource/group.rb +6 -16
- data/lib/mms/resource/restore_job.rb +2 -1
- data/lib/mms/resource/snapshot.rb +27 -1
- data/lib/mms/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30140add1019a1eeefbbad55e5cacd2589c76157
|
4
|
+
data.tar.gz: b79a0a425bd350be7a362a456f10c61a1f01e489
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69506c6a389147b341450ca1f86a276b6bc81ea8bf1282eec1dbf301c6c9e25e1a348fa52f703e12fb66d8b3a3f629e348311a7c08fe934e08127deaa3c711e9
|
7
|
+
data.tar.gz: ad0578f5dd4bb9e6b0902197b9e258906c6b4b64912a854dd5d7b88bdd2de41cf71804870371f49fd82281aebd0861b26071a7a15f52a7637456983f3af68628
|
data/bin/mms-api
CHANGED
@@ -24,16 +24,16 @@ optparse = OptionParser.new do |opts|
|
|
24
24
|
options[:apikey] = k
|
25
25
|
end
|
26
26
|
|
27
|
+
options[:name] = '.*'
|
28
|
+
opts.on("-n", "--name <string>", "Resource name using regexp") do |n|
|
29
|
+
options[:name] = n
|
30
|
+
end
|
31
|
+
|
27
32
|
options[:limit] = 5
|
28
33
|
opts.on("-l", "--limit <string>", "Limit for result items") do |l|
|
29
34
|
options[:limit] = l.to_i
|
30
35
|
end
|
31
36
|
|
32
|
-
options[:page] = 1
|
33
|
-
opts.on("-p", "--page <string>", "Page number for listing") do |p|
|
34
|
-
options[:page] = p.to_i
|
35
|
-
end
|
36
|
-
|
37
37
|
opts.on("-v", "--version", "Version") do |v|
|
38
38
|
puts "#{name} v#{version}"
|
39
39
|
exit
|
@@ -73,11 +73,10 @@ end
|
|
73
73
|
|
74
74
|
begin
|
75
75
|
ARGV.shift
|
76
|
-
ARGV.push options[:page]
|
77
|
-
ARGV.push options[:limit]
|
78
|
-
|
79
76
|
agent = MMS::Agent.new(options[:username], options[:apikey])
|
77
|
+
|
80
78
|
results = agent.send action.sub('-', '_'), *ARGV
|
79
|
+
results.select! { |resource| !resource.name.match(Regexp.new(options[:name])).nil? }
|
81
80
|
|
82
81
|
rows = []
|
83
82
|
case action
|
@@ -92,9 +91,9 @@ begin
|
|
92
91
|
rows << [cluster.group.name, cluster.name, cluster.shard_name, cluster.replicaset_name, cluster.type_name, cluster.last_heartbeat]
|
93
92
|
end
|
94
93
|
when 'snapshots'
|
95
|
-
heading = ['Group', 'Cluster', 'SnapshotId', 'Complete', 'Created increment', 'Created date', 'Expires']
|
94
|
+
heading = ['Group', 'Cluster', 'SnapshotId', 'Complete', 'Created increment', 'Created date (Name)', 'Expires']
|
96
95
|
results_sorted = results.sort_by { |snapshot| snapshot.created_date }.reverse
|
97
|
-
results_sorted.each do |snapshot|
|
96
|
+
results_sorted.first(options[:limit]).each do |snapshot|
|
98
97
|
rows << [snapshot.cluster.group.name, snapshot.cluster.name, snapshot.id, snapshot.complete, snapshot.created_increment, snapshot.created_date, snapshot.expires]
|
99
98
|
rows << :separator
|
100
99
|
part_count = 0
|
@@ -106,9 +105,9 @@ begin
|
|
106
105
|
rows << :separator
|
107
106
|
end
|
108
107
|
when 'restorejobs', 'restorejobs-create'
|
109
|
-
heading = ['RestoreId', 'SnapshotId / Cluster / Group', 'Created', 'Status', 'Point in time', 'Delivery', 'Restore status']
|
108
|
+
heading = ['RestoreId', 'SnapshotId / Cluster / Group', 'Created (Name)', 'Status', 'Point in time', 'Delivery', 'Restore status']
|
110
109
|
results_sorted = results.sort_by { |job| job.created }.reverse
|
111
|
-
results_sorted.each do |job|
|
110
|
+
results_sorted.first(options[:limit]).each do |job|
|
112
111
|
rows << [job.id, job.snapshot_id, job.created, job.status_name, job.point_in_time, job.delivery_method_name, job.delivery_status_name]
|
113
112
|
rows << ['', "#{job.cluster.name} (#{job.cluster.id})", {:value => '', :colspan => 5}]
|
114
113
|
rows << ['', job.cluster.group.name, {:value => '', :colspan => 5}]
|
@@ -123,6 +122,6 @@ begin
|
|
123
122
|
puts table
|
124
123
|
|
125
124
|
rescue => e
|
126
|
-
puts "
|
125
|
+
puts "Error: `#{e.message}`"
|
127
126
|
exit 1
|
128
127
|
end
|
data/lib/mms/agent.rb
CHANGED
@@ -7,24 +7,43 @@ module MMS
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def groups
|
10
|
-
|
10
|
+
group_list = []
|
11
|
+
MMS::Client.instance.get('/groups').each do |group|
|
12
|
+
group_list.push MMS::Resource::Group.new group['id'], group
|
13
|
+
end
|
14
|
+
group_list
|
11
15
|
end
|
12
16
|
|
13
17
|
def clusters
|
14
|
-
|
18
|
+
cluster_list = []
|
19
|
+
groups.each do |group|
|
20
|
+
cluster_list.concat group.clusters
|
21
|
+
end
|
22
|
+
cluster_list
|
15
23
|
end
|
16
24
|
|
17
|
-
def snapshots
|
18
|
-
|
25
|
+
def snapshots
|
26
|
+
snapshot_list = []
|
27
|
+
clusters.each do |cluster|
|
28
|
+
snapshot_list.concat cluster.snapshots
|
29
|
+
end
|
30
|
+
snapshot_list
|
19
31
|
end
|
20
32
|
|
21
|
-
def restorejobs
|
22
|
-
|
33
|
+
def restorejobs
|
34
|
+
restorejob_list = []
|
35
|
+
clusters.each do |cluster|
|
36
|
+
restorejob_list.concat cluster.restorejobs
|
37
|
+
end
|
38
|
+
restorejob_list
|
23
39
|
end
|
24
40
|
|
25
|
-
def restorejobs_create(group_id, cluster_id, snapshot_id
|
26
|
-
cluster
|
27
|
-
|
41
|
+
def restorejobs_create(group_id, cluster_id, snapshot_id)
|
42
|
+
findGroup(group_id).cluster(cluster_id).snapshot(snapshot_id).create_restorejob
|
43
|
+
end
|
44
|
+
|
45
|
+
def findGroup(id)
|
46
|
+
MMS::Resource::Group.new id
|
28
47
|
end
|
29
48
|
end
|
30
49
|
end
|
data/lib/mms/resource/cluster.rb
CHANGED
@@ -15,52 +15,28 @@ module MMS
|
|
15
15
|
super id, data
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
|
20
|
-
MMS::Resource::Group.get_clusters.each do |cluster|
|
21
|
-
MMS::Client.instance.get('/groups/' + cluster.group.id + '/clusters/' + cluster.id + '/snapshots?pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |snapshot|
|
22
|
-
snapshot_list.push MMS::Resource::Snapshot.new(snapshot['id'], snapshot['clusterId'], snapshot['groupId'], snapshot)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
snapshot_list
|
18
|
+
def snapshot(id)
|
19
|
+
MMS::Resource::Snapshot.new id, self.id, self.group.id
|
26
20
|
end
|
27
21
|
|
28
|
-
def
|
29
|
-
|
30
|
-
MMS::
|
31
|
-
MMS::
|
32
|
-
job_list.push MMS::Resource::RestoreJob.new(job['id'], job['clusterId'], job['groupId'], job)
|
33
|
-
end
|
22
|
+
def snapshots(page = 1, limit = 1000)
|
23
|
+
snapshot_list = []
|
24
|
+
MMS::Client.instance.get('/groups/' + @group.id + '/clusters/' + @id + '/snapshots?pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |snapshot|
|
25
|
+
snapshot_list.push MMS::Resource::Snapshot.new(snapshot['id'], snapshot['clusterId'], snapshot['groupId'], snapshot)
|
34
26
|
end
|
35
|
-
|
27
|
+
snapshot_list
|
36
28
|
end
|
37
29
|
|
38
|
-
def
|
39
|
-
data = {:snapshotId => id}
|
40
|
-
jobs = MMS::Client.instance.post '/groups/' + @group.id + '/clusters/' + @id + '/restoreJobs', data
|
41
|
-
|
42
|
-
if jobs.nil?
|
43
|
-
raise "Cannot create job from snapshot `#{id}`"
|
44
|
-
end
|
45
|
-
|
30
|
+
def restorejobs(page = 1, limit = 1000)
|
46
31
|
job_list = []
|
47
|
-
|
48
|
-
|
49
|
-
jobs.each do |job|
|
50
|
-
_list = restore_jobs.select {|restorejob| restorejob.id == job['id'] }
|
51
|
-
_list.each do |restorejob|
|
52
|
-
begin
|
53
|
-
job_list.push MMS::Resource::RestoreJob.new(restorejob.id, restorejob.cluster.id, restorejob.cluster.group.id)
|
54
|
-
rescue => e
|
55
|
-
puts "load error #{e.message}"
|
56
|
-
end
|
57
|
-
end
|
32
|
+
MMS::Client.instance.get('/groups/' + @group.id + '/clusters/' + @id + '/restoreJobs?pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |job|
|
33
|
+
job_list.push MMS::Resource::RestoreJob.new(job['id'], job['clusterId'], job['groupId'], job)
|
58
34
|
end
|
59
35
|
job_list
|
60
36
|
end
|
61
37
|
|
62
38
|
def _load(id)
|
63
|
-
MMS::Client.instance.get
|
39
|
+
MMS::Client.instance.get '/groups/' + @group.id + '/clusters/' + id.to_s
|
64
40
|
end
|
65
41
|
|
66
42
|
def _from_hash(data)
|
data/lib/mms/resource/group.rb
CHANGED
@@ -12,30 +12,20 @@ module MMS
|
|
12
12
|
super id, data
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def clusters(page = 1, limit = 1000)
|
16
16
|
cluster_list = []
|
17
|
-
|
18
|
-
MMS::
|
19
|
-
cluster_list.push MMS::Resource::Cluster.new(cluster['id'], cluster['groupId'], cluster)
|
20
|
-
end
|
17
|
+
MMS::Client.instance.get('/groups/' + @id + '/clusters?pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |cluster|
|
18
|
+
cluster_list.push MMS::Resource::Cluster.new(cluster['id'], cluster['groupId'], cluster)
|
21
19
|
end
|
22
20
|
cluster_list
|
23
21
|
end
|
24
22
|
|
25
|
-
def
|
26
|
-
MMS::Resource::Cluster.new
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.load_list
|
30
|
-
group_list = []
|
31
|
-
MMS::Client.instance.get('/groups').each do |group|
|
32
|
-
group_list.push MMS::Resource::Group.new(group['id'], group)
|
33
|
-
end
|
34
|
-
group_list
|
23
|
+
def cluster(id)
|
24
|
+
MMS::Resource::Cluster.new id, self.id
|
35
25
|
end
|
36
26
|
|
37
27
|
def _load(id)
|
38
|
-
MMS::Client.instance.get
|
28
|
+
MMS::Client.instance.get '/groups/' + id.to_s
|
39
29
|
end
|
40
30
|
|
41
31
|
def _from_hash(data)
|
@@ -20,7 +20,7 @@ module MMS
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def _load(id)
|
23
|
-
MMS::Client.instance.get
|
23
|
+
MMS::Client.instance.get '/groups/' + @cluster.group.id + '/clusters/' + @cluster.id + '/restoreJobs/' + id.to_s
|
24
24
|
end
|
25
25
|
|
26
26
|
def _from_hash(data)
|
@@ -31,6 +31,7 @@ module MMS
|
|
31
31
|
@delivery_method_name = data['delivery']['methodName']
|
32
32
|
@delivery_status_name = data['delivery']['statusName']
|
33
33
|
@delivery_url = data['delivery']['url']
|
34
|
+
@name = @created
|
34
35
|
end
|
35
36
|
end
|
36
37
|
end
|
@@ -18,7 +18,32 @@ module MMS
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def _load(id)
|
21
|
-
MMS::Client.instance.get
|
21
|
+
MMS::Client.instance.get '/groups/' + @cluster.group.id + '/clusters/' + @cluster.id + '/snapshots/' + id.to_s
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_restorejob
|
25
|
+
data = {:snapshotId => @id}
|
26
|
+
jobs = MMS::Client.instance.post '/groups/' + @cluster.group.id + '/clusters/' + @cluster.id + '/restoreJobs', data
|
27
|
+
|
28
|
+
if jobs.nil?
|
29
|
+
raise "Cannot create job from snapshot `#{self.id}`"
|
30
|
+
end
|
31
|
+
|
32
|
+
job_list = []
|
33
|
+
# work around due to bug in MMS API; cannot read restoreJob using provided info.
|
34
|
+
restore_jobs = @cluster.restorejobs
|
35
|
+
|
36
|
+
jobs.each do |job|
|
37
|
+
_list = restore_jobs.select {|restorejob| restorejob.id == job['id'] }
|
38
|
+
_list.each do |restorejob|
|
39
|
+
begin
|
40
|
+
job_list.push MMS::Resource::RestoreJob.new(restorejob.id, restorejob.cluster.id, restorejob.cluster.group.id)
|
41
|
+
rescue => e
|
42
|
+
puts "load error #{e.message}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
job_list
|
22
47
|
end
|
23
48
|
|
24
49
|
def _from_hash(data)
|
@@ -27,6 +52,7 @@ module MMS
|
|
27
52
|
@created_increment = data['created']['increment']
|
28
53
|
@expires = data['expires']
|
29
54
|
@parts = data['parts']
|
55
|
+
@name = @created_date
|
30
56
|
end
|
31
57
|
end
|
32
58
|
end
|
data/lib/mms/version.rb
CHANGED
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.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cargo Media
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '1.4'
|
22
|
-
type: :
|
22
|
+
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.4.5
|
36
|
-
type: :
|
36
|
+
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|