pi 0.1.33 → 0.1.34

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,8 +1,8 @@
1
1
  module PI::Cli::Command
2
2
  class Dns < Base
3
- include PI::Cli::ChooseHelper
3
+ include PI::Cli::ChooseHelper
4
4
  include PI::Cli::InteractHelper
5
-
5
+
6
6
  def app_dns(appid_or_appname=nil)
7
7
  all_opts = total_opts
8
8
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(target)/i}
@@ -20,8 +20,8 @@ module PI::Cli::Command
20
20
  dns.each do |s|
21
21
  display "#{s}"
22
22
  end
23
- end
24
-
23
+ end
24
+
25
25
  def map_dns(appid_or_appname=nil)
26
26
  all_opts = total_opts
27
27
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(target|dns)/i}
@@ -39,9 +39,9 @@ module PI::Cli::Command
39
39
  appid = (appid == nil ? app[:id] : appid)
40
40
  dns = client.usable_dns(appid)
41
41
  err "No usable dns!" if dns.nil? || dns.empty?
42
- if dnsname
42
+ if dnsname
43
43
  usable_dnsnames = dns.collect { |d| d[:name] }
44
- err "Invalid dns name" unless usable_dnsnames.include?(dnsname)
44
+ err "Invalid dns name" unless usable_dnsnames.include?(dnsname)
45
45
  tmp = dnsname.split(",")
46
46
  manifest = Array.new
47
47
  tmp.each do |t|
@@ -49,22 +49,22 @@ module PI::Cli::Command
49
49
  end
50
50
  else
51
51
  manifest = asks "Select dns, indexed list?", :choices => dns.collect { |d| d[:name] }, :indexed => true
52
- end
52
+ end
53
53
  display "Mapping dns: ",false
54
-
55
- t = Thread.new do
54
+
55
+ t = Thread.new do
56
56
  loop do
57
- display '.', false
57
+ display '.', false
58
58
  sleep (1)
59
59
  break unless t.alive?
60
60
  end
61
61
  end
62
-
62
+
63
63
  client.map_dns(appid,manifest)
64
64
  Thread.kill(t)
65
- display "OK".green
66
- end
67
-
65
+ display "OK".green
66
+ end
67
+
68
68
  def unmap_dns(appid_or_appname=nil)
69
69
  all_opts = total_opts
70
70
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(target|dns)/i}
@@ -76,18 +76,18 @@ module PI::Cli::Command
76
76
  app, appid = choose_app_help_target_not_all(appid_or_appname)
77
77
  appid = (appid == nil ? app[:id] : appid)
78
78
  dns = client.app_dns(appid)
79
- err "No mapped dns!" if dns.nil? || dns.empty?
80
- if dnsname
79
+ err "No mapped dns!" if dns.nil? || dns.empty?
80
+ if dnsname
81
81
  urls = dnsname.split(",")
82
82
  else
83
83
  urls = asks "Select DNS", :choices => dns, :indexed => true
84
84
  end
85
-
85
+
86
86
  urls.each do |url|
87
87
  do_unmap_dns(appid, url)
88
- end
88
+ end
89
89
  end
90
-
90
+
91
91
  def dns
92
92
  all_opts = total_opts
93
93
  all_opts.each_value do |value|
@@ -95,7 +95,7 @@ module PI::Cli::Command
95
95
  end
96
96
  client.check_login_status
97
97
  dns = client.dns
98
- return display "No Services" if dns.nil? || dns.empty?
98
+ return display "No Services" if dns.nil? || dns.empty?
99
99
  return display JSON.pretty_generate(dns) if @options[:json]
100
100
  dns.sort! {|a, b| a[:name] <=> b[:name] }
101
101
  dns_table = table do |t|
@@ -106,7 +106,7 @@ module PI::Cli::Command
106
106
  end
107
107
  display dns_table
108
108
  end
109
-
109
+
110
110
  def zones
111
111
  all_opts = total_opts
112
112
  all_opts.each_value do |value|
@@ -124,7 +124,7 @@ module PI::Cli::Command
124
124
  end
125
125
  display zones_table
126
126
  end
127
-
127
+
128
128
  def create_dns(dnsname=nil)
129
129
  all_opts = total_opts
130
130
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(projectid|desc|zoneid)/i}
@@ -135,9 +135,9 @@ module PI::Cli::Command
135
135
  projectid = @options[:projectid]
136
136
  description = @options[:desc]
137
137
  zoneid = @options[:zoneid]
138
- if dnsname
138
+ if dnsname
139
139
  if not check_name_valid?(dnsname)
140
- err "Invalid dns name '#{dnsname}'."
140
+ err "Invalid dns name '#{dnsname}'."
141
141
  end
142
142
  end
143
143
  dns_zone = client.dns_zone_list
@@ -149,8 +149,8 @@ module PI::Cli::Command
149
149
  end
150
150
  err"The dns zone id is not exist!" if zoneid_flag != true
151
151
  end
152
-
153
- projects = client.projects
152
+
153
+ projects = client.projects
154
154
  if projectid
155
155
  projectid_flag = false
156
156
  projects.each do |p|
@@ -158,12 +158,12 @@ module PI::Cli::Command
158
158
  end
159
159
  err"Invalid project id: #{projectid}" if projectid_flag != true
160
160
  else
161
- projectname = ask"Project name", :choices => projects.collect { |p| p[:name] }, :indexed => true
161
+ projectname = ask"Project name", :choices => projects.collect { |p| p[:name] }, :indexed => true
162
162
  projects.each do |p|
163
163
  projectid = p[:id] if p[:name] == projectname
164
- end
165
- end
166
-
164
+ end
165
+ end
166
+
167
167
  unless zoneid
168
168
  zonename = ask"Select dns zone", :choices => dns_zone.collect { |d| d[:name] }, :indexed => true
169
169
  dns_zone.each do |d|
@@ -171,24 +171,24 @@ module PI::Cli::Command
171
171
  end
172
172
  err"Invalid zone" if zoneid.nil?
173
173
  end
174
-
174
+
175
175
  loop{
176
176
  dnsname = ask"DNS name" unless dnsname
177
177
  tmp = client.verify_dns(dnsname, zoneid)
178
178
  if not check_name_valid?(dnsname)
179
- display "Invalid dns name '#{dnsname}'."
179
+ display "Invalid dns name '#{dnsname}'."
180
180
  dnsname =nil
181
181
  next
182
182
  else if tmp[1] == "false"
183
- display "DNS '#{dnsname}' already exists."
183
+ display "DNS '#{dnsname}' already exists."
184
184
  dnsname =nil
185
185
  next
186
186
  else
187
187
  break
188
188
  end
189
189
  end
190
- }
191
- # dnsname = dnsname.concat(".#{zone}")
190
+ }
191
+ # dnsname = dnsname.concat(".#{zone}")
192
192
  description = ask"Description", :default => nil unless description
193
193
  manifest = {
194
194
  :name => dnsname,
@@ -197,9 +197,9 @@ module PI::Cli::Command
197
197
  :bak => description
198
198
  }
199
199
  client.create_dns(manifest)
200
- display"OK".green
200
+ display"OK".green
201
201
  end
202
-
202
+
203
203
  def delete_dns(dnsid=nil)
204
204
  all_opts = total_opts
205
205
  all_opts.each_value do |value|
@@ -212,7 +212,7 @@ module PI::Cli::Command
212
212
  client.delete_dns(dnsid)
213
213
  display"OK".green
214
214
  end
215
-
215
+
216
216
  def register_dns(dnsid=nil)
217
217
  all_opts = total_opts
218
218
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(target|continent|country)/i}
@@ -247,7 +247,7 @@ module PI::Cli::Command
247
247
  display "Select continent: #{continent}"
248
248
  continent = continents.invert["#{continent}"]
249
249
  end
250
- if continent.to_s == "DEFAULT"
250
+ if continent.to_s == "DEFAULT"
251
251
  manifest = {
252
252
  :continentCode => continent,
253
253
  :countryCode => "DEFAULT"
@@ -266,11 +266,11 @@ module PI::Cli::Command
266
266
  :continentCode => continent,
267
267
  :countryCode => country
268
268
  }
269
- end
269
+ end
270
270
  client.register_dns(dnsid, target, manifest)
271
271
  display "OK".green
272
272
  end
273
-
273
+
274
274
  def deregister_dns(dnsid=nil)
275
275
  all_opts = total_opts
276
276
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(recordid)/i}
@@ -299,7 +299,7 @@ module PI::Cli::Command
299
299
  client.deregister_dns(recordid)
300
300
  display "OK".green
301
301
  end
302
-
302
+
303
303
  def dns_records(dnsid=nil)
304
304
  all_opts = total_opts
305
305
  all_opts.each_value do |value|
@@ -326,24 +326,24 @@ module PI::Cli::Command
326
326
  end
327
327
  end
328
328
  display record_info_table
329
- end
329
+ end
330
330
  end
331
-
331
+
332
332
  private
333
-
333
+
334
334
  def do_unmap_dns(appid, url)
335
- display "Unmapping dns '#{url}': ",false
336
- t = Thread.new do
335
+ display "Unmapping dns '#{url}': ",false
336
+ t = Thread.new do
337
337
  loop do
338
- display '.', false
338
+ display '.', false
339
339
  sleep (1)
340
340
  break unless t.alive?
341
341
  end
342
- end
342
+ end
343
343
  client.unmap_dns(appid, url)
344
344
  Thread.kill(t)
345
345
  display "OK".green
346
346
  end
347
-
347
+
348
348
  end
349
349
  end
@@ -4,20 +4,21 @@ module PI::Cli::Command
4
4
  def version
5
5
  say "pi #{PI::Cli::VERSION}"
6
6
  end
7
-
8
- def set_target(target_url)
9
- PI::Cli::Config.store_target(target_url)
10
- if target_url =~ /(https?:\/\/)?staging.samsungcloud.org/
11
- if /^https?/ =~ target_url
12
- target_url = target_url.split("//", 2)
13
- target_url = target_url[1]
14
- end
15
- target_url = "http://api.#{target_url}"
7
+
8
+ def set_target(target_url)
9
+ case target_url
10
+ when "www"
11
+ target_url = "http://api.samsungcloud.org"
12
+ when "staging"
13
+ target_url = "http://api.staging.samsungcloud.org"
14
+ when "qa"
15
+ target_url = "http://api.qa.samsungcloud.org"
16
16
  else
17
- target_url = "http://#{target_url}" unless /^https?/ =~ target_url
17
+
18
18
  end
19
- target_url = target_url.gsub(/\/+$/, '')
19
+ #target_url = target_url.gsub(/\/+$/, '')
20
20
  client = PI::Client.new(target_url)
21
+ PI::Cli::Config.store_target(target_url)
21
22
  end
22
23
 
23
24
  end
@@ -17,42 +17,42 @@ module PI::Cli::Command
17
17
  client.check_login_status
18
18
  user = client.user_info
19
19
  proj_sum = client.project_sum
20
- total_proj = Integer(proj_sum[1])
21
- return display "No Projects" if total_proj == 0
20
+ total_proj = Integer(proj_sum[1])
21
+ return display "No Projects" if total_proj == 0
22
22
  pageNum = -1
23
- numPerPage = -1
23
+ numPerPage = -1
24
24
  if total_proj >= 50
25
- puts "Total projects: #{total_proj}."
26
- numPerPage = nil
25
+ puts "Total projects: #{total_proj}."
26
+ numPerPage = nil
27
27
  loop{
28
28
  numPerPage = ask "Number per page"
29
29
  if not numPerPage =~ /^[1-9]\d*$/
30
- display "Invalid Number! Please input number from 1 to #{total_proj}"
30
+ display "Invalid Number! Please input number from 1 to #{total_proj}"
31
31
  numPerPage =nil
32
32
  next
33
33
  else
34
34
  break
35
35
  end
36
- }
36
+ }
37
37
  numPerPage = numPerPage.to_i
38
38
  maxpage = (total_proj.to_f/numPerPage).ceil
39
39
  loop{
40
40
  pageNum = ask "Page number"
41
41
  if not pageNum =~ /^[1-9]\d*$/
42
- display "Invalid Number! Please input number from 1 to #{maxpage}"
42
+ display "Invalid Number! Please input number from 1 to #{maxpage}"
43
43
  pageNum =nil
44
44
  next
45
45
  else
46
46
  break
47
47
  end
48
- }
49
- pageNum = pageNum.to_i
50
- end
48
+ }
49
+ pageNum = pageNum.to_i
50
+ end
51
51
  projects = client.projects(pageNum, numPerPage)
52
52
  return display "No Projects" if projects.nil? || projects.empty?
53
53
  return display JSON.pretty_generate(projects) if @options[:json]
54
54
  projects.sort! {|a, b| a[:name] <=> b[:name] }
55
- display "\n"
55
+ display "\n"
56
56
  projects_table = table do |t|
57
57
  t.headings = 'ID', 'Name', 'Runtime', 'Framework', 'Git Type','GitUrl', 'Description'
58
58
  projects.each do |project|
@@ -62,30 +62,30 @@ module PI::Cli::Command
62
62
  display projects_table
63
63
  end
64
64
 
65
- def create_project(project=nil)
65
+ def create_project(project=nil)
66
66
  all_opts = total_opts
67
67
  all_opts.each_value do |value|
68
68
  err "Invalid options" if value != nil
69
69
  end
70
- client.check_login_status
70
+ client.check_login_status
71
71
  loop{
72
72
  unless project
73
73
  project = ask "Project Name"
74
74
  err "Project Name required." if project.nil? || project.empty?
75
75
  end
76
76
  if not check_name_valid?(project)
77
- display "Invalid project name '#{project}'."
77
+ display "Invalid project name '#{project}'."
78
78
  project =nil
79
79
  next
80
80
  else if project_exists?(project)
81
- display "Project '#{project}' already exists."
82
- project =nil
81
+ display "Project '#{project}' already exists."
82
+ project =nil
83
83
  next
84
- else
84
+ else
85
85
  break
86
86
  end
87
87
  end
88
- }
88
+ }
89
89
 
90
90
  runtimes = client.runtimes
91
91
  err "No Runtimes" if runtimes.nil? || runtimes.empty?
@@ -98,19 +98,19 @@ module PI::Cli::Command
98
98
  framework = ask "Select Framework", :choices => frameworks, :indexed => true
99
99
  display "Selected Framework: ",false
100
100
  display "#{framework}"
101
-
101
+
102
102
  description = ask "Please enter in the description", :default => nil unless description
103
-
103
+
104
104
  github_info = client.github_info
105
-
106
- if github_info.nil?
105
+
106
+ if github_info.nil?
107
107
  manifest = {
108
108
  :name => "#{project}",
109
109
  :runtime => "#{runtime}",
110
110
  :framework => "#{framework}",
111
111
  :description => "#{description}"
112
112
  }
113
- else
113
+ else
114
114
  repositoryTypes =["cloudpi","github"]
115
115
  repositoryType = ask "Select Repository Type", :choices => repositoryTypes, :indexed => true
116
116
  display "Selected Repository Type: ",false
@@ -119,7 +119,7 @@ module PI::Cli::Command
119
119
  if repositoryType == "github"
120
120
  isNew = "yes"
121
121
  publishTypes =["public","private"]
122
- publishType = ask "Select Publish Type", :choices => publishTypes, :indexed => true
122
+ publishType = ask "Select Publish Type", :choices => publishTypes, :indexed => true
123
123
  display "Selected publish Type: ",false
124
124
  display "#{publishType}"
125
125
  end
@@ -133,17 +133,17 @@ module PI::Cli::Command
133
133
  :publishType => "#{publishType}"
134
134
  }
135
135
  end
136
-
136
+
137
137
  display "Creating project \"#{project}\": ",false
138
-
139
- t = Thread.new do
138
+
139
+ t = Thread.new do
140
140
  loop do
141
- display '.', false
141
+ display '.', false
142
142
  sleep (1)
143
143
  break unless t.alive?
144
144
  end
145
145
  end
146
-
146
+
147
147
  client.create_project(project, manifest)
148
148
  Thread.kill(t)
149
149
  display "OK".green
@@ -160,29 +160,29 @@ module PI::Cli::Command
160
160
  projectid = useproject[:id]
161
161
  end
162
162
  display "Deleting project: ",false
163
-
164
- t = Thread.new do
163
+
164
+ t = Thread.new do
165
165
  loop do
166
- display '.', false
166
+ display '.', false
167
167
  sleep (1)
168
168
  break unless t.alive?
169
169
  end
170
170
  end
171
-
171
+
172
172
  client.delete_project(projectid)
173
173
  Thread.kill(t)
174
174
  display 'OK'.green
175
175
  end
176
-
176
+
177
177
  def upload(projectid=nil)
178
178
  all_opts = total_opts
179
179
  all_opts_except_valid_opts = all_opts.delete_if{ |key,value| key.to_s =~ /(path|ver|desc)/i}
180
180
  all_opts_except_valid_opts.each_value do |value|
181
181
  err "Invalid options" if value != nil
182
182
  end
183
- client.check_login_status
183
+ client.check_login_status
184
184
  path = @options[:path]
185
- if path
185
+ if path
186
186
  err "Not war file or path does not exist!" if not ((path =~ /\.(war)$/) && (File.exists? path))
187
187
  end
188
188
  version = @options[:ver]
@@ -193,37 +193,37 @@ module PI::Cli::Command
193
193
  java_projects.sort! {|a, b| a[:name] <=> b[:name] }
194
194
  if projectid
195
195
  flag = nil
196
- java_projects.each do |j|
196
+ java_projects.each do |j|
197
197
  flag = true if projectid == j[:id].to_s
198
198
  end
199
- err "The project is not found or not a java project! " unless flag
200
- else
199
+ err "The project is not found or not a java project! " unless flag
200
+ else
201
201
  project = ask "Select Project", :choices => java_projects.collect { |j| j[:name] }, :indexed => true
202
202
  display "Selected Project: ",false
203
203
  display "#{project}"
204
204
  project = client.project_search(project)
205
205
  projectid = project[:id]
206
206
  end
207
-
207
+
208
208
  if version
209
209
  err "Invalid version name length. The max length of name is 30" unless check_version_name_valid?(version)
210
- tmp = client.project_binary_existed(projectid, version)
210
+ tmp = client.project_binary_existed(projectid, version)
211
211
  err "Version '#{version}' already exists." if tmp.include?("true")
212
212
  end
213
-
214
- unless path
213
+
214
+ unless path
215
215
  loop{
216
216
  path = ask "Please enter the path of upload war file"
217
217
  if not ((path =~ /\.(war)$/) && (File.exists? path))
218
- display "Not war file or path does not exist!"
218
+ display "Not war file or path does not exist!"
219
219
  path =nil
220
220
  next
221
221
  else
222
222
  break
223
223
  end
224
- }
224
+ }
225
225
  end
226
-
226
+
227
227
  unless version
228
228
  loop{
229
229
  version = ask "Please enter the version"
@@ -237,8 +237,8 @@ module PI::Cli::Command
237
237
  break
238
238
  end
239
239
  }
240
- end
241
-
240
+ end
241
+
242
242
  description = ask "Please enter in the description", :default => nil unless description
243
243
  upload_file = File.new(path, 'rb')
244
244
  manifest = {
@@ -246,17 +246,17 @@ module PI::Cli::Command
246
246
  :fileWAR => upload_file,
247
247
  :versionName => "#{version}",
248
248
  :description => "#{description}"
249
- }
249
+ }
250
250
  display "Uploading \"#{File.basename(path)}\": ",false
251
-
252
- t = Thread.new do
251
+
252
+ t = Thread.new do
253
253
  loop do
254
- display '.', false
254
+ display '.', false
255
255
  sleep (1)
256
256
  break unless t.alive?
257
257
  end
258
258
  end
259
-
259
+
260
260
  client.upload(manifest)
261
261
  Thread.kill(t)
262
262
  display 'OK'.green
@@ -271,16 +271,16 @@ module PI::Cli::Command
271
271
  unless projectid
272
272
  useproject = choose_project
273
273
  projectid = useproject[:id]
274
- end
274
+ end
275
275
  binary = client.project_binary(projectid)
276
- err "No binary!" if binary.nil? || binary.empty?
276
+ err "No binary!" if binary.nil? || binary.empty?
277
277
  binaryname = ask"Select Binary", :choices => binary.collect { |b| b[:versionName] }, :indexed => true
278
278
  display "Selected Binary: ",false
279
- display "#{binaryname}"
279
+ display "#{binaryname}"
280
280
  binaryid = nil
281
281
  binary.each do |b|
282
282
  binaryid = b[:id].to_s if binaryname == b[:versionName]
283
- end
283
+ end
284
284
  client.delete_binary(binaryid)
285
285
  display 'OK'.green
286
286
  end
@@ -294,7 +294,7 @@ module PI::Cli::Command
294
294
  unless projectid
295
295
  useproject = choose_project
296
296
  projectid = useproject[:id]
297
- end
297
+ end
298
298
  events = client.project_events(projectid)
299
299
  return display JSON.pretty_generate(events || []) if @options[:json]
300
300
  return display "No Events." if events.empty?
@@ -350,21 +350,21 @@ module PI::Cli::Command
350
350
  return display JSON.pretty_generate(commits || []) if @options[:json]
351
351
  return display "No Commits" if commits.nil? || commits.empty?
352
352
  commits_table = table do |t|
353
- t.headings = 'CommitId', 'Date', 'Comment'
353
+ t.headings = 'CommitId', 'Date', 'Comment'
354
354
  commits.each do |commit|
355
355
  t << [commit[:commit], commit[:date], commit[:comment]]
356
356
  end
357
357
  end
358
358
  display commits_table
359
359
  end
360
-
361
- private
362
-
360
+
361
+ private
362
+
363
363
  def project_exists?(projectname)
364
364
  project = client.project_search(projectname)
365
- project.nil? ? false : true
365
+ project.nil? ? false : true
366
366
  end
367
-
368
-
369
- end
367
+
368
+
369
+ end
370
370
  end