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