morpheus-cli 7.0.2.1 → 7.0.3
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44eb4962dacc18e8a073e0472202fcb811dc0e00f300eac02da1608f4abb7a91
|
4
|
+
data.tar.gz: babba8e15b2712ad3075504e76ca144b7ce9fd714c1c45f1cc2e195bd09d1575
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3ef0604371d19cb597e57e38b457152d36282e74737d3fbe3838d0878b1f16f7a006b873fb09ac7a48898961d6cb217b3f85366735cbebc985df70fbe4e3291
|
7
|
+
data.tar.gz: e71942de507284bac1c9d8f02a95999d4c508350ccdfd7cf81025c1fa37dadeb5c34cefd50dadf5cd1ce81827076fbfbf328a367798fa02dbcaa0c89bf548143
|
data/Dockerfile
CHANGED
@@ -1010,68 +1010,63 @@ class Morpheus::Cli::NetworkRoutersCommand
|
|
1010
1010
|
puts optparse
|
1011
1011
|
return 1
|
1012
1012
|
end
|
1013
|
+
@network_routers_interface.setopts(options)
|
1014
|
+
if options[:dry_run]
|
1015
|
+
if args[0].to_s =~ /\A\d{1,}\Z/
|
1016
|
+
print_dry_run @network_routers_interface.dry.get(args[0].to_i)
|
1017
|
+
else
|
1018
|
+
print_dry_run @network_routers_interface.dry.list({name:args[0]})
|
1019
|
+
end
|
1020
|
+
return
|
1021
|
+
end
|
1013
1022
|
_firewall_rule(args[0], args[1], options)
|
1014
1023
|
end
|
1015
1024
|
|
1016
1025
|
def _firewall_rule(router_id, rule_id, options)
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
print_dry_run @network_routers_interface.dry.get(router_id.to_i)
|
1022
|
-
else
|
1023
|
-
print_dry_run @network_routers_interface.dry.list({name:router_id})
|
1024
|
-
end
|
1025
|
-
return
|
1026
|
-
end
|
1027
|
-
router = find_router(router_id)
|
1028
|
-
if router.nil?
|
1029
|
-
return 1
|
1030
|
-
end
|
1031
|
-
|
1032
|
-
if router['type']['hasFirewall']
|
1033
|
-
rule = find_firewall_rule(router, rule_id)
|
1034
|
-
|
1035
|
-
if rule
|
1036
|
-
json_response = {'rule' => rule}
|
1037
|
-
|
1038
|
-
if options[:json]
|
1039
|
-
puts as_json(json_response, options, "rule")
|
1040
|
-
return 0
|
1041
|
-
elsif options[:yaml]
|
1042
|
-
puts as_yaml(json_response, options, "rule")
|
1043
|
-
return 0
|
1044
|
-
elsif options[:csv]
|
1045
|
-
puts records_as_csv([json_response['rule']], options)
|
1046
|
-
return 0
|
1047
|
-
end
|
1026
|
+
router = find_router(router_id)
|
1027
|
+
if router.nil?
|
1028
|
+
return 1
|
1029
|
+
end
|
1048
1030
|
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
else
|
1065
|
-
print_red_alert "Firewall rule #{rule_id} not found for router #{router['name']}"
|
1031
|
+
if router['type']['hasFirewall']
|
1032
|
+
rule = find_firewall_rule(router, rule_id)
|
1033
|
+
|
1034
|
+
if rule
|
1035
|
+
json_response = {'rule' => rule}
|
1036
|
+
|
1037
|
+
if options[:json]
|
1038
|
+
puts as_json(json_response, options, "rule")
|
1039
|
+
return 0
|
1040
|
+
elsif options[:yaml]
|
1041
|
+
puts as_yaml(json_response, options, "rule")
|
1042
|
+
return 0
|
1043
|
+
elsif options[:csv]
|
1044
|
+
puts records_as_csv([json_response['rule']], options)
|
1045
|
+
return 0
|
1066
1046
|
end
|
1047
|
+
|
1048
|
+
print_h1 "Firewall Rule Details"
|
1049
|
+
print cyan
|
1050
|
+
description_cols = {
|
1051
|
+
"ID" => lambda {|it| it['id'] },
|
1052
|
+
"Enabled" => lambda {|it| format_boolean(it['enabled'])},
|
1053
|
+
"Priority" => lambda {|it| it['priority']},
|
1054
|
+
"Name" => lambda {|it| it['name'] },
|
1055
|
+
"Type" => lambda {|it| it['ruleType'] },
|
1056
|
+
"Policy" => lambda {|it| it['policy'] },
|
1057
|
+
"Direction" => lambda {|it| it['direction'] || 'any' },
|
1058
|
+
"Source" => lambda {|it| it['source'].kind_of?(Array) && it['source'].count > 0 ? it['source'].join(', ') : (it['source'].nil? || it['source'].empty? ? 'any' : it['source']) },
|
1059
|
+
"Destination" => lambda {|it| it['destination'].kind_of?(Array) && it['destination'].count > 0 ? it['destination'].join(', ') : (it['destination'].nil? || it['destination'].empty? ? 'any' : it['destination'])},
|
1060
|
+
"Application" => lambda {|it| it['applications'].count > 0 ? it['applications'][0]['name'] : "#{(it['protocol'] || 'any')} #{it['portRange'] || ''}"}
|
1061
|
+
}
|
1062
|
+
print_description_list(description_cols, rule)
|
1067
1063
|
else
|
1068
|
-
print_red_alert "Firewall not
|
1064
|
+
print_red_alert "Firewall rule #{rule_id} not found for router #{router['name']}"
|
1069
1065
|
end
|
1070
|
-
|
1071
|
-
|
1072
|
-
print_rest_exception(e, options)
|
1073
|
-
return 1
|
1066
|
+
else
|
1067
|
+
print_red_alert "Firewall not supported for #{router['type']['name']}"
|
1074
1068
|
end
|
1069
|
+
println reset
|
1075
1070
|
end
|
1076
1071
|
|
1077
1072
|
def add_firewall_rule(args)
|
data/lib/morpheus/cli/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'morpheus_test'
|
2
|
+
|
3
|
+
# Tests for Morpheus::InstancesInterface
|
4
|
+
class MorpheusTest::NetworkRoutersInterfaceTest < MorpheusTest::TestCase
|
5
|
+
|
6
|
+
def test_network_routers_interface
|
7
|
+
@network_routers_interface = client.network_routers
|
8
|
+
response = @network_routers_interface.list()
|
9
|
+
network_routers = response['networkRouters']
|
10
|
+
assert network_routers.is_a?(Array)
|
11
|
+
if !network_routers.empty?
|
12
|
+
response = @network_routers_interface.get(network_routers[0]['id'])
|
13
|
+
network_router = response['networkRouter']
|
14
|
+
assert network_router.is_a?(Hash)
|
15
|
+
assert_equal network_router['id'], network_routers[0]['id']
|
16
|
+
else
|
17
|
+
#puts "No network routers found in this environment"
|
18
|
+
end
|
19
|
+
#todo: create and delete
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'morpheus_test'
|
2
|
+
|
3
|
+
# Tests for Morpheus::Cli::NetworkRouters
|
4
|
+
class MorpheusTest::NetworkRoutersTest < MorpheusTest::TestCase
|
5
|
+
|
6
|
+
def test_network_routers_list
|
7
|
+
assert_execute %(network-routers list)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_network_routers_get
|
11
|
+
network_router = client.network_routers.list({})['networkRouters'][0]
|
12
|
+
if network_router
|
13
|
+
assert_execute %(network-routers get "#{network_router['id']}")
|
14
|
+
assert_execute %(network-routers get "#{escape_arg network_router['name']}")
|
15
|
+
else
|
16
|
+
puts "No network routers found, unable to execute test `#{__method__}`"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_network_routers_firewall_rules
|
21
|
+
network_router = client.network_routers.list({})['networkRouters'].find {|it| it['firewall'] }
|
22
|
+
if network_router
|
23
|
+
assert_execute %(network-routers firewall-rules "#{network_router['id']}")
|
24
|
+
else
|
25
|
+
puts "No network routers found with a firewall, unable to execute test `#{__method__}`"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_network_routers_firewall_rules_get
|
30
|
+
network_router = client.network_routers.list({})['networkRouters'].find {|it| it['firewall'] }
|
31
|
+
if network_router
|
32
|
+
# need to get by id to get the firewall rules
|
33
|
+
network_router = client.network_routers.get(network_router['id'])['networkRouter']
|
34
|
+
rules = network_router['type']['hasFirewallGroups'] ? (network_router['firewall']['ruleGroups'] || []).collect {|it| it['rules']}.flatten : network_router['firewall']['rules']
|
35
|
+
rule = rules[0]
|
36
|
+
if rule
|
37
|
+
assert_execute %(network-routers firewall-rule "#{network_router['id']}" "#{rule['id']}")
|
38
|
+
else
|
39
|
+
puts "No network router firewall rules found, unable to execute test `#{__method__}`"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
puts "No network routers found with a firewall, unable to execute test `#{__method__}`"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# def test_network_routers_add
|
47
|
+
# warn "Skipped test test_network_routers_add() because it is not implemented"
|
48
|
+
# end
|
49
|
+
|
50
|
+
# def test_network_routers_update
|
51
|
+
# warn "Skipped test test_network_routers_update() because it is not implemented"
|
52
|
+
# end
|
53
|
+
|
54
|
+
# def test_network_routers_delete
|
55
|
+
# warn "Skipped test test_network_routers_remove() because it is not implemented"
|
56
|
+
# end
|
57
|
+
|
58
|
+
# todo: many more network-routers commands to add
|
59
|
+
|
60
|
+
protected
|
61
|
+
|
62
|
+
end
|
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: 7.0.
|
4
|
+
version: 7.0.3
|
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: 2024-
|
14
|
+
date: 2024-06-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -600,6 +600,7 @@ files:
|
|
600
600
|
- morpheus-cli.gemspec
|
601
601
|
- test/api/containers_interface_test.rb
|
602
602
|
- test/api/instances_interface_test.rb
|
603
|
+
- test/api/network_routers_interface_test.rb
|
603
604
|
- test/api/whoami_interface_test.rb
|
604
605
|
- test/cli/access_token_test.rb
|
605
606
|
- test/cli/auth_test.rb
|
@@ -608,6 +609,7 @@ files:
|
|
608
609
|
- test/cli/help_test.rb
|
609
610
|
- test/cli/instances_test.rb
|
610
611
|
- test/cli/man_test.rb
|
612
|
+
- test/cli/network_routers_test.rb
|
611
613
|
- test/cli/remote_test.rb
|
612
614
|
- test/cli/roles_test.rb
|
613
615
|
- test/cli/shell_test.rb
|
@@ -644,6 +646,7 @@ summary: Provides CLI Interface to the Morpheus Public/Private Cloud Appliance
|
|
644
646
|
test_files:
|
645
647
|
- test/api/containers_interface_test.rb
|
646
648
|
- test/api/instances_interface_test.rb
|
649
|
+
- test/api/network_routers_interface_test.rb
|
647
650
|
- test/api/whoami_interface_test.rb
|
648
651
|
- test/cli/access_token_test.rb
|
649
652
|
- test/cli/auth_test.rb
|
@@ -652,6 +655,7 @@ test_files:
|
|
652
655
|
- test/cli/help_test.rb
|
653
656
|
- test/cli/instances_test.rb
|
654
657
|
- test/cli/man_test.rb
|
658
|
+
- test/cli/network_routers_test.rb
|
655
659
|
- test/cli/remote_test.rb
|
656
660
|
- test/cli/roles_test.rb
|
657
661
|
- test/cli/shell_test.rb
|