morpheus-cli 3.3.2.3 → 3.3.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8701d670a60da80458ef5dc574852c5dc070c7e
4
- data.tar.gz: 8b7f01e73bcdc238668b4d643c5976ded6956c2a
3
+ metadata.gz: 23b7256e7bd53616a95b10545533e64cc2968492
4
+ data.tar.gz: 8e7f50f6e32d7f0d203907b033b1c88ff644ffd7
5
5
  SHA512:
6
- metadata.gz: 31882e7b1280de15565ca180788d404dafbfe2b811a42c03c3006466d3f0d25b5ec24fb4cab5ec978b9e78eec2c4c6835463b059e57c957cf308d96f6c0ee3e3
7
- data.tar.gz: 5bfc0364301f53166c3e70f56b9fa16304bf44aa69b75ac750c9a908520fff6f035386799327c06af998cdcd2593b746901aed28e35c284ab4ec8d7a4e6b955b
6
+ metadata.gz: c02866eacbb6104b57f41af564b5a032b659e1029c95a4d59705b6cd91feaba103405a1664fec20c6cda1ab4e668aff08fe0412f464c5d609824360c02c90c7b
7
+ data.tar.gz: 44ca0888b0bb4857ecc52faeb5d38c16cca055507fbc3c89db5cadfc9174933c49b9efd7039873d33412beb1ed562da6a474d987496bf2d42a8bb5f1073733d6
@@ -208,6 +208,7 @@ class Morpheus::Cli::Instances
208
208
 
209
209
  def add(args)
210
210
  options = {}
211
+ options[:create_user] = true
211
212
  optparse = Morpheus::Cli::OptionParser.new do |opts|
212
213
  # opts.banner = subcommand_usage("[type] [name]")
213
214
  opts.banner = subcommand_usage("[name] -c CLOUD -t TYPE")
@@ -220,6 +221,9 @@ class Morpheus::Cli::Instances
220
221
  opts.on( '-t', '--type CODE', "Instance Type" ) do |val|
221
222
  options[:instance_type_code] = val
222
223
  end
224
+ opts.on( '--name NAME', "Instance Name" ) do |val|
225
+ options[:instance_name] = val
226
+ end
223
227
  opts.on("--copies NUMBER", Integer, "Number of copies to provision") do |val|
224
228
  options[:copies] = val.to_i
225
229
  end
@@ -232,6 +236,12 @@ class Morpheus::Cli::Instances
232
236
  # opts.on('-L', "--lb", "Enable Load Balancer") do
233
237
  # options[:enable_load_balancer] = true
234
238
  # end
239
+ opts.on("--create-user on|off", String, "User Config: Create Your User. Default is on") do |val|
240
+ options[:create_user] = !['false','off','0'].include?(val.to_s)
241
+ end
242
+ opts.on("--user-group USERGROUP", String, "User Config: User Group") do |val|
243
+ options[:user_group_id] = val
244
+ end
235
245
  opts.on("--shutdown-days NUMBER", Integer, "Automation: Shutdown Days") do |val|
236
246
  options[:expire_days] = val.to_i
237
247
  end
@@ -242,6 +252,9 @@ class Morpheus::Cli::Instances
242
252
  options[:create_backup] = ['on','true','1'].include?(val.to_s.downcase) ? 'on' : 'off'
243
253
  end
244
254
  build_common_options(opts, options, [:options, :payload, :json, :dry_run, :remote, :quiet])
255
+ opts.footer = "Create a new instance." + "\n" +
256
+ "[name] is required. This is the new instance name." + "\n" +
257
+ "The available options vary by --type."
245
258
  end
246
259
 
247
260
  optparse.parse!(args)
@@ -264,24 +277,13 @@ class Morpheus::Cli::Instances
264
277
  payload = nil
265
278
  if options[:payload]
266
279
  payload = options[:payload]
280
+ # support -O OPTION switch on top of --payload
281
+ payload.deep_merge!(options[:options].reject {|k,v| k.is_a?(Symbol) }) if options[:options]
267
282
  else
268
283
  # prompt for all the instance configuration options
269
284
  # this provisioning helper method handles all (most) of the parsing and prompting
270
285
  # and it relies on the method to exit non-zero on error, like a bad CLOUD or TYPE value
271
286
  payload = prompt_new_instance(options)
272
- # other stuff
273
- payload[:copies] = options[:copies] if options[:copies] && options[:copies] > 0
274
- payload[:layoutSize] = options[:layout_size] if options[:layout_size] && options[:layout_size] > 0 # aka Scale Factor
275
- payload[:createBackup] = options[:create_backup] ? 'on' : 'off' if options[:create_backup] == true
276
- payload['instance']['expireDays'] = options[:expire_days] if options[:expire_days]
277
- payload['instance']['shutdownDays'] = options[:shutdown_days] if options[:shutdown_days]
278
- if options[:workflow_id]
279
- payload['taskSetId'] = options[:workflow_id]
280
- end
281
- if options[:enable_load_balancer]
282
- lb_payload = prompt_instance_load_balancer(payload['instance'], nil, options)
283
- payload.deep_merge!(lb_payload)
284
- end
285
287
  # clean payload of empty objects
286
288
  # note: this is temporary and should be fixed upstream in OptionTypes.prompt()
287
289
  if payload['instance'].is_a?(Hash)
@@ -298,6 +300,29 @@ class Morpheus::Cli::Instances
298
300
  end
299
301
  end
300
302
 
303
+ if options[:instance_name]
304
+ payload['instance'] ||= payload['instance']
305
+ payload['instance']['name'] = options[:instance_name]
306
+ end
307
+ payload[:copies] = options[:copies] if options[:copies] && options[:copies] > 0
308
+ payload[:layoutSize] = options[:layout_size] if options[:layout_size] && options[:layout_size] > 0 # aka Scale Factor
309
+ payload[:createBackup] = options[:create_backup] ? 'on' : 'off' if options[:create_backup] == true
310
+ payload['instance']['expireDays'] = options[:expire_days] if options[:expire_days]
311
+ payload['instance']['shutdownDays'] = options[:shutdown_days] if options[:shutdown_days]
312
+ if options.key?(:create_user)
313
+ payload['config']['createUser'] = options[:create_user]
314
+ end
315
+ if options[:user_group_id]
316
+ payload['instance']['userGroup'] = {'id' => options[:user_group_id] }
317
+ end
318
+ if options[:workflow_id]
319
+ payload['taskSetId'] = options[:workflow_id]
320
+ end
321
+ if options[:enable_load_balancer]
322
+ lb_payload = prompt_instance_load_balancer(payload['instance'], nil, options)
323
+ payload.deep_merge!(lb_payload)
324
+ end
325
+
301
326
  if options[:dry_run]
302
327
  print_dry_run @instances_interface.dry.create(payload)
303
328
  return 0
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Morpheus
3
3
  module Cli
4
- VERSION = "3.3.2.3"
4
+ VERSION = "3.3.2.4"
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morpheus-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.2.3
4
+ version: 3.3.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Estes