morpheus-cli 3.6.5 → 3.6.6
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/cli/apps.rb +25 -8
- data/lib/morpheus/cli/hosts.rb +8 -4
- data/lib/morpheus/cli/instances.rb +15 -11
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +2 -0
- data/lib/morpheus/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6da8f8d23212139cce4d64119553bfa16acfaeecb64eee54d6607f0f3e9e9171
|
4
|
+
data.tar.gz: b63b976a649deffd4cfeb86290a3573f60ca838697763b7721020f5bdb0b3f50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 137db6bddd24c7a6521e70e592ef2f8110cd8f14ec65d7c1777af8ff04bffc57fd73216d2416ad2365ac7173f6dd61707069ed0f610a683049f0ade41c1d09ff
|
7
|
+
data.tar.gz: 5e8dbd46a7c628ba8c658276c2dd08e28c51573a642888030f0340e36d4a00a5fc18ac34c76ff6d91ca3c0d0374a8c5e1f65d2524db914333fd5b09ed2eb6331
|
data/lib/morpheus/cli/apps.rb
CHANGED
@@ -265,7 +265,7 @@ class Morpheus::Cli::Apps
|
|
265
265
|
tier_instance_types = tier_instances ? tier_instances.collect {|it| (it['instance'] && it['instance']['type']) ? it['instance']['type'].to_s : 'unknown'}.compact : []
|
266
266
|
unless options[:quiet]
|
267
267
|
# print cyan, "Configuring Tier: #{tier_name} (#{tier_instance_types.empty? ? 'empty' : tier_instance_types.join(', ')})", "\n"
|
268
|
-
print cyan, "Configuring tier #{tier_name}", "\n"
|
268
|
+
print cyan, "Configuring tier #{tier_name}", reset, "\n"
|
269
269
|
end
|
270
270
|
# todo: also prompt for tier settings here, like linkedTiers: []
|
271
271
|
if tier_instances
|
@@ -280,23 +280,38 @@ class Morpheus::Cli::Apps
|
|
280
280
|
return 1
|
281
281
|
else
|
282
282
|
unless options[:quiet]
|
283
|
-
print cyan, "Configuring #{instance_type_code} instance #{tier_name}.#{instance_index}", "\n"
|
283
|
+
print cyan, "Configuring #{instance_type_code} instance #{tier_name}.#{instance_index}", reset, "\n"
|
284
284
|
end
|
285
|
+
|
286
|
+
# Cloud
|
287
|
+
cloud_id = nil
|
288
|
+
v_prompt = Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'cloud', 'fieldLabel' => 'Cloud', 'type' => 'select', 'selectOptions' => scoped_available_clouds, 'defaultValue' => cloud ? cloud['name'] : nil}], options[:options])
|
289
|
+
cloud_id = v_prompt['cloud'] unless v_prompt['cloud'].to_s.empty?
|
290
|
+
if cloud_id
|
291
|
+
# cloud = find_cloud_by_name_or_id_for_provisioning(group['id'], cloud_id)
|
292
|
+
cloud = scoped_available_clouds.find {|it| it['name'] == cloud_id.to_s } || scoped_available_clouds.find {|it| it['id'].to_s == cloud_id.to_s }
|
293
|
+
return 1 if cloud.nil?
|
294
|
+
else
|
295
|
+
# prompt still happens inside get_scoped_instance_config
|
296
|
+
end
|
297
|
+
|
298
|
+
|
285
299
|
# prompt for the cloud for this instance
|
286
300
|
# the cloud is part of finding the scoped config in the blueprint
|
287
|
-
|
288
301
|
scoped_instance_config = get_scoped_instance_config(instance_config.clone, payload['environment'], group ? group['name'] : nil, cloud ? cloud['name'] : nil)
|
302
|
+
|
289
303
|
# now configure an instance like normal, use the config as default options with :always_prompt
|
290
304
|
instance_prompt_options = {}
|
291
305
|
instance_prompt_options[:group] = group ? group['id'] : nil
|
292
|
-
instance_prompt_options[:
|
306
|
+
instance_prompt_options[:cloud] = cloud ? cloud['name'] : nil
|
307
|
+
instance_prompt_options[:default_cloud] = cloud ? cloud['name'] : nil
|
293
308
|
instance_prompt_options[:no_prompt] = options[:no_prompt]
|
294
309
|
instance_prompt_options[:always_prompt] = options[:no_prompt] != true # options[:always_prompt]
|
295
310
|
instance_prompt_options[:options] = scoped_instance_config # meh, actually need to make these default values instead..
|
296
311
|
instance_prompt_options[:options][:always_prompt] = instance_prompt_options[:no_prompt] != true
|
297
312
|
instance_prompt_options[:options][:no_prompt] = instance_prompt_options[:no_prompt]
|
298
313
|
|
299
|
-
# also allow arbritrary options passed as tierName.instanceIndex
|
314
|
+
# also allow arbritrary options passed as tierName.instanceIndex like Web.0.instance.layout.id=75
|
300
315
|
instance_extra_options = {}
|
301
316
|
if tier_extra_options && tier_extra_options[instance_index.to_s]
|
302
317
|
instance_extra_options = tier_extra_options[instance_index.to_s]
|
@@ -1568,18 +1583,20 @@ class Morpheus::Cli::Apps
|
|
1568
1583
|
# def tmplCfg = getConfigMap(appTemplateConfig?.tiers?.getAt(tierName)?.instances?.getAt(index), opts.environment, opts.group, instanceOpts.instance.cloud?: opts?.defaultCloud?.name)
|
1569
1584
|
def get_scoped_instance_config(instance_config, env_name, group_name, cloud_name)
|
1570
1585
|
config = instance_config.clone
|
1571
|
-
if env_name && config['environments'] && config['environments'][env_name]
|
1586
|
+
if env_name.to_s != '' && config['environments'] && config['environments'][env_name]
|
1572
1587
|
config = config['environments'][env_name].clone
|
1573
1588
|
end
|
1574
|
-
if group_name && config['groups'] && config['groups'][group_name]
|
1589
|
+
if group_name.to_s != '' && config['groups'] && config['groups'][group_name]
|
1575
1590
|
config = config['groups'][group_name].clone
|
1576
1591
|
end
|
1577
|
-
if cloud_name && config['clouds'] && config['clouds'][cloud_name]
|
1592
|
+
if cloud_name.to_s != '' && config['clouds'] && config['clouds'][cloud_name]
|
1578
1593
|
config = config['clouds'][cloud_name].clone
|
1579
1594
|
end
|
1580
1595
|
config.delete('environments')
|
1581
1596
|
config.delete('groups')
|
1582
1597
|
config.delete('clouds')
|
1598
|
+
# puts "get_scoped_instance_config(instance_config, #{env_name}, #{group_name}, #{cloud_name})"
|
1599
|
+
# puts "returned config: #{config}"
|
1583
1600
|
return config
|
1584
1601
|
end
|
1585
1602
|
|
data/lib/morpheus/cli/hosts.rb
CHANGED
@@ -811,7 +811,9 @@ class Morpheus::Cli::Hosts
|
|
811
811
|
options = {}
|
812
812
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
813
813
|
opts.banner = subcommand_usage("[name]")
|
814
|
-
build_common_options(opts, options, [:
|
814
|
+
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
815
|
+
opts.footer = "Start a host.\n" +
|
816
|
+
"[name] is required. This is the name or id of a host. Supports 1-N [name] arguments."
|
815
817
|
end
|
816
818
|
optparse.parse!(args)
|
817
819
|
if args.count < 1
|
@@ -842,7 +844,7 @@ class Morpheus::Cli::Hosts
|
|
842
844
|
elsif !options[:quiet]
|
843
845
|
print_green_success "Started #{objects_label}"
|
844
846
|
end
|
845
|
-
return
|
847
|
+
return 0
|
846
848
|
rescue RestClient::Exception => e
|
847
849
|
print_rest_exception(e, options)
|
848
850
|
exit 1
|
@@ -853,7 +855,9 @@ class Morpheus::Cli::Hosts
|
|
853
855
|
options = {}
|
854
856
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
855
857
|
opts.banner = subcommand_usage("[name]")
|
856
|
-
build_common_options(opts, options, [:
|
858
|
+
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
859
|
+
opts.footer = "Stop a host.\n" +
|
860
|
+
"[name] is required. This is the name or id of a host. Supports 1-N [name] arguments."
|
857
861
|
end
|
858
862
|
optparse.parse!(args)
|
859
863
|
if args.count < 1
|
@@ -884,7 +888,7 @@ class Morpheus::Cli::Hosts
|
|
884
888
|
elsif !options[:quiet]
|
885
889
|
print_green_success "Stopped #{objects_label}"
|
886
890
|
end
|
887
|
-
return
|
891
|
+
return 0
|
888
892
|
rescue RestClient::Exception => e
|
889
893
|
print_rest_exception(e, options)
|
890
894
|
exit 1
|
@@ -1348,7 +1348,7 @@ class Morpheus::Cli::Instances
|
|
1348
1348
|
opts.add_hidden_option('muteMonitoring') if opts.is_a?(Morpheus::Cli::OptionParser)
|
1349
1349
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1350
1350
|
opts.footer = "Stop an instance.\n" +
|
1351
|
-
"[
|
1351
|
+
"[instance] is required. This is the name or id of an instance. Supports 1-N [instance] arguments."
|
1352
1352
|
end
|
1353
1353
|
optparse.parse!(args)
|
1354
1354
|
if args.count < 1
|
@@ -1408,7 +1408,7 @@ class Morpheus::Cli::Instances
|
|
1408
1408
|
opts.banner = subcommand_usage("[name]")
|
1409
1409
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1410
1410
|
opts.footer = "Start an instance.\n" +
|
1411
|
-
"[name] is required. This is the name or id of an instance. Supports 1-N [
|
1411
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1412
1412
|
end
|
1413
1413
|
optparse.parse!(args)
|
1414
1414
|
if args.count < 1
|
@@ -1465,16 +1465,16 @@ class Morpheus::Cli::Instances
|
|
1465
1465
|
options = {}
|
1466
1466
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
1467
1467
|
opts.banner = subcommand_usage("[name]")
|
1468
|
-
opts.on('--mute-monitoring [on|off]', String, "Mute monitoring. Default is
|
1468
|
+
opts.on('--mute-monitoring [on|off]', String, "Mute monitoring. Default is on.") do |val|
|
1469
1469
|
params['muteMonitoring'] = val.nil? || val.to_s == 'on' || val.to_s == 'true'
|
1470
1470
|
end
|
1471
|
-
opts.on('--muteMonitoring [on|off]', String, "Mute monitoring. Default is
|
1471
|
+
opts.on('--muteMonitoring [on|off]', String, "Mute monitoring. Default is on.") do |val|
|
1472
1472
|
params['muteMonitoring'] = val.nil? || val.to_s == 'on' || val.to_s == 'true'
|
1473
1473
|
end
|
1474
1474
|
opts.add_hidden_option('muteMonitoring') if opts.is_a?(Morpheus::Cli::OptionParser)
|
1475
1475
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1476
|
-
opts.footer = "
|
1477
|
-
"[name] is required. This is the name or id of an instance. Supports 1-N [
|
1476
|
+
opts.footer = "Restart an instance.\n" +
|
1477
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1478
1478
|
end
|
1479
1479
|
optparse.parse!(args)
|
1480
1480
|
if args.count < 1
|
@@ -1535,6 +1535,8 @@ class Morpheus::Cli::Instances
|
|
1535
1535
|
params['muteMonitoring'] = val.nil? || val.to_s == 'on' || val.to_s == 'true'
|
1536
1536
|
end
|
1537
1537
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1538
|
+
opts.footer = "Suspend an instance.\n" +
|
1539
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1538
1540
|
end
|
1539
1541
|
optparse.parse!(args)
|
1540
1542
|
if args.count < 1
|
@@ -1581,6 +1583,8 @@ class Morpheus::Cli::Instances
|
|
1581
1583
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
1582
1584
|
opts.banner = subcommand_usage("[name]")
|
1583
1585
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1586
|
+
opts.footer = "Eject an instance.\n" +
|
1587
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1584
1588
|
end
|
1585
1589
|
optparse.parse!(args)
|
1586
1590
|
if args.count < 1
|
@@ -1634,7 +1638,7 @@ class Morpheus::Cli::Instances
|
|
1634
1638
|
opts.add_hidden_option('muteMonitoring') if opts.is_a?(Morpheus::Cli::OptionParser)
|
1635
1639
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1636
1640
|
opts.footer = "Stop service on an instance.\n" +
|
1637
|
-
"[name] is required. This is the name or id of an instance. Supports 1-N [
|
1641
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1638
1642
|
end
|
1639
1643
|
optparse.parse!(args)
|
1640
1644
|
if args.count < 1
|
@@ -1694,7 +1698,7 @@ class Morpheus::Cli::Instances
|
|
1694
1698
|
opts.banner = subcommand_usage("[name]")
|
1695
1699
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1696
1700
|
opts.footer = "Start service on an instance.\n" +
|
1697
|
-
"[name] is required. This is the name or id of an instance. Supports 1-N [
|
1701
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1698
1702
|
end
|
1699
1703
|
optparse.parse!(args)
|
1700
1704
|
if args.count < 1
|
@@ -1751,16 +1755,16 @@ class Morpheus::Cli::Instances
|
|
1751
1755
|
options = {}
|
1752
1756
|
optparse = Morpheus::Cli::OptionParser.new do |opts|
|
1753
1757
|
opts.banner = subcommand_usage("[name]")
|
1754
|
-
opts.on('--mute-monitoring [on|off]', String, "Mute monitoring. Default is
|
1758
|
+
opts.on('--mute-monitoring [on|off]', String, "Mute monitoring. Default is on.") do |val|
|
1755
1759
|
params['muteMonitoring'] = val.nil? || val.to_s == 'on' || val.to_s == 'true'
|
1756
1760
|
end
|
1757
|
-
opts.on('--muteMonitoring [on|off]', String, "Mute monitoring. Default is
|
1761
|
+
opts.on('--muteMonitoring [on|off]', String, "Mute monitoring. Default is on.") do |val|
|
1758
1762
|
params['muteMonitoring'] = val.nil? || val.to_s == 'on' || val.to_s == 'true'
|
1759
1763
|
end
|
1760
1764
|
opts.add_hidden_option('muteMonitoring') if opts.is_a?(Morpheus::Cli::OptionParser)
|
1761
1765
|
build_common_options(opts, options, [:auto_confirm, :quiet, :json, :dry_run, :remote])
|
1762
1766
|
opts.footer = "Restart service on an instance.\n" +
|
1763
|
-
"[name] is required. This is the name or id of an instance. Supports 1-N [
|
1767
|
+
"[name] is required. This is the name or id of an instance. Supports 1-N [name] arguments."
|
1764
1768
|
end
|
1765
1769
|
optparse.parse!(args)
|
1766
1770
|
if args.count < 1
|
@@ -258,6 +258,8 @@ module Morpheus::Cli::ProvisioningHelper
|
|
258
258
|
instance_name = nil
|
259
259
|
if options[:instance_name]
|
260
260
|
options[:options]['name'] = options[:instance_name]
|
261
|
+
elsif options[:options]['instance'] && options[:options]['instance']['name']
|
262
|
+
options[:options]['name'] = options[:options]['instance']['name']
|
261
263
|
end
|
262
264
|
name_prompt = Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'name', 'fieldLabel' => 'Instance Name', 'type' => 'text', 'required' => options[:name_required]}], options[:options])
|
263
265
|
instance_name = name_prompt['name']
|
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: 3.6.
|
4
|
+
version: 3.6.6
|
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: 2019-02-
|
14
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|