morpheus-cli 3.3.1.4 → 3.3.2
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/lib/morpheus/api/api_client.rb +28 -0
- data/lib/morpheus/api/instance_types_interface.rb +12 -10
- data/lib/morpheus/api/instances_interface.rb +4 -0
- data/lib/morpheus/api/library_container_scripts_interface.rb +49 -0
- data/lib/morpheus/api/library_container_templates_interface.rb +49 -0
- data/lib/morpheus/api/library_container_types_interface.rb +65 -0
- data/lib/morpheus/api/library_container_upgrades_interface.rb +66 -0
- data/lib/morpheus/api/library_instance_types_interface.rb +59 -0
- data/lib/morpheus/api/library_layouts_interface.rb +65 -0
- data/lib/morpheus/api/servers_interface.rb +4 -0
- data/lib/morpheus/api/user_sources_interface.rb +120 -0
- data/lib/morpheus/api/virtual_images_interface.rb +7 -0
- data/lib/morpheus/cli.rb +12 -1
- data/lib/morpheus/cli/accounts.rb +35 -9
- data/lib/morpheus/cli/cli_command.rb +82 -2
- data/lib/morpheus/cli/curl_command.rb +1 -1
- data/lib/morpheus/cli/echo_command.rb +1 -1
- data/lib/morpheus/cli/hosts.rb +40 -14
- data/lib/morpheus/cli/instance_types.rb +106 -64
- data/lib/morpheus/cli/instances.rb +39 -15
- data/lib/morpheus/cli/library.rb +1 -1184
- data/lib/morpheus/cli/library_container_scripts_command.rb +437 -0
- data/lib/morpheus/cli/library_container_templates_command.rb +397 -0
- data/lib/morpheus/cli/library_container_types_command.rb +653 -0
- data/lib/morpheus/cli/library_instance_types_command.rb +491 -0
- data/lib/morpheus/cli/library_layouts_command.rb +650 -0
- data/lib/morpheus/cli/library_option_lists_command.rb +476 -0
- data/lib/morpheus/cli/library_option_types_command.rb +549 -0
- data/lib/morpheus/cli/library_upgrades_command.rb +604 -0
- data/lib/morpheus/cli/mixins/library_helper.rb +123 -0
- data/lib/morpheus/cli/mixins/print_helper.rb +21 -22
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +56 -11
- data/lib/morpheus/cli/network_services_command.rb +1 -1
- data/lib/morpheus/cli/option_types.rb +12 -2
- data/lib/morpheus/cli/power_scheduling_command.rb +1 -1
- data/lib/morpheus/cli/shell.rb +120 -22
- data/lib/morpheus/cli/sleep_command.rb +45 -0
- data/lib/morpheus/cli/user_sources_command.rb +963 -0
- data/lib/morpheus/cli/users.rb +33 -2
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/cli/version_command.rb +1 -1
- data/lib/morpheus/cli/virtual_images.rb +93 -39
- data/lib/morpheus/formatters.rb +37 -27
- data/lib/morpheus/terminal.rb +1 -1
- metadata +20 -2
data/lib/morpheus/cli/users.rb
CHANGED
@@ -10,7 +10,7 @@ require 'json'
|
|
10
10
|
class Morpheus::Cli::Users
|
11
11
|
include Morpheus::Cli::CliCommand
|
12
12
|
include Morpheus::Cli::AccountsHelper
|
13
|
-
register_subcommands :list, :get, :add, :update, :remove
|
13
|
+
register_subcommands :list, :count, :get, :add, :update, :remove
|
14
14
|
register_subcommands :'passwd' => :change_password
|
15
15
|
alias_subcommand :details, :get
|
16
16
|
set_default_subcommand :list
|
@@ -35,7 +35,7 @@ class Morpheus::Cli::Users
|
|
35
35
|
options = {}
|
36
36
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
37
37
|
opts.banner = subcommand_usage()
|
38
|
-
build_common_options(opts, options, [:account, :list, :json, :yaml, :csv, :fields, :json, :dry_run, :remote])
|
38
|
+
build_common_options(opts, options, [:account, :list, :query, :json, :yaml, :csv, :fields, :json, :dry_run, :remote])
|
39
39
|
opts.footer = "List users."
|
40
40
|
end
|
41
41
|
optparse.parse!(args)
|
@@ -91,6 +91,37 @@ class Morpheus::Cli::Users
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
+
def count(args)
|
95
|
+
options = {}
|
96
|
+
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
97
|
+
opts.banner = subcommand_usage("[options]")
|
98
|
+
build_common_options(opts, options, [:account, :query, :remote, :dry_run])
|
99
|
+
opts.footer = "Get the number of users."
|
100
|
+
end
|
101
|
+
optparse.parse!(args)
|
102
|
+
connect(options)
|
103
|
+
begin
|
104
|
+
account = find_account_from_options(options)
|
105
|
+
account_id = account ? account['id'] : nil
|
106
|
+
params = {}
|
107
|
+
params.merge!(parse_list_options(options))
|
108
|
+
if options[:dry_run]
|
109
|
+
print_dry_run @users_interface.dry.list(account_id, params)
|
110
|
+
return
|
111
|
+
end
|
112
|
+
json_response = @users_interface.list(account_id, params)
|
113
|
+
# print number only
|
114
|
+
if json_response['meta'] && json_response['meta']['total']
|
115
|
+
print cyan, json_response['meta']['total'], reset, "\n"
|
116
|
+
else
|
117
|
+
print yellow, "unknown", reset, "\n"
|
118
|
+
end
|
119
|
+
rescue RestClient::Exception => e
|
120
|
+
print_rest_exception(e, options)
|
121
|
+
exit 1
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
94
125
|
def get(args)
|
95
126
|
options = {}
|
96
127
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
data/lib/morpheus/cli/version.rb
CHANGED
@@ -123,7 +123,7 @@ class Morpheus::Cli::VirtualImages
|
|
123
123
|
return
|
124
124
|
end
|
125
125
|
image = find_virtual_image_by_name_or_id(image_name)
|
126
|
-
|
126
|
+
return 1 if image.nil?
|
127
127
|
# refetch
|
128
128
|
json_response = @virtual_images_interface.get(image['id'])
|
129
129
|
image = json_response['virtualImage']
|
@@ -179,7 +179,7 @@ class Morpheus::Cli::VirtualImages
|
|
179
179
|
begin
|
180
180
|
|
181
181
|
image = find_virtual_image_by_name_or_id(image_name)
|
182
|
-
|
182
|
+
return 1 if image.nil?
|
183
183
|
|
184
184
|
params = options[:options] || {}
|
185
185
|
|
@@ -253,12 +253,16 @@ class Morpheus::Cli::VirtualImages
|
|
253
253
|
|
254
254
|
def add(args)
|
255
255
|
image_type_name = nil
|
256
|
+
file_url = nil
|
256
257
|
options = {}
|
257
258
|
optparse = OptionParser.new do|opts|
|
258
259
|
opts.banner = subcommand_usage("[name] -t TYPE")
|
259
260
|
opts.on( '-t', '--type TYPE', "Virtual Image Type" ) do |val|
|
260
261
|
image_type_name = val
|
261
262
|
end
|
263
|
+
opts.on( '-U', '--url URL', "Image File URL. This can be used instead of uploading local files." ) do |val|
|
264
|
+
file_url = val
|
265
|
+
end
|
262
266
|
build_common_options(opts, options, [:options, :json, :dry_run, :remote])
|
263
267
|
end
|
264
268
|
optparse.parse!(args)
|
@@ -291,8 +295,15 @@ class Morpheus::Cli::VirtualImages
|
|
291
295
|
end
|
292
296
|
|
293
297
|
begin
|
294
|
-
my_option_types = add_virtual_image_option_types(image_type)
|
295
|
-
|
298
|
+
my_option_types = add_virtual_image_option_types(image_type, !file_url)
|
299
|
+
# if options[:no_prompt]
|
300
|
+
# my_option_types.each do |it|
|
301
|
+
# if it['fieldContext'] == 'virtualImageFiles'
|
302
|
+
# opt['required'] = false
|
303
|
+
# end
|
304
|
+
# end
|
305
|
+
# end
|
306
|
+
params = Morpheus::Cli::OptionTypes.prompt(my_option_types, options[:options], @api_client, options[:params])
|
296
307
|
virtual_image_payload = {}.merge(params)
|
297
308
|
virtual_image_files = virtual_image_payload.delete('virtualImageFiles')
|
298
309
|
virtual_image_payload['imageType'] = image_type['code']
|
@@ -304,7 +315,9 @@ class Morpheus::Cli::VirtualImages
|
|
304
315
|
|
305
316
|
if options[:dry_run]
|
306
317
|
print_dry_run @virtual_images_interface.dry.create(payload)
|
307
|
-
if
|
318
|
+
if file_url
|
319
|
+
print_dry_run @virtual_images_interface.dry.upload_by_url(":id", file_url)
|
320
|
+
elsif virtual_image_files && !virtual_image_files.empty?
|
308
321
|
virtual_image_files.each do |key, filename|
|
309
322
|
print_dry_run @virtual_images_interface.dry.upload(":id", "(Contents of file #{filename})")
|
310
323
|
end
|
@@ -322,7 +335,15 @@ class Morpheus::Cli::VirtualImages
|
|
322
335
|
end
|
323
336
|
|
324
337
|
# now upload the file, do this in the background maybe?
|
325
|
-
if
|
338
|
+
if file_url
|
339
|
+
unless options[:quiet]
|
340
|
+
print cyan, "Uploading file by url #{file_url} ...", reset, "\n"
|
341
|
+
end
|
342
|
+
upload_json_response = @virtual_images_interface.upload_by_url(virtual_image['id'], file_url)
|
343
|
+
if options[:json]
|
344
|
+
print JSON.pretty_generate(upload_json_response)
|
345
|
+
end
|
346
|
+
elsif virtual_image_files && !virtual_image_files.empty?
|
326
347
|
virtual_image_files.each do |key, filename|
|
327
348
|
unless options[:quiet]
|
328
349
|
print cyan, "Uploading file (#{key}) #{filename} ...", reset, "\n"
|
@@ -349,41 +370,67 @@ class Morpheus::Cli::VirtualImages
|
|
349
370
|
|
350
371
|
def add_file(args)
|
351
372
|
image_type_name = nil
|
373
|
+
file_url = nil
|
352
374
|
options = {}
|
353
375
|
optparse = OptionParser.new do|opts|
|
354
376
|
opts.banner = subcommand_usage("[name] [filepath]")
|
355
|
-
|
377
|
+
opts.on( '-U', '--url URL', "Image File URL. This can be used instead of [filepath]" ) do |val|
|
378
|
+
file_url = val
|
379
|
+
end
|
380
|
+
build_common_options(opts, options, [:json, :dry_run, :quiet, :remote])
|
356
381
|
end
|
357
382
|
optparse.parse!(args)
|
358
|
-
if args.count < 2
|
359
|
-
puts optparse
|
360
|
-
exit 1
|
361
|
-
end
|
362
383
|
image_name = args[0]
|
363
|
-
filename =
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
image = find_virtual_image_by_name_or_id(image_name)
|
369
|
-
image_file = File.new(filename, 'rb')
|
370
|
-
|
371
|
-
if options[:dry_run]
|
372
|
-
print_dry_run @virtual_images_interface.dry.upload(image['id'], image_file)
|
373
|
-
return
|
384
|
+
filename = nil
|
385
|
+
if file_url
|
386
|
+
if args.count < 1
|
387
|
+
puts optparse
|
388
|
+
exit 1
|
374
389
|
end
|
375
|
-
|
376
|
-
|
377
|
-
|
390
|
+
else
|
391
|
+
if args.count < 2
|
392
|
+
puts optparse
|
393
|
+
exit 1
|
378
394
|
end
|
395
|
+
filename = args[1]
|
396
|
+
end
|
379
397
|
|
380
|
-
|
398
|
+
connect(options)
|
381
399
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
400
|
+
begin
|
401
|
+
image = find_virtual_image_by_name_or_id(image_name)
|
402
|
+
return 1 if image.nil?
|
403
|
+
if file_url
|
404
|
+
if options[:dry_run]
|
405
|
+
print_dry_run @virtual_images_interface.dry.upload_by_url(image['id'], file_url)
|
406
|
+
return
|
407
|
+
end
|
408
|
+
unless options[:quiet]
|
409
|
+
print cyan, "Uploading file by url #{file_url} ...", reset, "\n"
|
410
|
+
end
|
411
|
+
json_response = @virtual_images_interface.upload_by_url(image['id'], file_url)
|
412
|
+
if options[:json]
|
413
|
+
print JSON.pretty_generate(json_response)
|
414
|
+
elsif !options[:quiet]
|
415
|
+
print "\n", cyan, "Virtual Image #{image['name']} successfully updated.", reset, "\n\n"
|
416
|
+
get([image['id']])
|
417
|
+
end
|
418
|
+
else
|
419
|
+
image_file = File.new(filename, 'rb')
|
420
|
+
if options[:dry_run]
|
421
|
+
print_dry_run @virtual_images_interface.dry.upload(image['id'], image_file)
|
422
|
+
return
|
423
|
+
end
|
424
|
+
unless options[:quiet]
|
425
|
+
print cyan, "Uploading file #{filename} ...", reset, "\n"
|
426
|
+
end
|
427
|
+
json_response = @virtual_images_interface.upload(image['id'], image_file)
|
428
|
+
if options[:json]
|
429
|
+
print JSON.pretty_generate(json_response)
|
430
|
+
elsif !options[:quiet]
|
431
|
+
print "\n", cyan, "Virtual Image #{image['name']} successfully updated.", reset, "\n\n"
|
432
|
+
get([image['id']])
|
433
|
+
end
|
387
434
|
end
|
388
435
|
|
389
436
|
rescue RestClient::Exception => e
|
@@ -408,7 +455,7 @@ class Morpheus::Cli::VirtualImages
|
|
408
455
|
connect(options)
|
409
456
|
begin
|
410
457
|
image = find_virtual_image_by_name_or_id(image_name)
|
411
|
-
|
458
|
+
return 1 if image.nil?
|
412
459
|
unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the virtual image filename #{filename}?")
|
413
460
|
exit
|
414
461
|
end
|
@@ -443,7 +490,7 @@ class Morpheus::Cli::VirtualImages
|
|
443
490
|
connect(options)
|
444
491
|
begin
|
445
492
|
image = find_virtual_image_by_name_or_id(image_name)
|
446
|
-
|
493
|
+
return 1 if image.nil?
|
447
494
|
unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the virtual image #{image['name']}?")
|
448
495
|
exit
|
449
496
|
end
|
@@ -480,6 +527,7 @@ class Morpheus::Cli::VirtualImages
|
|
480
527
|
rescue RestClient::Exception => e
|
481
528
|
if e.response && e.response.code == 404
|
482
529
|
print_red_alert "Virtual Image not found by id #{id}"
|
530
|
+
return nil
|
483
531
|
else
|
484
532
|
raise e
|
485
533
|
end
|
@@ -490,7 +538,7 @@ class Morpheus::Cli::VirtualImages
|
|
490
538
|
json_results = @virtual_images_interface.get({name: name.to_s})
|
491
539
|
if json_results['virtualImages'].empty?
|
492
540
|
print_red_alert "Virtual Image not found by name #{name}"
|
493
|
-
|
541
|
+
return nil
|
494
542
|
end
|
495
543
|
virtual_image = json_results['virtualImages'][0]
|
496
544
|
return virtual_image
|
@@ -507,7 +555,7 @@ class Morpheus::Cli::VirtualImages
|
|
507
555
|
return get_available_virtual_image_types().find { |z| z['name'].downcase == name.downcase || z['code'].downcase == name.downcase}
|
508
556
|
end
|
509
557
|
|
510
|
-
def add_virtual_image_option_types(image_type)
|
558
|
+
def add_virtual_image_option_types(image_type, include_file_selection=true)
|
511
559
|
image_type_code = image_type['code']
|
512
560
|
# todo: make api provide virtualImageType and its optionTypes.
|
513
561
|
tmp_option_types = [
|
@@ -527,16 +575,22 @@ class Morpheus::Cli::VirtualImages
|
|
527
575
|
|
528
576
|
if image_type_code == 'ami'
|
529
577
|
tmp_option_types << {'fieldName' => 'externalId', 'fieldLabel' => 'AMI id', 'type' => 'text', 'required' => false, 'displayOrder' => 10}
|
530
|
-
|
578
|
+
if include_file_selection
|
579
|
+
tmp_option_types << {'fieldName' => 'imageFile', 'fieldLabel' => 'Image File', 'type' => 'file', 'required' => false, 'displayOrder' => 10}
|
580
|
+
end
|
531
581
|
elsif image_type_code == 'vmware' || image_type_code == 'vmdk'
|
532
|
-
|
533
|
-
|
582
|
+
if include_file_selection
|
583
|
+
tmp_option_types << {'fieldContext' => 'virtualImageFiles', 'fieldName' => 'imageFile', 'fieldLabel' => 'OVF File', 'type' => 'file', 'required' => false, 'displayOrder' => 10}
|
584
|
+
tmp_option_types << {'fieldContext' => 'virtualImageFiles', 'fieldName' => 'imageDescriptorFile', 'fieldLabel' => 'VMDK File', 'type' => 'file', 'required' => false, 'displayOrder' => 10}
|
585
|
+
end
|
534
586
|
elsif image_type_code == 'pxe'
|
535
587
|
tmp_option_types << {'fieldName' => 'config.menu', 'fieldLabel' => 'Menu', 'type' => 'text', 'required' => false, 'displayOrder' => 10}
|
536
588
|
tmp_option_types << {'fieldName' => 'imagePath', 'fieldLabel' => 'Image Path', 'type' => 'text', 'required' => true, 'displayOrder' => 10}
|
537
589
|
tmp_option_types.reject! {|opt| ['isCloudInit', 'installAgent', 'sshUsername', 'sshPassword'].include?(opt['fieldName'])}
|
538
590
|
else
|
539
|
-
|
591
|
+
if include_file_selection
|
592
|
+
tmp_option_types << {'fieldContext' => 'virtualImageFiles', 'fieldName' => 'imageFile', 'fieldLabel' => 'Image File', 'type' => 'file', 'required' => false, 'description' => 'Choose an image file to upload', 'displayOrder' => 10}
|
593
|
+
end
|
540
594
|
end
|
541
595
|
|
542
596
|
return tmp_option_types
|
data/lib/morpheus/formatters.rb
CHANGED
@@ -198,39 +198,49 @@ def filter_data(data, include_fields=nil, exclude_fields=nil)
|
|
198
198
|
if field.empty?
|
199
199
|
next
|
200
200
|
end
|
201
|
+
|
202
|
+
# supports "field as Label"
|
203
|
+
field_key = field.strip
|
204
|
+
field_label = field_key
|
205
|
+
|
206
|
+
if field.index(/\s+as\s+/)
|
207
|
+
field_key, field_label = field.split(/\s+as\s+/)
|
208
|
+
if !field_label
|
209
|
+
field_label = field_key
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
201
213
|
if field.include?(".")
|
202
|
-
#
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
cur_data = nil
|
221
|
-
end
|
222
|
-
cur_filtered_data[ns] ||= {}
|
223
|
-
cur_filtered_data = cur_filtered_data[ns]
|
224
|
-
else
|
225
|
-
if cur_data.respond_to?("[]")
|
226
|
-
cur_filtered_data[ns] = cur_data[ns] || cur_data[ns.to_sym]
|
214
|
+
#if field.index(/\s+as\s+/)
|
215
|
+
if field_label != field_key
|
216
|
+
# collapse to a value
|
217
|
+
my_data[field_label] = get_object_value(data, field_key)
|
218
|
+
else
|
219
|
+
# keep the full object structure
|
220
|
+
namespaces = field.split(".")
|
221
|
+
cur_data = data
|
222
|
+
cur_filtered_data = my_data
|
223
|
+
namespaces.each_with_index do |ns, index|
|
224
|
+
if index != namespaces.length - 1
|
225
|
+
if cur_data
|
226
|
+
cur_data = cur_data[ns] || cur_data[ns.to_sym]
|
227
|
+
else
|
228
|
+
cur_data = nil
|
229
|
+
end
|
230
|
+
cur_filtered_data[ns] ||= {}
|
231
|
+
cur_filtered_data = cur_filtered_data[ns]
|
227
232
|
else
|
228
|
-
|
233
|
+
if cur_data.respond_to?("[]")
|
234
|
+
cur_filtered_data[ns] = cur_data[ns] || cur_data[ns.to_sym]
|
235
|
+
else
|
236
|
+
cur_filtered_data[ns] = nil
|
237
|
+
end
|
229
238
|
end
|
230
239
|
end
|
231
240
|
end
|
232
241
|
else
|
233
|
-
my_data[field] = data[field] || data[field.to_sym]
|
242
|
+
#my_data[field] = data[field] || data[field.to_sym]
|
243
|
+
my_data[field_label] = data[field_key] || data[field_key.to_sym]
|
234
244
|
end
|
235
245
|
end
|
236
246
|
return my_data
|
data/lib/morpheus/terminal.rb
CHANGED
@@ -208,7 +208,7 @@ module Morpheus
|
|
208
208
|
@coloring = false
|
209
209
|
Term::ANSIColor::coloring = false
|
210
210
|
end
|
211
|
-
opts.on('-V','--debug', "Print extra output for debugging.
|
211
|
+
opts.on('-V','--debug', "Print extra output for debugging.") do |json|
|
212
212
|
@terminal_log_level = Morpheus::Logging::Logger::DEBUG
|
213
213
|
Morpheus::Logging.set_log_level(Morpheus::Logging::Logger::DEBUG)
|
214
214
|
::RestClient.log = Morpheus::Logging.debug? ? Morpheus::Logging::DarkPrinter.instance : nil
|
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.
|
4
|
+
version: 3.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Estes
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-
|
14
|
+
date: 2018-05-23 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -165,6 +165,12 @@ files:
|
|
165
165
|
- lib/morpheus/api/instance_types_interface.rb
|
166
166
|
- lib/morpheus/api/instances_interface.rb
|
167
167
|
- lib/morpheus/api/key_pairs_interface.rb
|
168
|
+
- lib/morpheus/api/library_container_scripts_interface.rb
|
169
|
+
- lib/morpheus/api/library_container_templates_interface.rb
|
170
|
+
- lib/morpheus/api/library_container_types_interface.rb
|
171
|
+
- lib/morpheus/api/library_container_upgrades_interface.rb
|
172
|
+
- lib/morpheus/api/library_instance_types_interface.rb
|
173
|
+
- lib/morpheus/api/library_layouts_interface.rb
|
168
174
|
- lib/morpheus/api/license_interface.rb
|
169
175
|
- lib/morpheus/api/load_balancers_interface.rb
|
170
176
|
- lib/morpheus/api/logs_interface.rb
|
@@ -196,6 +202,7 @@ files:
|
|
196
202
|
- lib/morpheus/api/task_sets_interface.rb
|
197
203
|
- lib/morpheus/api/tasks_interface.rb
|
198
204
|
- lib/morpheus/api/user_groups_interface.rb
|
205
|
+
- lib/morpheus/api/user_sources_interface.rb
|
199
206
|
- lib/morpheus/api/users_interface.rb
|
200
207
|
- lib/morpheus/api/virtual_images_interface.rb
|
201
208
|
- lib/morpheus/api/whoami_interface.rb
|
@@ -227,6 +234,14 @@ files:
|
|
227
234
|
- lib/morpheus/cli/instances.rb
|
228
235
|
- lib/morpheus/cli/key_pairs.rb
|
229
236
|
- lib/morpheus/cli/library.rb
|
237
|
+
- lib/morpheus/cli/library_container_scripts_command.rb
|
238
|
+
- lib/morpheus/cli/library_container_templates_command.rb
|
239
|
+
- lib/morpheus/cli/library_container_types_command.rb
|
240
|
+
- lib/morpheus/cli/library_instance_types_command.rb
|
241
|
+
- lib/morpheus/cli/library_layouts_command.rb
|
242
|
+
- lib/morpheus/cli/library_option_lists_command.rb
|
243
|
+
- lib/morpheus/cli/library_option_types_command.rb
|
244
|
+
- lib/morpheus/cli/library_upgrades_command.rb
|
230
245
|
- lib/morpheus/cli/license.rb
|
231
246
|
- lib/morpheus/cli/load_balancers.rb
|
232
247
|
- lib/morpheus/cli/log_level_command.rb
|
@@ -235,6 +250,7 @@ files:
|
|
235
250
|
- lib/morpheus/cli/man_command.rb
|
236
251
|
- lib/morpheus/cli/mixins/accounts_helper.rb
|
237
252
|
- lib/morpheus/cli/mixins/infrastructure_helper.rb
|
253
|
+
- lib/morpheus/cli/mixins/library_helper.rb
|
238
254
|
- lib/morpheus/cli/mixins/monitoring_helper.rb
|
239
255
|
- lib/morpheus/cli/mixins/print_helper.rb
|
240
256
|
- lib/morpheus/cli/mixins/provisioning_helper.rb
|
@@ -263,11 +279,13 @@ files:
|
|
263
279
|
- lib/morpheus/cli/security_groups.rb
|
264
280
|
- lib/morpheus/cli/set_prompt_command.rb
|
265
281
|
- lib/morpheus/cli/shell.rb
|
282
|
+
- lib/morpheus/cli/sleep_command.rb
|
266
283
|
- lib/morpheus/cli/source_command.rb
|
267
284
|
- lib/morpheus/cli/ssl_verification_command.rb
|
268
285
|
- lib/morpheus/cli/storage_providers_command.rb
|
269
286
|
- lib/morpheus/cli/tasks.rb
|
270
287
|
- lib/morpheus/cli/user_groups_command.rb
|
288
|
+
- lib/morpheus/cli/user_sources_command.rb
|
271
289
|
- lib/morpheus/cli/users.rb
|
272
290
|
- lib/morpheus/cli/version.rb
|
273
291
|
- lib/morpheus/cli/version_command.rb
|