idcfcloud 0.2.2 → 1.0.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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +12 -0
- data/.rubocop.yml +12 -2
- data/README.md +15 -4
- data/idcfcloud.gemspec +7 -8
- data/lib/idcf/cli/command/morio.rb +4 -4
- data/lib/idcf/cli/conf/const.rb +32 -29
- data/lib/idcf/cli/controller/base.rb +50 -23
- data/lib/idcf/cli/controller/cdn.rb +3 -0
- data/lib/idcf/cli/controller/compute.rb +15 -1
- data/lib/idcf/cli/controller/extend/command.rb +25 -2
- data/lib/idcf/cli/controller/extend/search_module.rb +0 -10
- data/lib/idcf/cli/controller/extend/util.rb +12 -0
- data/lib/idcf/cli/controller/include/client.rb +1 -1
- data/lib/idcf/cli/controller/include/command.rb +1 -1
- data/lib/idcf/cli/controller/include/util.rb +3 -5
- data/lib/idcf/cli/controller/include/validate.rb +1 -1
- data/lib/idcf/cli/extend/configure.rb +2 -4
- data/lib/idcf/cli/extend/update.rb +20 -20
- data/lib/idcf/cli/extend/update_file.rb +3 -3
- data/lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb +25 -9
- data/lib/idcf/cli/gem_ext/thor/init_util.rb +6 -3
- data/lib/idcf/cli/index.rb +17 -5
- data/lib/idcf/cli/lib/api.rb +5 -4
- data/lib/idcf/cli/lib/configure.rb +2 -2
- data/lib/idcf/cli/lib/convert/filter/field_filter.rb +9 -12
- data/lib/idcf/cli/lib/convert/filter/json_path_filter.rb +1 -1
- data/lib/idcf/cli/lib/convert/formatter/base.rb +1 -2
- data/lib/idcf/cli/lib/convert/formatter/csv_format.rb +15 -32
- data/lib/idcf/cli/lib/convert/formatter/json_format.rb +1 -1
- data/lib/idcf/cli/lib/convert/formatter/table_format.rb +2 -2
- data/lib/idcf/cli/lib/convert/formatter/xml_format.rb +1 -1
- data/lib/idcf/cli/lib/convert/helper.rb +16 -5
- data/lib/idcf/cli/lib/document.rb +42 -0
- data/lib/idcf/cli/lib/util/cli_file.rb +1 -1
- data/lib/idcf/cli/lib/util/cli_logger.rb +3 -3
- data/lib/idcf/cli/lib/util/ini_conf.rb +2 -2
- data/lib/idcf/cli/lib/util/input.rb +40 -5
- data/lib/idcf/cli/lib/util/yml_conf.rb +1 -1
- data/lib/idcf/cli/service/base.rb +6 -6
- data/lib/idcf/cli/service/ilb/base_server_for_protocol.rb +22 -18
- data/lib/idcf/cli/validate/custom/month_check_validator.rb +1 -1
- data/lib/idcf/cli/validate/custom/require_relation_validator.rb +2 -2
- data/lib/idcf/cli/validate/define/base.rb +3 -2
- data/lib/idcf/cli/version.rb +1 -1
- metadata +45 -44
@@ -5,20 +5,29 @@ module Idcf
|
|
5
5
|
# input
|
6
6
|
class Input
|
7
7
|
class << self
|
8
|
+
# qa
|
9
|
+
#
|
10
|
+
# @param title [String]
|
11
|
+
# @param setting [Hash]
|
12
|
+
# @param nd [String]
|
13
|
+
# @return [String]
|
8
14
|
def qa(title, setting, nd = '')
|
9
15
|
loop do
|
10
|
-
v
|
11
|
-
|
12
|
-
set_s = v.empty? ? '' : "(#{v.join('/')})"
|
13
|
-
puts "#{title}#{set_s}[#{nd.empty? ? 'NONE' : nd}]"
|
16
|
+
v = qa_setting_list(setting)
|
17
|
+
qa_puts_question(title, nd, v)
|
14
18
|
result = qa_answer_input(v, nd)
|
15
19
|
return result unless result.empty?
|
16
20
|
end
|
17
21
|
end
|
18
22
|
|
23
|
+
# qa_answer_input
|
24
|
+
#
|
25
|
+
# @param list [Array]
|
26
|
+
# @param nd [String]
|
27
|
+
# @return [String]
|
19
28
|
def qa_answer_input(list, nd = '')
|
20
29
|
loop do
|
21
|
-
res
|
30
|
+
res = STDIN.gets.strip
|
22
31
|
result = res.empty? ? nd : res
|
23
32
|
return result if qa_answer?(result, list)
|
24
33
|
puts "from this [#{list.join('/')}]"
|
@@ -28,6 +37,32 @@ module Idcf
|
|
28
37
|
|
29
38
|
protected
|
30
39
|
|
40
|
+
# qa_puts_question
|
41
|
+
#
|
42
|
+
# @param title [String]
|
43
|
+
# @param nd [String]
|
44
|
+
# @param set_list [Array]
|
45
|
+
# @return nil
|
46
|
+
def qa_puts_question(title, nd, set_list)
|
47
|
+
set_s = set_list.blank? ? '' : "(#{set_list.join('/')})"
|
48
|
+
puts "#{title}#{set_s}[#{nd.empty? ? 'NONE' : nd}]"
|
49
|
+
nil
|
50
|
+
end
|
51
|
+
|
52
|
+
# qa_setting_list
|
53
|
+
#
|
54
|
+
# @param setting [Hash]
|
55
|
+
# @return [Array]
|
56
|
+
def qa_setting_list(setting)
|
57
|
+
v = setting.class == Hash ? setting[:list] : nil
|
58
|
+
v.nil? ? [] : v
|
59
|
+
end
|
60
|
+
|
61
|
+
# qa_answer?
|
62
|
+
#
|
63
|
+
# @param val [String]
|
64
|
+
# @param list [Array]
|
65
|
+
# @return [Boolean]
|
31
66
|
def qa_answer?(val, list)
|
32
67
|
return true if list.nil? || list.empty?
|
33
68
|
return true if Regexp.new("\\A(#{list.join('|')})\\Z") =~ val
|
@@ -8,9 +8,9 @@ module Idcf
|
|
8
8
|
ARG_TYPE_OPT = :opt
|
9
9
|
ARG_TYPE_REST = :rest
|
10
10
|
HELP_FORMAT = {
|
11
|
-
ARG_TYPE_REQ => '
|
12
|
-
ARG_TYPE_OPT => '[
|
13
|
-
ARG_TYPE_REST => '[
|
11
|
+
ARG_TYPE_REQ => '<%<name>s>',
|
12
|
+
ARG_TYPE_OPT => '[%<name>s]',
|
13
|
+
ARG_TYPE_REST => '[%<name>s ...]'
|
14
14
|
}.freeze
|
15
15
|
attr_reader :last_command, :last_command_args
|
16
16
|
include Idcf::Cli::Lib::Include::RecurringCalling
|
@@ -51,7 +51,7 @@ module Idcf
|
|
51
51
|
valid_params.each do |param|
|
52
52
|
f = HELP_FORMAT[param[0]]
|
53
53
|
next if f.nil?
|
54
|
-
cp << format(f, param[1])
|
54
|
+
cp << format(f, name: param[1])
|
55
55
|
end
|
56
56
|
cp.join(' ')
|
57
57
|
end
|
@@ -72,7 +72,7 @@ module Idcf
|
|
72
72
|
# @return Boolean
|
73
73
|
def target_param?(name)
|
74
74
|
val = name.to_s
|
75
|
-
exclusion_list = %w
|
75
|
+
exclusion_list = %w[api o]
|
76
76
|
return false if exclusion_list.include?(val)
|
77
77
|
return false if val[0] == '_'
|
78
78
|
true
|
@@ -107,7 +107,7 @@ module Idcf
|
|
107
107
|
opt_cnt = method_option_cnt(param)
|
108
108
|
|
109
109
|
min = p_cnt - opt_cnt
|
110
|
-
msg = format('Argument:
|
110
|
+
msg = format('Argument: %<arg>s', arg: self.class.make_param_s)
|
111
111
|
cli_error msg unless arg_size.between?(min, p_cnt)
|
112
112
|
true
|
113
113
|
end
|
@@ -12,15 +12,15 @@ module Idcf
|
|
12
12
|
#
|
13
13
|
# @param api [Idcf::Ilb::Lib::Api]
|
14
14
|
# @param o [Hash] options
|
15
|
-
# @
|
16
|
-
# @
|
17
|
-
# @
|
18
|
-
# @
|
15
|
+
# @param lb_id [String]
|
16
|
+
# @param protocol [Stirng] http
|
17
|
+
# @param protocol_port [int] 80
|
18
|
+
# @param params [Hash] {ipaddress: '0.0.0.0', port: 80}
|
19
19
|
def do(api, o, lb_id, protocol, protocol_port, params)
|
20
20
|
@api = api
|
21
21
|
@options = o
|
22
22
|
lb = search_lb(lbs, lb_id)
|
23
|
-
config = search_config(lb, protocol, protocol_port)
|
23
|
+
config = search_config(lb['configs'], protocol, protocol_port)
|
24
24
|
|
25
25
|
if config.nil?
|
26
26
|
not_param = o[:protocol].nil? ? 'conf_id' : 'protocol'
|
@@ -64,20 +64,19 @@ module Idcf
|
|
64
64
|
|
65
65
|
# config search
|
66
66
|
#
|
67
|
-
# @param
|
68
|
-
# @param
|
67
|
+
# @param configs [Hash]
|
68
|
+
# @param protocol [String]
|
69
|
+
# @param p_port [String]
|
69
70
|
# @return Hash
|
70
71
|
# @raise
|
71
|
-
def search_config(
|
72
|
-
|
72
|
+
def search_config(configs, protocol, p_port)
|
73
|
+
result = nil
|
74
|
+
configs.each do |v|
|
73
75
|
next unless target_config?(v, protocol, p_port)
|
74
|
-
|
75
|
-
|
76
|
-
cli_error msg
|
77
|
-
end
|
78
|
-
return v
|
76
|
+
result = v
|
77
|
+
break
|
79
78
|
end
|
80
|
-
|
79
|
+
result
|
81
80
|
end
|
82
81
|
|
83
82
|
# is target config
|
@@ -86,9 +85,14 @@ module Idcf
|
|
86
85
|
# @param protocol [String]
|
87
86
|
# @param p_port [String]
|
88
87
|
# @return boolean
|
89
|
-
|
90
|
-
|
91
|
-
|
88
|
+
# @raise
|
89
|
+
def target_config?(config, protocol, p_port)
|
90
|
+
unless config['frontend_protocol'] == protocol && config['port'].to_s == p_port.to_s
|
91
|
+
return false
|
92
|
+
end
|
93
|
+
return true if config['state'].casecmp('running').zero?
|
94
|
+
msg = 'The operation is impossible because the target is currently being processed'
|
95
|
+
cli_error msg
|
92
96
|
end
|
93
97
|
end
|
94
98
|
end
|
@@ -7,7 +7,7 @@ module Idcf
|
|
7
7
|
# require relation validator
|
8
8
|
class RequireRelationValidator < ActiveModel::EachValidator
|
9
9
|
MESSAGES = {
|
10
|
-
message: 'A related parameter isn\'t input. (
|
10
|
+
message: 'A related parameter isn\'t input. (%<msg>s)'
|
11
11
|
}.freeze
|
12
12
|
|
13
13
|
def validate(record)
|
@@ -16,7 +16,7 @@ module Idcf
|
|
16
16
|
nones = make_nones(record)
|
17
17
|
return if nones.empty?
|
18
18
|
|
19
|
-
msg = MESSAGES[:message]
|
19
|
+
msg = format(MESSAGES[:message], msg: nones.join('/'))
|
20
20
|
record.errors.add(nones.first, msg, {})
|
21
21
|
end
|
22
22
|
|
@@ -16,12 +16,13 @@ module Idcf
|
|
16
16
|
:no_ssl,
|
17
17
|
:no_vssl,
|
18
18
|
:json_path,
|
19
|
-
:fields
|
19
|
+
:fields,
|
20
|
+
:version
|
20
21
|
|
21
22
|
validates :output,
|
22
23
|
allow_blank: true,
|
23
24
|
inclusion: {
|
24
|
-
in: %w
|
25
|
+
in: %w[table json xml csv],
|
25
26
|
message: 'from this [table/json/xml/csv]'
|
26
27
|
}
|
27
28
|
|
data/lib/idcf/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: idcfcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IDC Frontier Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,157 +119,157 @@ dependencies:
|
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: 4.2.3
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
122
|
+
name: builder
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
125
|
- - "~>"
|
126
126
|
- !ruby/object:Gem::Version
|
127
|
-
version: '3.
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 3.0.0
|
127
|
+
version: '3.1'
|
131
128
|
type: :runtime
|
132
129
|
prerelease: false
|
133
130
|
version_requirements: !ruby/object:Gem::Requirement
|
134
131
|
requirements:
|
135
132
|
- - "~>"
|
136
133
|
- !ruby/object:Gem::Version
|
137
|
-
version: '3.
|
138
|
-
- - ">="
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: 3.0.0
|
134
|
+
version: '3.1'
|
141
135
|
- !ruby/object:Gem::Dependency
|
142
|
-
name:
|
136
|
+
name: CFPropertyList
|
143
137
|
requirement: !ruby/object:Gem::Requirement
|
144
138
|
requirements:
|
145
139
|
- - "~>"
|
146
140
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
141
|
+
version: 2.3.5
|
148
142
|
type: :runtime
|
149
143
|
prerelease: false
|
150
144
|
version_requirements: !ruby/object:Gem::Requirement
|
151
145
|
requirements:
|
152
146
|
- - "~>"
|
153
147
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
148
|
+
version: 2.3.5
|
155
149
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
150
|
+
name: facter
|
157
151
|
requirement: !ruby/object:Gem::Requirement
|
158
152
|
requirements:
|
159
153
|
- - "~>"
|
160
154
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
155
|
+
version: 2.5.1
|
162
156
|
type: :runtime
|
163
157
|
prerelease: false
|
164
158
|
version_requirements: !ruby/object:Gem::Requirement
|
165
159
|
requirements:
|
166
160
|
- - "~>"
|
167
161
|
- !ruby/object:Gem::Version
|
168
|
-
version:
|
162
|
+
version: 2.5.1
|
169
163
|
- !ruby/object:Gem::Dependency
|
170
|
-
name:
|
164
|
+
name: idcf-faraday_middleware
|
171
165
|
requirement: !ruby/object:Gem::Requirement
|
172
166
|
requirements:
|
173
167
|
- - "~>"
|
174
168
|
- !ruby/object:Gem::Version
|
175
|
-
version:
|
176
|
-
- - ">="
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
version: 1.0.0
|
169
|
+
version: 0.0.2
|
179
170
|
type: :runtime
|
180
171
|
prerelease: false
|
181
172
|
version_requirements: !ruby/object:Gem::Requirement
|
182
173
|
requirements:
|
183
174
|
- - "~>"
|
184
175
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
186
|
-
- - ">="
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: 1.0.0
|
176
|
+
version: 0.0.2
|
189
177
|
- !ruby/object:Gem::Dependency
|
190
|
-
name:
|
178
|
+
name: idcf-json_hyper_schema
|
191
179
|
requirement: !ruby/object:Gem::Requirement
|
192
180
|
requirements:
|
193
181
|
- - "~>"
|
194
182
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0.2.
|
183
|
+
version: 0.2.0
|
196
184
|
type: :runtime
|
197
185
|
prerelease: false
|
198
186
|
version_requirements: !ruby/object:Gem::Requirement
|
199
187
|
requirements:
|
200
188
|
- - "~>"
|
201
189
|
- !ruby/object:Gem::Version
|
202
|
-
version: 0.2.
|
190
|
+
version: 0.2.0
|
203
191
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
192
|
+
name: inifile
|
205
193
|
requirement: !ruby/object:Gem::Requirement
|
206
194
|
requirements:
|
207
195
|
- - "~>"
|
208
196
|
- !ruby/object:Gem::Version
|
209
|
-
version:
|
197
|
+
version: '3.0'
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 3.0.0
|
210
201
|
type: :runtime
|
211
202
|
prerelease: false
|
212
203
|
version_requirements: !ruby/object:Gem::Requirement
|
213
204
|
requirements:
|
214
205
|
- - "~>"
|
215
206
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
207
|
+
version: '3.0'
|
208
|
+
- - ">="
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: 3.0.0
|
217
211
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
212
|
+
name: jsonpath
|
219
213
|
requirement: !ruby/object:Gem::Requirement
|
220
214
|
requirements:
|
221
215
|
- - "~>"
|
222
216
|
- !ruby/object:Gem::Version
|
223
|
-
version: 0.
|
217
|
+
version: 0.8.10
|
224
218
|
type: :runtime
|
225
219
|
prerelease: false
|
226
220
|
version_requirements: !ruby/object:Gem::Requirement
|
227
221
|
requirements:
|
228
222
|
- - "~>"
|
229
223
|
- !ruby/object:Gem::Version
|
230
|
-
version: 0.
|
224
|
+
version: 0.8.10
|
231
225
|
- !ruby/object:Gem::Dependency
|
232
|
-
name:
|
226
|
+
name: kosi
|
233
227
|
requirement: !ruby/object:Gem::Requirement
|
234
228
|
requirements:
|
235
229
|
- - "~>"
|
236
230
|
- !ruby/object:Gem::Version
|
237
|
-
version: 0
|
231
|
+
version: '1.0'
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 1.0.0
|
238
235
|
type: :runtime
|
239
236
|
prerelease: false
|
240
237
|
version_requirements: !ruby/object:Gem::Requirement
|
241
238
|
requirements:
|
242
239
|
- - "~>"
|
243
240
|
- !ruby/object:Gem::Version
|
244
|
-
version: 0
|
241
|
+
version: '1.0'
|
242
|
+
- - ">="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: 1.0.0
|
245
245
|
- !ruby/object:Gem::Dependency
|
246
|
-
name:
|
246
|
+
name: open_uri_redirections
|
247
247
|
requirement: !ruby/object:Gem::Requirement
|
248
248
|
requirements:
|
249
249
|
- - "~>"
|
250
250
|
- !ruby/object:Gem::Version
|
251
|
-
version: 2.
|
251
|
+
version: 0.2.1
|
252
252
|
type: :runtime
|
253
253
|
prerelease: false
|
254
254
|
version_requirements: !ruby/object:Gem::Requirement
|
255
255
|
requirements:
|
256
256
|
- - "~>"
|
257
257
|
- !ruby/object:Gem::Version
|
258
|
-
version: 2.
|
258
|
+
version: 0.2.1
|
259
259
|
- !ruby/object:Gem::Dependency
|
260
|
-
name:
|
260
|
+
name: thor
|
261
261
|
requirement: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
263
|
- - "~>"
|
264
264
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
265
|
+
version: 0.19.4
|
266
266
|
type: :runtime
|
267
267
|
prerelease: false
|
268
268
|
version_requirements: !ruby/object:Gem::Requirement
|
269
269
|
requirements:
|
270
270
|
- - "~>"
|
271
271
|
- !ruby/object:Gem::Version
|
272
|
-
version:
|
272
|
+
version: 0.19.4
|
273
273
|
description: IDCF Cli
|
274
274
|
email: []
|
275
275
|
executables:
|
@@ -328,6 +328,7 @@ files:
|
|
328
328
|
- lib/idcf/cli/lib/convert/formatter/table_format.rb
|
329
329
|
- lib/idcf/cli/lib/convert/formatter/xml_format.rb
|
330
330
|
- lib/idcf/cli/lib/convert/helper.rb
|
331
|
+
- lib/idcf/cli/lib/document.rb
|
331
332
|
- lib/idcf/cli/lib/include/recurring_calling.rb
|
332
333
|
- lib/idcf/cli/lib/util/cli_file.rb
|
333
334
|
- lib/idcf/cli/lib/util/cli_logger.rb
|