morpheus-cli 6.1.0 → 6.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/lib/morpheus/api/api_client.rb +8 -0
- data/lib/morpheus/api/cypher_interface.rb +11 -5
- data/lib/morpheus/api/load_balancer_pool_nodes_interface.rb +8 -0
- data/lib/morpheus/api/load_balancer_pools_interface.rb +4 -4
- data/lib/morpheus/api/load_balancer_pools_secondary_interface.rb +9 -0
- data/lib/morpheus/api/roles_interface.rb +8 -8
- data/lib/morpheus/cli/commands/load_balancer_pool_nodes.rb +87 -0
- data/lib/morpheus/cli/commands/load_balancer_pools.rb +7 -4
- data/lib/morpheus/cli/commands/roles.rb +403 -586
- data/lib/morpheus/cli/commands/users.rb +46 -2
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +6 -6
- data/lib/morpheus/cli/version.rb +1 -1
- metadata +5 -2
@@ -297,7 +297,29 @@ EOT
|
|
297
297
|
if access.count > 0
|
298
298
|
access.each {|it| it['access'] = format_access_string(it['access'], available_access_levels)}
|
299
299
|
|
300
|
-
if ['features'
|
300
|
+
if ['features'].include?(field)
|
301
|
+
if access.find {|it| !it['subCategory'].to_s.empty? }
|
302
|
+
rows = access.collect do |it|
|
303
|
+
{
|
304
|
+
code: it['code'],
|
305
|
+
name: it['name'],
|
306
|
+
category: it['subCategory'].to_s.titleize,
|
307
|
+
access: format_access_string(it['access']),
|
308
|
+
}
|
309
|
+
end
|
310
|
+
if options[:sort]
|
311
|
+
rows.sort! {|a,b| a[options[:sort]] <=> b[options[:sort]] }
|
312
|
+
else
|
313
|
+
rows.sort! {|a,b| [a[:category],a[:name],a[:code]] <=> [b[:category],b[:name],b[:code]] }
|
314
|
+
end
|
315
|
+
if options[:direction] == 'desc'
|
316
|
+
rows.reverse!
|
317
|
+
end
|
318
|
+
print as_pretty_table(rows, [:category, :name, :code, :access], options)
|
319
|
+
else
|
320
|
+
print as_pretty_table(access, [:name, :code, :access], options)
|
321
|
+
end
|
322
|
+
elsif ['instance_types','report_types'].include?(field)
|
301
323
|
print as_pretty_table(access, [:name, :code, :access], options)
|
302
324
|
else
|
303
325
|
print as_pretty_table(access, [:name, :access], options)
|
@@ -422,7 +444,29 @@ EOT
|
|
422
444
|
if access.count > 0
|
423
445
|
access.each {|it| it['access'] = format_access_string(it['access'], available_access_levels)}
|
424
446
|
|
425
|
-
if ['features'
|
447
|
+
if ['features'].include?(field)
|
448
|
+
if access.find {|it| !it['subCategory'].to_s.empty? }
|
449
|
+
rows = access.collect do |it|
|
450
|
+
{
|
451
|
+
code: it['code'],
|
452
|
+
name: it['name'],
|
453
|
+
category: it['subCategory'].to_s.titleize,
|
454
|
+
access: format_access_string(it['access']),
|
455
|
+
}
|
456
|
+
end
|
457
|
+
if options[:sort]
|
458
|
+
rows.sort! {|a,b| a[options[:sort]] <=> b[options[:sort]] }
|
459
|
+
else
|
460
|
+
rows.sort! {|a,b| [a[:category],a[:name],a[:code]] <=> [b[:category],b[:name],b[:code]] }
|
461
|
+
end
|
462
|
+
if options[:direction] == 'desc'
|
463
|
+
rows.reverse!
|
464
|
+
end
|
465
|
+
print as_pretty_table(rows, [:category, :name, :code, :access], options)
|
466
|
+
else
|
467
|
+
print as_pretty_table(access, [:name, :code, :access], options)
|
468
|
+
end
|
469
|
+
elsif ['instance_types','report_types'].include?(field)
|
426
470
|
print as_pretty_table(access, [:name, :code, :access], options)
|
427
471
|
else
|
428
472
|
print as_pretty_table(access, [:name, :access], options)
|
@@ -719,7 +719,7 @@ module Morpheus::Cli::ProvisioningHelper
|
|
719
719
|
service_plan = nil
|
720
720
|
|
721
721
|
prompt_service_plan = -> {
|
722
|
-
service_plans_json = instances_interface.service_plans({zoneId: cloud_id, layoutId: layout['id'], siteId: group_id}.merge(resource_pool.nil? ? {} : {'resourcePoolId' => resource_pool['id']}))
|
722
|
+
service_plans_json = instances_interface.service_plans({zoneId: cloud_id, layoutId: layout['id'], siteId: group_id}.merge(resource_pool.nil? ? {} : {'poolId' => resource_pool['id'], 'resourcePoolId' => resource_pool['id']}))
|
723
723
|
service_plans = service_plans_json["plans"]
|
724
724
|
if locked_fields.include?('plan.id')
|
725
725
|
plan_id = options[:options]['plan']['id'] rescue nil
|
@@ -773,8 +773,8 @@ module Morpheus::Cli::ProvisioningHelper
|
|
773
773
|
has_zone_pools = provision_type && provision_type["id"] && provision_type["hasZonePools"]
|
774
774
|
if has_zone_pools
|
775
775
|
# pluck out the resourcePoolId option type to prompt for
|
776
|
-
resource_pool_option_type = option_type_list.find {|opt| ['resourcePool','resourcePoolId','azureResourceGroupId'].include?(opt['fieldName']) }
|
777
|
-
option_type_list = option_type_list.reject {|opt| ['resourcePool','resourcePoolId','azureResourceGroupId'].include?(opt['fieldName']) }
|
776
|
+
resource_pool_option_type = option_type_list.find {|opt| ['poolId','resourcePool','resourcePoolId','azureResourceGroupId'].include?(opt['fieldName']) }
|
777
|
+
option_type_list = option_type_list.reject {|opt| ['poolId','resourcePool','resourcePoolId','azureResourceGroupId'].include?(opt['fieldName']) }
|
778
778
|
|
779
779
|
resource_pool_options = options_interface.options_for_source('zonePools', {groupId: group_id, siteId: group_id, zoneId: cloud_id, cloudId: cloud_id, instanceTypeId: instance_type['id'], layoutId: layout["id"]}.merge(service_plan.nil? ? {} : {planId: service_plan["id"]}))['data']
|
780
780
|
if options[:resource_pool]
|
@@ -836,7 +836,7 @@ module Morpheus::Cli::ProvisioningHelper
|
|
836
836
|
# add selectable datastores for resource pool
|
837
837
|
if options[:select_datastore]
|
838
838
|
begin
|
839
|
-
selectable_datastores = datastores_interface.list({'zoneId' => cloud_id, 'siteId' => group_id, 'resourcePoolId' => resource_pool['id']})
|
839
|
+
selectable_datastores = datastores_interface.list({'zoneId' => cloud_id, 'siteId' => group_id, 'poolId' => resource_pool['id'], 'resourcePoolId' => resource_pool['id']})
|
840
840
|
service_plan['datastores'] = {'clusters' => [], 'datastores' => []}
|
841
841
|
['clusters', 'datastores'].each do |type|
|
842
842
|
service_plan['datastores'][type] ||= []
|
@@ -1538,7 +1538,7 @@ module Morpheus::Cli::ProvisioningHelper
|
|
1538
1538
|
|
1539
1539
|
if datastore_options.empty? && storage_type['hasDatastore'] != false
|
1540
1540
|
begin
|
1541
|
-
datastore_res = datastores_interface.list({'resourcePoolId' => current_root_volume['resourcePoolId'], 'zoneId' => options['zoneId'], 'siteId' => options['siteId']})['datastores']
|
1541
|
+
datastore_res = datastores_interface.list({'poolId' => current_root_volume['resourcePoolId'], 'resourcePoolId' => current_root_volume['resourcePoolId'], 'zoneId' => options['zoneId'], 'siteId' => options['siteId']})['datastores']
|
1542
1542
|
datastore_res.each do |opt|
|
1543
1543
|
datastore_options << {'name' => opt['name'], 'value' => opt['id']}
|
1544
1544
|
end
|
@@ -1578,7 +1578,7 @@ module Morpheus::Cli::ProvisioningHelper
|
|
1578
1578
|
no_prompt = (options[:no_prompt] || (options[:options] && options[:options][:no_prompt]))
|
1579
1579
|
network_interfaces = []
|
1580
1580
|
api_params = {zoneId: zone_id, provisionTypeId: provision_type_id}.merge(options[:api_params] || {})
|
1581
|
-
if pool_id
|
1581
|
+
if pool_id
|
1582
1582
|
api_params[:poolId] = pool_id
|
1583
1583
|
end
|
1584
1584
|
|
data/lib/morpheus/cli/version.rb
CHANGED
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: 6.1.
|
4
|
+
version: 6.1.1
|
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: 2023-
|
14
|
+
date: 2023-05-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -260,7 +260,9 @@ files:
|
|
260
260
|
- lib/morpheus/api/library_spec_templates_interface.rb
|
261
261
|
- lib/morpheus/api/license_interface.rb
|
262
262
|
- lib/morpheus/api/load_balancer_monitors_interface.rb
|
263
|
+
- lib/morpheus/api/load_balancer_pool_nodes_interface.rb
|
263
264
|
- lib/morpheus/api/load_balancer_pools_interface.rb
|
265
|
+
- lib/morpheus/api/load_balancer_pools_secondary_interface.rb
|
264
266
|
- lib/morpheus/api/load_balancer_profiles_interface.rb
|
265
267
|
- lib/morpheus/api/load_balancer_types_interface.rb
|
266
268
|
- lib/morpheus/api/load_balancer_virtual_servers_interface.rb
|
@@ -434,6 +436,7 @@ files:
|
|
434
436
|
- lib/morpheus/cli/commands/library_upgrades_command.rb
|
435
437
|
- lib/morpheus/cli/commands/license.rb
|
436
438
|
- lib/morpheus/cli/commands/load_balancer_monitors.rb
|
439
|
+
- lib/morpheus/cli/commands/load_balancer_pool_nodes.rb
|
437
440
|
- lib/morpheus/cli/commands/load_balancer_pools.rb
|
438
441
|
- lib/morpheus/cli/commands/load_balancer_profiles.rb
|
439
442
|
- lib/morpheus/cli/commands/load_balancer_types.rb
|