ibm_sbdtc_rest 0.0.0 → 0.1.0

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.
@@ -1,6 +1,15 @@
1
1
  = ibm_sbdtc_rest
2
2
 
3
- Description goes here.
3
+ Manager Client and REST API Lib for IBM Smart Business Development & Test on the IBM Cloud.
4
+
5
+ API version: 20090403
6
+
7
+ To use this gem, you first need to register an account on https://www.ibm.com/cloud/developer
8
+
9
+ == Usage Example for Manager Client
10
+
11
+ To list all instances:
12
+ ibmcloud_admin list instances
4
13
 
5
14
  == Note on Patches/Pull Requests
6
15
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.1.0
@@ -14,14 +14,156 @@ require 'pp'
14
14
 
15
15
  class IbmCloudAdmin < Thor
16
16
  map "-h" => :help
17
- map "-li" => :list_instances
17
+ map "list" => :list
18
+ map "instance" => :instance
19
+ map "image" => :image
20
+ map "address" => :address
21
+ map "storage" => :storage
22
+ map "request" => :request
23
+ map "key" => :key
18
24
  map "-v" => :version
19
- map "--list_instances" => :list_instances
20
25
 
21
- desc 'list_instances', "list the current instances of IbmCloudAdmin"
22
- def list_instances
23
- server = IbmCloudRest.new
24
- puts JSON.pretty_generate(server.instances)
26
+ desc 'key [key_name] [operation]', "operation for a specific key"
27
+ def key(key_name,operation)
28
+ operation_method = case operation
29
+ when "list" then :get
30
+ else nil
31
+ end
32
+ if operation_method
33
+ request = IbmCloudRest::Instance.new
34
+ json_result=request.send(operation_method.to_sym, key_name)
35
+ puts JSON.pretty_generate(json_result)
36
+ else
37
+ raise 'This operation dos not exists for this object'
38
+ end
39
+ end
40
+
41
+ desc 'request [id] [operation]', "operation for a specific request"
42
+ def request(id,operation)
43
+ operation_method = case operation
44
+ when "list" then :get
45
+ else nil
46
+ end
47
+ if operation_method
48
+ request = IbmCloudRest::Instance.new
49
+ json_result=request.send(operation_method.to_sym, id)
50
+ puts JSON.pretty_generate(json_result)
51
+ else
52
+ raise 'This operation dos not exists for this object'
53
+ end
54
+ end
55
+
56
+ desc 'instance [id] [operation]', "operation for a specific instance"
57
+ def instance(id,operation)
58
+ operation_method = case operation
59
+ when "list" then :get
60
+ else nil
61
+ end
62
+ if operation_method
63
+ instance = IbmCloudRest::Instance.new
64
+ json_result=instance.send(operation_method.to_sym, id)
65
+ puts JSON.pretty_generate(json_result)
66
+ else
67
+ raise 'This operation dos not exists for this object'
68
+ end
69
+ end
70
+
71
+ desc 'storage [id] [operation]', "operation for a specific storage"
72
+ def storage(id,operation)
73
+ operation_method = case operation
74
+ when "list" then :get
75
+ else nil
76
+ end
77
+ if operation_method
78
+ storage = IbmCloudRest::Storage.new
79
+ json_result=storage.send(operation_method.to_sym, id)
80
+ puts JSON.pretty_generate(json_result)
81
+ else
82
+ raise 'This operation does not exists for this object'
83
+ end
84
+ end
85
+
86
+ desc 'address [id] [operation]', "operation for a specific address"
87
+ def address(id,operation)
88
+ operation_method = case operation
89
+ when "list" then :get
90
+ else nil
91
+ end
92
+ if operation_method
93
+ address = IbmCloudRest::Address.new
94
+ json_result=address.send(operation_method.to_sym, id)
95
+ puts JSON.pretty_generate(json_result)
96
+ else
97
+ raise 'This operation dos not exists for this object'
98
+ end
99
+ end
100
+
101
+ desc 'image [id] [operation]', "operation for a specific image"
102
+ def image(id,operation)
103
+ operation_method = case operation
104
+ when "list" then :get
105
+ else nil
106
+ end
107
+ if operation_method
108
+ image = IbmCloudRest::Image.new
109
+ json_result=image.send(operation_method.to_sym, id)
110
+ puts JSON.pretty_generate(json_result)
111
+ else
112
+ raise 'This operation does not exists for this object'
113
+ end
114
+ end
115
+
116
+
117
+ desc 'list [objects]', "list the current objects of IbmCloudAdmin"
118
+ def list(objects='instances')
119
+ list_objects= case objects
120
+ when "images" then :images
121
+ when "instances" then :instances
122
+ when "keys" then :keys
123
+ when "addresses" then :addresses
124
+ when "storages" then :storages
125
+ else nil
126
+ end
127
+ if list_objects
128
+ server = IbmCloudRest.new
129
+ json_result=server.send(list_objects.to_sym)
130
+ #puts JSON.pretty_generate(json_result)
131
+ if objects =~ /instances/
132
+ puts "Instance List"
133
+ puts "----------------------------------------------"
134
+ json_result[objects].each do |e|
135
+ puts "name: "+e["name"]
136
+ puts "id: "+e["id"]
137
+ puts "ip: "+e["ip"]
138
+ puts "hostname: "+e["hostname"]
139
+ puts "software_name: "+e["software"][0]["name"]
140
+ puts "requestId: " +e["requestId"]
141
+ puts "requestName: " +e["requestName"]
142
+ puts "imageId: " +e["imageId"]
143
+ puts "instanceType: " +e["instanceType"]
144
+ puts "status: "+IbmCloudRest::Instance::STATUS[e["status"]]
145
+ puts "expirationTime: "+ Time.at((e["expirationTime"].to_i)/1000).to_s
146
+ puts "----------------------------------------------"
147
+ end
148
+ end
149
+ if objects =~ /images/
150
+ puts "Image List"
151
+ puts "----------------------------------------------"
152
+ json_result[objects].each do |e|
153
+ puts "name: "+e["name"]
154
+ puts "id: "+e["id"]
155
+ puts "description: "+e["description"]
156
+ puts "platform: "+e["platform"]
157
+ puts "supportedInstanceTypes: " +e["supportedInstanceTypes"].join('/')
158
+ puts "state: "+IbmCloudRest::Image::STATES[e["state"]]
159
+ puts "createdTime: "+ Time.at((e["createdTime"].to_i)/1000).to_s
160
+ puts "----------------------------------------------"
161
+ end
162
+ end
163
+
164
+ else
165
+ raise 'This objects does not exists for list command'
166
+ end
25
167
  end
26
168
 
27
169
  desc 'version', "the current version of IbmCloudAdmin"
@@ -35,29 +177,28 @@ class IbmCloudAdmin < Thor
35
177
  desc 'help', 'help output'
36
178
  def help
37
179
  puts %{
38
- Usage: #{$0} /path/to/your/app [options]
39
-
40
- Options:
41
- -g, --generate Run the generate command to build a project
42
- -li, --list_instances List all instances
43
- -j, --just_recipe Run the just_recipe command to only run specified recipes, templates, etc.
44
- -d, --display Instead of running, show the template or recipe body
45
- -r, --recipes Recipes to use
46
- -s, --save Save current set of options
47
- -u, --use Use a saved set of options
48
- --gems Gems to include
180
+ Usage: #{$0} command [parameters]
181
+
182
+ Commands:
183
+ list List objects(instances, images, keys, storage, addresses)
184
+ instance [id] [operation] operation for a special instance
185
+ image [id] [operation] operation for a special image
186
+ storage [id] [operation] operation for a special storage
187
+ address [id] [operation] operation for a special address
188
+ request [id] [operation] operation for a special request
189
+ key [key_name] [operation] operation for a special key
49
190
 
50
191
  IbmCloudAdmin Info:
51
192
  -v, --version Show the IbmCloudAdmin version number and quit.
52
- -l, --list Show the various recipes known to IbmCloudAdmin and quit.
53
193
  -h, --help Show this help message and quit.
54
194
 
55
195
  General Options:
56
196
 
57
197
  Description:
58
- IbmCloudAdmin is used for Ibm Cloud Service.
198
+ ibmcloud_admin is used for IBM Cloud Service.
59
199
 
60
200
  Example:
201
+ ibmcloud_admin list instances
61
202
  }
62
203
  end
63
204
  end
@@ -0,0 +1,19 @@
1
+ module IbmCloudRest
2
+ class Address
3
+ STATES=%w[NEW
4
+ ALLOCATING
5
+ FREE
6
+ ATTACHED
7
+ RELEASING
8
+ RELEASED
9
+ FAILED
10
+ ]
11
+ attr_accessor :uri
12
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/addresses/', uuid_batch_count = 1000)
13
+ @uri = server+base_path
14
+ end
15
+ def get(id)
16
+ IbmCloudRest.get @uri+id.to_s
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module IbmCloudRest
2
+ class Image
3
+ STATES=%w[NEW
4
+ AVAILABLE
5
+ UNAVAILABLE
6
+ DELETED
7
+ CAPTURING
8
+ ]
9
+ attr_accessor :uri
10
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/images/', uuid_batch_count = 1000)
11
+ @uri = server+base_path
12
+ end
13
+ def get(id)
14
+ IbmCloudRest.get @uri+id.to_s
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ module IbmCloudRest
2
+ class Instance
3
+ STATUS=%w[NEW
4
+ PROVISIONING
5
+ FAILED
6
+ REMOVED
7
+ REJECTED
8
+ ACTIVE
9
+ UNKNOWN
10
+ DEPROVISIONING
11
+ RESTARTING
12
+ STARTING
13
+ STOPPING
14
+ STOPPED
15
+ ]
16
+ attr_accessor :uri, :uuid_batch_count, :available_instances
17
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/instances/', uuid_batch_count = 1000)
18
+ @uri = server+base_path
19
+ @uuid_batch_count = uuid_batch_count
20
+ end
21
+ def get(id)
22
+ IbmCloudRest.get @uri+id.to_s
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ module IbmCloudRest
2
+ class Key
3
+ attr_accessor :uri
4
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/keys/', uuid_batch_count = 1000)
5
+ @uri = server+base_path
6
+ end
7
+ def get(id)
8
+ IbmCloudRest.get @uri+id.to_s
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module IbmCloudRest
2
+ class Request
3
+ attr_accessor :uri
4
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/requests/', uuid_batch_count = 1000)
5
+ @uri = server+base_path
6
+ end
7
+ def get(id)
8
+ IbmCloudRest.get @uri+id.to_s
9
+ end
10
+ end
11
+ end
@@ -42,12 +42,33 @@ module IbmCloudRest
42
42
  def default_instance
43
43
  available_instances[:default]
44
44
  end
45
-
45
+
46
+ # Lists all storages on the server
47
+ def storages
48
+ IbmCloudRest.get "#{@uri}/storage"
49
+ end
50
+
51
+ # Lists all addresses on the server
52
+
53
+ def addresses
54
+ IbmCloudRest.get "#{@uri}/addresses"
55
+ end
56
+
57
+ # Lists all keys on the server
58
+ def keys
59
+ IbmCloudRest.get "#{@uri}/keys"
60
+ end
61
+
46
62
  # Lists all instances on the server
47
63
  def instances
48
64
  IbmCloudRest.get "#{@uri}/instances"
49
65
  end
50
66
 
67
+ # Lists all images on the server
68
+ def images
69
+ IbmCloudRest.get "#{@uri}/images"
70
+ end
71
+
51
72
  # Returns a IbmCloudRest::instance for the given name
52
73
  def instance(name)
53
74
  IbmCloudRest::instance.new(self, name)
@@ -0,0 +1,19 @@
1
+ module IbmCloudRest
2
+ class Storage
3
+ STATES=%w[NEW
4
+ CREATING
5
+ DELETING
6
+ DELETED
7
+ UNMOUNTED
8
+ MOUNTED
9
+ FAILED
10
+ ]
11
+ attr_accessor :uri
12
+ def initialize(server = 'https://www.ibm.com', base_path= '/cloud/developer/api/rest/20090403/storage/', uuid_batch_count = 1000)
13
+ @uri = server+base_path
14
+ end
15
+ def get(id)
16
+ IbmCloudRest.get @uri+id.to_s
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibm_sbdtc_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Ruan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-27 00:00:00 +08:00
12
+ date: 2009-12-28 00:00:00 +08:00
13
13
  default_executable: ibmcloud_admin
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency