morpheus-cli 3.3.1.4 → 3.3.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|