pi 0.1.28 → 0.1.29
Sign up to get free protection for your applications and to get access to all the features.
- data/README +393 -525
- data/lib/cli/commands/dns.rb +37 -5
- data/lib/cli/commands/user.rb +1 -0
- data/lib/cli/runner.rb +7 -3
- data/lib/cli/usage.rb +1 -3
- data/lib/cli/version.rb +1 -1
- data/lib/pi/client.rb +61 -0
- metadata +4 -4
data/lib/cli/commands/dns.rb
CHANGED
@@ -134,11 +134,20 @@ module PI::Cli::Command
|
|
134
134
|
err"The dns zone id is not exist!" if zoneid_flag != true
|
135
135
|
end
|
136
136
|
|
137
|
-
projects = client.projects
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
137
|
+
projects = client.projects
|
138
|
+
if projectid
|
139
|
+
projectid_flag = false
|
140
|
+
projects.each do |p|
|
141
|
+
projectid_flag = true if p[:id].to_s == projectid
|
142
|
+
end
|
143
|
+
err"Invalid project id: #{projectid}" if projectid_flag != true
|
144
|
+
else
|
145
|
+
projectname = ask"Project name", :choices => projects.collect { |p| p[:name] }, :indexed => true
|
146
|
+
projects.each do |p|
|
147
|
+
projectid = p[:id] if p[:name] == projectname
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
142
151
|
unless zoneid
|
143
152
|
zonename = ask"Select dns zone", :choices => dns_zone.collect { |d| d[:name] }, :indexed => true
|
144
153
|
dns_zone.each do |d|
|
@@ -263,6 +272,29 @@ module PI::Cli::Command
|
|
263
272
|
display "OK".green
|
264
273
|
end
|
265
274
|
|
275
|
+
def dns_records(dnsid=nil)
|
276
|
+
client.check_login_status
|
277
|
+
unless dnsid
|
278
|
+
dnsid = choose_dnsid
|
279
|
+
end
|
280
|
+
record_info = Array.new
|
281
|
+
targets = client.usable_dns_target(dnsid)
|
282
|
+
targets.each do |t|
|
283
|
+
t[:records].each do |v|
|
284
|
+
i = 0
|
285
|
+
record_info.push({ :id => v[:id],:targetName => t[:targetName],:view => v[:view]}) if not t[:records].empty?
|
286
|
+
i = i + 1
|
287
|
+
end
|
288
|
+
end
|
289
|
+
record_info_table = table do |t|
|
290
|
+
t.headings = 'Record ID', 'Target Name', 'View Name'
|
291
|
+
record_info.each do |s|
|
292
|
+
t << [s[:id],s[:targetName], s[:view]]
|
293
|
+
end
|
294
|
+
end
|
295
|
+
display record_info_table
|
296
|
+
end
|
297
|
+
|
266
298
|
private
|
267
299
|
|
268
300
|
def do_unmap_dns(appid, url)
|
data/lib/cli/commands/user.rb
CHANGED
data/lib/cli/runner.rb
CHANGED
@@ -242,7 +242,7 @@ class PI::Cli::Runner
|
|
242
242
|
set_cmd(:apps, :restart_app, @args.size == 1 ? 1 : 0)
|
243
243
|
|
244
244
|
when 'scale-app'
|
245
|
-
usage('pi scale-app [appid] [--instance N]
|
245
|
+
usage('pi scale-app [appid] [--instance N] or pi scale-app <appname> <--target TARGET> [--instance N]')
|
246
246
|
set_cmd(:apps, :scale_app, @args.size == 1 ? 1 : 0)
|
247
247
|
|
248
248
|
when 'update-app'
|
@@ -282,11 +282,11 @@ class PI::Cli::Runner
|
|
282
282
|
set_cmd(:services, :app_service, @args.size == 1 ? 1 : 0)
|
283
283
|
|
284
284
|
when 'bind-service'
|
285
|
-
usage('pi bind-service [appid] [--service SERVICE]
|
285
|
+
usage('pi bind-service [appid] [--service SERVICE] or pi bind-service <appname> <--target TARGET> [--service SERVICE]')
|
286
286
|
set_cmd(:services, :bind_service, @args.size == 1 ? 1 : 0)
|
287
287
|
|
288
288
|
when 'unbind-service'
|
289
|
-
usage('pi unbind-service [appid] [--service SERVICE]
|
289
|
+
usage('pi unbind-service [appid] [--service SERVICE] or pi unbind-service <appname> <--target TARGET> [--service SERVICE]')
|
290
290
|
set_cmd(:services, :unbind_service, @args.size == 1 ? 1 : 0)
|
291
291
|
|
292
292
|
when 'services'
|
@@ -356,6 +356,10 @@ class PI::Cli::Runner
|
|
356
356
|
when 'register-dns'
|
357
357
|
usage('pi register-dns [dnsid] [--target,--continent,--country]')
|
358
358
|
set_cmd(:dns, :register_dns, @args.size == 1 ? 1 : 0)
|
359
|
+
|
360
|
+
when 'dns-records'
|
361
|
+
usage('pi dns-records [dnsid]')
|
362
|
+
set_cmd(:dns, :dns_records, @args.size == 1 ? 1 : 0)
|
359
363
|
|
360
364
|
when 'deregister-dns'
|
361
365
|
usage('pi deregister-dns [dnsid] [--recordid ID]')
|
data/lib/cli/usage.rb
CHANGED
@@ -62,7 +62,6 @@ Currently available pi commands are:
|
|
62
62
|
restart-app --graceful Restart the application in a graceful mode
|
63
63
|
scale-app [appid] [--instance N] Scale the application instances up or down
|
64
64
|
scale-app <appname> <--target TARGET> [--instance N] Scale the application instances up or down
|
65
|
-
scale-app --graceful Scale the application instances in a graceful mode
|
66
65
|
update-app [appid] [--ver VERSION] Update the application
|
67
66
|
update-app <appname> <--target TARGET> [--ver VERSION] Update the application
|
68
67
|
update-app --graceful Update the application in a graceful mode
|
@@ -84,10 +83,8 @@ Currently available pi commands are:
|
|
84
83
|
app-service <appname> <--target TARGET> Display the binded services for the application
|
85
84
|
bind-service [appid] [--service SERVICE] Bind the services for the application
|
86
85
|
bind-service <appname> <--target TARGET> [--service] Bind the services for the application
|
87
|
-
bind-service --graceful Bind the services for the application in a graceful mode
|
88
86
|
unbind-service [appid] [--service SERVICE] Unbind the services for the application
|
89
87
|
unbind-service <appname> <--target TARGET> [--service] Unbind the services for the application
|
90
|
-
unbind-service --graceful Unbind the services for the application in a graceful mode
|
91
88
|
services List dedicated services
|
92
89
|
service [serviceid] List the connection info for the service
|
93
90
|
export-service [serviceid] Export dedicated service url
|
@@ -106,6 +103,7 @@ Currently available pi commands are:
|
|
106
103
|
unmap-dns <appname> <--target TARGET> [--dns DNS] Unmap the urls for the application
|
107
104
|
dns List the dns
|
108
105
|
zones List the dns zones
|
106
|
+
dns-records [dnsid] List the record info for the registered dns
|
109
107
|
create-dns [dnsname] [--zoneid,--projectid,--desc] Create a new dns
|
110
108
|
register-dns [dnsid] [--target,--continent,--country] Register to target
|
111
109
|
deregister-dns [dnsid] [--recordid ID] Deregister to target
|
data/lib/cli/version.rb
CHANGED
data/lib/pi/client.rb
CHANGED
@@ -125,6 +125,7 @@ class PI::Client
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def delete_project(projectid)
|
128
|
+
projectid = uri_encode(projectid)
|
128
129
|
http_delete("#{PI::PROJECT_PATH}/#{projectid}",'application/json')
|
129
130
|
end
|
130
131
|
|
@@ -134,39 +135,52 @@ class PI::Client
|
|
134
135
|
end
|
135
136
|
|
136
137
|
def delete_binary(binaryid)
|
138
|
+
binaryid = uri_encode(binaryid)
|
137
139
|
http_delete("#{PI::PROJECT_PATH}/binary/#{binaryid}",'application/json')
|
138
140
|
end
|
139
141
|
|
140
142
|
def project_events(projectid)
|
143
|
+
projectid = uri_encode(projectid)
|
141
144
|
json_get("#{PI::PROJECT_PATH}/events/#{projectid}")
|
142
145
|
end
|
143
146
|
|
144
147
|
def project_tags(projectid)
|
148
|
+
projectid = uri_encode(projectid)
|
145
149
|
json_get("#{PI::PROJECT_PATH}/tags/#{projectid}")
|
146
150
|
end
|
147
151
|
|
148
152
|
def project_commits_bytag(projectid,tag)
|
153
|
+
projectid = uri_encode(projectid)
|
154
|
+
tag = uri_encode(tag)
|
149
155
|
json_get("#{PI::PROJECT_PATH}/commitinfo/#{projectid}/#{tag}")
|
150
156
|
end
|
151
157
|
|
152
158
|
def project_commits_bybranch(projectid,branch="master")
|
159
|
+
projectid = uri_encode(projectid)
|
160
|
+
branch = uri_encode(branch)
|
153
161
|
json_get("#{PI::PROJECT_PATH}/commitinfo/branch/#{projectid}/#{branch}")
|
154
162
|
end
|
155
163
|
|
156
164
|
def project_binary(projectid)
|
165
|
+
projectid = uri_encode(projectid)
|
157
166
|
json_get("#{PI::PROJECT_PATH}/binary/list/#{projectid}")
|
158
167
|
end
|
159
168
|
|
160
169
|
def project_binary_existed(projectid,versionname)
|
161
170
|
versionname = uri_encode(versionname)
|
171
|
+
projectid = uri_encode(projectid)
|
162
172
|
http_get("#{PI::PROJECT_PATH}/binary/existed/#{projectid}/#{versionname}")
|
163
173
|
end
|
164
174
|
|
165
175
|
def apps(projectid=0, targetname=nil, pageNum=-1, numPerPage=-1)
|
176
|
+
projectid = uri_encode(projectid)
|
177
|
+
targetname = uri_encode(targetname)
|
166
178
|
json_get("#{PI::PROJECT_PATH}/apps?projectId=#{projectid}&targetName=#{targetname}&pageNum=#{pageNum}&numPerPage=#{numPerPage}")
|
167
179
|
end
|
168
180
|
|
169
181
|
def app_sum(projectid=0, targetname=nil)
|
182
|
+
projectid = uri_encode(projectid)
|
183
|
+
targetname = uri_encode(targetname)
|
170
184
|
http_get("#{PI::PROJECT_PATH}/apps/sum?projectId=#{projectid}&targetName=#{targetname}")
|
171
185
|
end
|
172
186
|
|
@@ -175,6 +189,7 @@ class PI::Client
|
|
175
189
|
#####################################################
|
176
190
|
|
177
191
|
def app_get_byid(appid)
|
192
|
+
appid = uri_encode(appid)
|
178
193
|
json_get("#{PI::APP_PATH}/#{appid}")
|
179
194
|
end
|
180
195
|
|
@@ -185,6 +200,7 @@ class PI::Client
|
|
185
200
|
end
|
186
201
|
|
187
202
|
def app_search_target_is_all(appname)
|
203
|
+
appname = uri_encode(appname)
|
188
204
|
json_get("#{PI::PROJECT_PATH}/apps?appName=#{appname}")
|
189
205
|
end
|
190
206
|
|
@@ -193,6 +209,7 @@ class PI::Client
|
|
193
209
|
end
|
194
210
|
|
195
211
|
def target_memory(targetname)
|
212
|
+
targetname = uri_encode(targetname)
|
196
213
|
http_get("#{PI::APP_PATH}/target/#{targetname}/memory")
|
197
214
|
end
|
198
215
|
|
@@ -201,57 +218,73 @@ class PI::Client
|
|
201
218
|
end
|
202
219
|
|
203
220
|
def delete_app(appid)
|
221
|
+
appid = uri_encode(appid)
|
204
222
|
http_delete("#{PI::APP_PATH}/#{appid}",'application/json')
|
205
223
|
end
|
206
224
|
|
207
225
|
def start_app(appid)
|
226
|
+
appid = uri_encode(appid)
|
208
227
|
json_post("#{PI::APP_PATH}/#{appid}/start",manifest={})
|
209
228
|
end
|
210
229
|
|
211
230
|
def stop_app(appid, graceful)
|
231
|
+
appid = uri_encode(appid)
|
212
232
|
json_post("#{PI::APP_PATH}/#{appid}/stop?graceful=#{graceful}",manifest={})
|
213
233
|
end
|
214
234
|
|
215
235
|
def restart_app(appid, graceful)
|
236
|
+
appid = uri_encode(appid)
|
216
237
|
json_post("#{PI::APP_PATH}/#{appid}/restart?graceful=#{graceful}",manifest={})
|
217
238
|
end
|
218
239
|
|
219
240
|
def scale_app(appid, instance)
|
241
|
+
appid = uri_encode(appid)
|
242
|
+
instance = uri_encode(instance)
|
220
243
|
json_post("#{PI::APP_PATH}/#{appid}/scale?instance=#{instance}", manifest={})
|
221
244
|
end
|
222
245
|
|
223
246
|
def update_app(appid, tag, graceful)
|
247
|
+
tag = uri_encode(tag)
|
248
|
+
appid = uri_encode(appid)
|
224
249
|
json_post("#{PI::APP_PATH}/#{appid}/rollback/#{tag}?graceful=#{graceful}", manifest={})
|
225
250
|
end
|
226
251
|
|
227
252
|
def status(appid)
|
253
|
+
appid = uri_encode(appid)
|
228
254
|
json_get("#{PI::APP_PATH}/#{appid}/monitor")
|
229
255
|
end
|
230
256
|
|
231
257
|
def app_log(appid, filepath, instanceindex)
|
232
258
|
filepath = uri_encode(filepath)
|
259
|
+
appid = uri_encode(appid)
|
260
|
+
instanceindex = uri_encode(instanceindex)
|
233
261
|
http_get("#{PI::APP_PATH}/#{appid}/logs?filePath=#{filepath}&instanceIndex=#{instanceindex}")
|
234
262
|
end
|
235
263
|
|
236
264
|
def app_env(appid)
|
265
|
+
appid = uri_encode(appid)
|
237
266
|
json_get("#{PI::APP_PATH}/#{appid}/env/list")
|
238
267
|
end
|
239
268
|
|
240
269
|
def create_env(appid, manifest={})
|
270
|
+
appid = uri_encode(appid)
|
241
271
|
json_post("#{PI::APP_PATH}/#{appid}/env", manifest)
|
242
272
|
end
|
243
273
|
|
244
274
|
def delete_env(appid, env)
|
245
275
|
env = uri_encode(env)
|
276
|
+
appid = uri_encode(appid)
|
246
277
|
http_delete("#{PI::APP_PATH}/#{appid}/env/#{env}",'application/json')
|
247
278
|
end
|
248
279
|
|
249
280
|
def env_verify(appid, name)
|
250
281
|
name = uri_encode(name)
|
282
|
+
appid = uri_encode(appid)
|
251
283
|
http_get("#{PI::APP_PATH}/#{appid}/env/verify?name=#{name}")
|
252
284
|
end
|
253
285
|
|
254
286
|
def app_debug_info(appid)
|
287
|
+
appid = uri_encode(appid)
|
255
288
|
json_get("#{PI::APP_PATH}/#{appid}/debug")
|
256
289
|
end
|
257
290
|
|
@@ -260,18 +293,23 @@ class PI::Client
|
|
260
293
|
#####################################################
|
261
294
|
|
262
295
|
def usable_services(appid)
|
296
|
+
appid = uri_encode(appid)
|
263
297
|
json_get("#{PI::APP_PATH}/#{appid}/service/usable")
|
264
298
|
end
|
265
299
|
|
266
300
|
def app_service(appid)
|
301
|
+
appid = uri_encode(appid)
|
267
302
|
json_get("#{PI::APP_PATH}/#{appid}/service/bind")
|
268
303
|
end
|
269
304
|
|
270
305
|
def bind_service(appid, manifest={})
|
306
|
+
appid = uri_encode(appid)
|
271
307
|
json_post("#{PI::APP_PATH}/#{appid}/service/bind",manifest)
|
272
308
|
end
|
273
309
|
|
274
310
|
def unbind_service(appid, servicename)
|
311
|
+
appid = uri_encode(appid)
|
312
|
+
servicename = uri_encode(servicename)
|
275
313
|
http_delete("#{PI::APP_PATH}/#{appid}/service/unbind/#{servicename}",'application/json')
|
276
314
|
end
|
277
315
|
|
@@ -280,6 +318,7 @@ class PI::Client
|
|
280
318
|
end
|
281
319
|
|
282
320
|
def service(serviceid)
|
321
|
+
serviceid = uri_encode(serviceid)
|
283
322
|
json_get("#{PI::SERVICE_PATH}/#{serviceid}")
|
284
323
|
end
|
285
324
|
|
@@ -288,30 +327,39 @@ class PI::Client
|
|
288
327
|
end
|
289
328
|
|
290
329
|
def export_service(serviceid)
|
330
|
+
serviceid = uri_encode(serviceid)
|
291
331
|
http_get("#{PI::SERVICE_PATH}/exporturl/#{serviceid}")
|
292
332
|
end
|
293
333
|
|
294
334
|
def check_service(serviceid)
|
335
|
+
serviceid = uri_encode(serviceid)
|
295
336
|
http_get("#{PI::SERVICE_PATH}/check/#{serviceid}")
|
296
337
|
end
|
297
338
|
|
298
339
|
def delete_service(serviceid)
|
340
|
+
serviceid = uri_encode(serviceid)
|
299
341
|
http_delete("#{PI::SERVICE_PATH}/#{serviceid}", 'application/json')
|
300
342
|
end
|
301
343
|
|
302
344
|
def usable_service_target(serviceid)
|
345
|
+
serviceid = uri_encode(serviceid)
|
303
346
|
json_get("#{PI::SERVICE_PATH}/target/usable/#{serviceid}")
|
304
347
|
end
|
305
348
|
|
306
349
|
def service_target(serviceid)
|
350
|
+
serviceid = uri_encode(serviceid)
|
307
351
|
json_get("#{PI::SERVICE_PATH}/servicetarget/#{serviceid}")
|
308
352
|
end
|
309
353
|
|
310
354
|
def register_service(serviceid, targetname, servicetype, manifest={})
|
355
|
+
serviceid = uri_encode(serviceid)
|
356
|
+
targetname = uri_encode(targetname)
|
357
|
+
servicetype = uri_encode(servicetype)
|
311
358
|
json_post("#{PI::SERVICE_PATH}/register/#{targetname}/#{serviceid}?serviceType=#{servicetype}",manifest)
|
312
359
|
end
|
313
360
|
|
314
361
|
def deregister_service(servicetargetid)
|
362
|
+
servicetargetid = uri_encode(servicetargetid)
|
315
363
|
http_delete("#{PI::SERVICE_PATH}/unregister/#{servicetargetid}",'application/json')
|
316
364
|
end
|
317
365
|
|
@@ -320,18 +368,23 @@ class PI::Client
|
|
320
368
|
#####################################################
|
321
369
|
|
322
370
|
def usable_dns(appid)
|
371
|
+
appid = uri_encode(appid)
|
323
372
|
json_get("#{PI::APP_PATH}/#{appid}/url/usable")
|
324
373
|
end
|
325
374
|
|
326
375
|
def app_dns(appid)
|
376
|
+
appid = uri_encode(appid)
|
327
377
|
json_get("#{PI::APP_PATH}/#{appid}/url/map")
|
328
378
|
end
|
329
379
|
|
330
380
|
def map_dns(appid, manifest={})
|
381
|
+
appid = uri_encode(appid)
|
331
382
|
json_post("#{PI::APP_PATH}/#{appid}/url/map", manifest)
|
332
383
|
end
|
333
384
|
|
334
385
|
def unmap_dns(appid, url)
|
386
|
+
appid = uri_encode(appid)
|
387
|
+
url = uri_encode(url)
|
335
388
|
http_delete("#{PI::APP_PATH}/#{appid}/url/unmap/#{url}", 'application/json')
|
336
389
|
end
|
337
390
|
|
@@ -348,14 +401,18 @@ class PI::Client
|
|
348
401
|
end
|
349
402
|
|
350
403
|
def verify_dns(dnsname, zoneid)
|
404
|
+
dnsname = uri_encode(dnsname)
|
405
|
+
zoneid = uri_encode(zoneid)
|
351
406
|
http_get("#{PI::DNS_PATH}/verify?dnsName=#{dnsname}&zoneId=#{zoneid}")
|
352
407
|
end
|
353
408
|
|
354
409
|
def delete_dns(dnsid)
|
410
|
+
dnsid = uri_encode(dnsid)
|
355
411
|
http_delete("#{PI::DNS_PATH}/#{dnsid}",'application/json')
|
356
412
|
end
|
357
413
|
|
358
414
|
def usable_dns_target(dnsid)
|
415
|
+
dnsid = uri_encode(dnsid)
|
359
416
|
json_get("#{PI::DNS_PATH}/dnstarget/#{dnsid}")
|
360
417
|
end
|
361
418
|
|
@@ -364,14 +421,18 @@ class PI::Client
|
|
364
421
|
end
|
365
422
|
|
366
423
|
def dns_country(continents)
|
424
|
+
continents = uri_encode(continents)
|
367
425
|
json_get("#{PI::DNS_PATH}/country/#{continents}")
|
368
426
|
end
|
369
427
|
|
370
428
|
def register_dns(dnsid, target, manifest={})
|
429
|
+
dnsid = uri_encode(dnsid)
|
430
|
+
target = uri_encode(target)
|
371
431
|
json_post("#{PI::DNS_PATH}/view/#{dnsid}/#{target}", manifest)
|
372
432
|
end
|
373
433
|
|
374
434
|
def deregister_dns(recordid)
|
435
|
+
recordid = uri_encode(recordid)
|
375
436
|
http_delete("#{PI::DNS_PATH}/record/#{recordid}",'application/json')
|
376
437
|
end
|
377
438
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 33
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 29
|
10
|
+
version: 0.1.29
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Samsung
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-09-09 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: json_pure
|