brocadesan 0.4.0

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.
Files changed (79) hide show
  1. data/README +113 -0
  2. data/Rakefile +46 -0
  3. data/brocadesan.gemspec +14 -0
  4. data/lib/brocadesan.rb +8 -0
  5. data/lib/brocadesan/alias.rb +64 -0
  6. data/lib/brocadesan/config/brocade/san/switch_cmd_mapping.yml +116 -0
  7. data/lib/brocadesan/config/parser_mapping.yml +21 -0
  8. data/lib/brocadesan/device.rb +296 -0
  9. data/lib/brocadesan/monkey/string.rb +11 -0
  10. data/lib/brocadesan/provisioning.rb +894 -0
  11. data/lib/brocadesan/switch.rb +882 -0
  12. data/lib/brocadesan/wwn.rb +63 -0
  13. data/lib/brocadesan/zone.rb +60 -0
  14. data/lib/brocadesan/zone_configuration.rb +38 -0
  15. data/lib/meta_methods.rb +263 -0
  16. data/test/alias_test.rb +68 -0
  17. data/test/device_test.rb +203 -0
  18. data/test/output_helpers.rb +308 -0
  19. data/test/outputs/agshow_1.txt +7 -0
  20. data/test/outputs/agshow_1.yml +31 -0
  21. data/test/outputs/agshow_2.txt +4 -0
  22. data/test/outputs/agshow_2.yml +3 -0
  23. data/test/outputs/apt_policy_1.txt +6 -0
  24. data/test/outputs/apt_policy_1.yml +3 -0
  25. data/test/outputs/cfgshow_1.txt +5 -0
  26. data/test/outputs/cfgshow_1.yml +7 -0
  27. data/test/outputs/cfgshow_2.txt +31 -0
  28. data/test/outputs/cfgshow_2.yml +32 -0
  29. data/test/outputs/cfgshow_3.txt +9 -0
  30. data/test/outputs/cfgshow_3.yml +12 -0
  31. data/test/outputs/cfgtransshow_1.txt +2 -0
  32. data/test/outputs/cfgtransshow_1.yml +5 -0
  33. data/test/outputs/cfgtransshow_2.txt +3 -0
  34. data/test/outputs/cfgtransshow_2.yml +4 -0
  35. data/test/outputs/cfgtransshow_3.txt +3 -0
  36. data/test/outputs/cfgtransshow_3.yml +4 -0
  37. data/test/outputs/chassisname_1.txt +2 -0
  38. data/test/outputs/chassisname_1.yml +3 -0
  39. data/test/outputs/dlsshow_1.txt +4 -0
  40. data/test/outputs/dlsshow_1.yml +4 -0
  41. data/test/outputs/dlsshow_2.txt +4 -0
  42. data/test/outputs/dlsshow_2.yml +4 -0
  43. data/test/outputs/fabricshow_1.txt +10 -0
  44. data/test/outputs/fabricshow_1.yml +34 -0
  45. data/test/outputs/iodshow_1.txt +4 -0
  46. data/test/outputs/iodshow_1.yml +4 -0
  47. data/test/outputs/islshow_1.txt +6 -0
  48. data/test/outputs/islshow_1.yml +62 -0
  49. data/test/outputs/islshow_2.txt +2 -0
  50. data/test/outputs/islshow_2.yml +2 -0
  51. data/test/outputs/lscfg_show_1.txt +71 -0
  52. data/test/outputs/lscfg_show_1.yml +5 -0
  53. data/test/outputs/ns_1.txt +80 -0
  54. data/test/outputs/ns_1.yml +39 -0
  55. data/test/outputs/ns_2.txt +37 -0
  56. data/test/outputs/ns_2.yml +21 -0
  57. data/test/outputs/putty.log +1867 -0
  58. data/test/outputs/switch_1.txt +25 -0
  59. data/test/outputs/switch_1.yml +73 -0
  60. data/test/outputs/switch_2.txt +18 -0
  61. data/test/outputs/switch_2.yml +42 -0
  62. data/test/outputs/switch_3.txt +14 -0
  63. data/test/outputs/switch_3.yml +46 -0
  64. data/test/outputs/switchstatusshow_1.txt +21 -0
  65. data/test/outputs/switchstatusshow_1.yml +19 -0
  66. data/test/outputs/trunkshow_1.txt +8 -0
  67. data/test/outputs/trunkshow_1.yml +44 -0
  68. data/test/outputs/trunkshow_2.txt +2 -0
  69. data/test/outputs/trunkshow_2.yml +2 -0
  70. data/test/outputs/version_1.txt +6 -0
  71. data/test/outputs/version_1.yml +8 -0
  72. data/test/outputs/vf_switch_1.txt +25 -0
  73. data/test/outputs/vf_switch_1.yml +73 -0
  74. data/test/provisioning_test.rb +1043 -0
  75. data/test/switch_test.rb +476 -0
  76. data/test/wwn_test.rb +41 -0
  77. data/test/zone_configuration_test.rb +65 -0
  78. data/test/zone_test.rb +73 -0
  79. metadata +170 -0
data/test/wwn_test.rb ADDED
@@ -0,0 +1,41 @@
1
+ require 'brocadesan'
2
+ require 'minitest/autorun'
3
+ require 'output_helpers'
4
+
5
+ module Brocade module SAN
6
+
7
+ class WwnTest < MiniTest::Test
8
+ include OutputReader
9
+ include Mock::Net::SSH
10
+ patch_set
11
+
12
+ def setup
13
+ init_dev
14
+ end
15
+
16
+ def init_dev
17
+ @switch = Switch.new("test","test","test")
18
+ end
19
+
20
+ def test_new_alias
21
+ wwn=Wwn.new("50:10:20:30:40:50:60:7f","device","1",2,:symbol=>"text")
22
+ assert_equal "50:10:20:30:40:50:60:7f", wwn.value
23
+ assert_equal "50:10:20:30:40:50:60:7f", wwn.name
24
+ assert_equal "device", wwn.dev_type
25
+ assert_equal 1, wwn.domain_id
26
+ assert_equal 2, wwn.port_index
27
+ assert_equal "text", wwn.symbol
28
+
29
+ wwn=Wwn.new("50:10:20:30:40:50:60:7f","device",1,"2")
30
+ assert_equal 1, wwn.domain_id
31
+ assert_equal 2, wwn.port_index
32
+ assert_equal "", wwn.symbol
33
+
34
+ assert_raises Switch::Error do
35
+ wwn=Wwn.new("50:10:20:30:40:50:60:7R","device",1,"2")
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ end; end
@@ -0,0 +1,65 @@
1
+ require 'brocadesan'
2
+ require 'minitest/autorun'
3
+ require 'output_helpers'
4
+
5
+ module Brocade module SAN
6
+
7
+ class ZoneConfigurationTest < MiniTest::Test
8
+ include OutputReader
9
+ include Mock::Net::SSH
10
+ patch_set
11
+
12
+ def setup
13
+ init_dev
14
+ end
15
+
16
+ def init_dev
17
+ @switch = Switch.new("test","test","test")
18
+ end
19
+
20
+ def test_new_zone_config
21
+ cfg=ZoneConfiguration.new("test",:effective=>true)
22
+ assert_equal "test", cfg.name
23
+ assert cfg.effective
24
+ assert_raises Switch::Error do
25
+ zone=ZoneConfiguration.new("test-d")
26
+ end
27
+ end
28
+
29
+ def test_members
30
+ @output_dir=File.join(Dir.pwd,"test","outputs")
31
+ read_all_starting_with "cfgshow_" do |file,output|
32
+ response=new_mock_response
33
+ response.data=output
34
+ init_dev
35
+ yaml=read_yaml_for(file)
36
+ @switch.stub :query, response do
37
+ @switch.zone_configurations.each_with_index do |cfg,i|
38
+ assert_equal yaml[:defined_configuration][:cfg].values[i], cfg.members
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ def test_add_member
45
+ cfg=ZoneConfiguration.new("test")
46
+ cfg.add_member "test1"
47
+ assert_equal ["test1"], cfg.members
48
+ cfg.add_member "test2"
49
+ assert_equal ["test1","test2"], cfg.members
50
+
51
+ assert_raises Switch::Error do
52
+ # cannot start with number
53
+ cfg.add_member "3zone"
54
+ end
55
+ assert_raises Switch::Error do
56
+ # can contain only alphanumeric and underscore
57
+ cfg.add_member "zone&"
58
+ end
59
+ assert_raises Switch::Error do
60
+ cfg.add_member "zone-d"
61
+ end
62
+ end
63
+ end
64
+
65
+ end; end
data/test/zone_test.rb ADDED
@@ -0,0 +1,73 @@
1
+ require 'brocadesan'
2
+ require 'minitest/autorun'
3
+ require 'output_helpers'
4
+
5
+ module Brocade module SAN
6
+
7
+ class ZoneTest < MiniTest::Test
8
+ include OutputReader
9
+ include Mock::Net::SSH
10
+ patch_set
11
+
12
+ def setup
13
+ init_dev
14
+ end
15
+
16
+ def init_dev
17
+ @switch = Switch.new("test","test","test")
18
+ end
19
+
20
+ def test_new_zone
21
+ zone=Zone.new("test",:active=>true)
22
+ assert_equal "test", zone.name
23
+ assert zone.active
24
+ assert_raises Switch::Error do
25
+ zone=Zone.new("test-d",:active=>true)
26
+ end
27
+ end
28
+
29
+ def test_members
30
+ @output_dir=File.join(Dir.pwd,"test","outputs")
31
+ read_all_starting_with "cfgshow_" do |file,output|
32
+ response=new_mock_response
33
+ response.data=output
34
+ init_dev
35
+ yaml=read_yaml_for(file)
36
+ @switch.stub :query, response do
37
+ @switch.zones.each_with_index do |zone,i|
38
+ assert_equal yaml[:defined_configuration][:zone].values[i], zone.members
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ def test_add_member
45
+ z=Zone.new("test")
46
+ z.add_member "test1"
47
+ assert_equal ["test1"], z.members
48
+ z.add_member "test2"
49
+ assert_equal ["test1","test2"], z.members
50
+ end
51
+
52
+ def test_validity_verification
53
+ name = "*invalid_name_for_zone_member"
54
+ exp = assert_raises(Switch::Error) do
55
+ Zone::verify_member_name name
56
+ end
57
+ assert_equal Switch::Error.incorrect(name).message, exp.message
58
+
59
+ name = "invalid-name_for_zone_member"
60
+ exp = assert_raises(Switch::Error) do
61
+ Zone::verify_member_name name
62
+ end
63
+ assert_equal Switch::Error.incorrect(name).message, exp.message
64
+
65
+ assert_silent do
66
+ Zone::verify_member_name "50:00:10:20:30:40:50:60"
67
+ Zone::verify_member_name "2,61"
68
+ Zone::verify_member_name "alias_name"
69
+ end
70
+ end
71
+ end
72
+
73
+ end; end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brocadesan
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tomas Trnecka
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-02-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: net-ssh
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.9.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.9.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: minitest
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 5.0.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 5.0.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake-notes
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.2.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.0
62
+ description: Gem to manipulate FABOS based devices
63
+ email: trnecka@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - README
69
+ - Rakefile
70
+ - brocadesan.gemspec
71
+ - lib/brocadesan.rb
72
+ - lib/brocadesan/alias.rb
73
+ - lib/brocadesan/config/brocade/san/switch_cmd_mapping.yml
74
+ - lib/brocadesan/config/parser_mapping.yml
75
+ - lib/brocadesan/device.rb
76
+ - lib/brocadesan/monkey/string.rb
77
+ - lib/brocadesan/provisioning.rb
78
+ - lib/brocadesan/switch.rb
79
+ - lib/brocadesan/wwn.rb
80
+ - lib/brocadesan/zone.rb
81
+ - lib/brocadesan/zone_configuration.rb
82
+ - lib/meta_methods.rb
83
+ - test/alias_test.rb
84
+ - test/device_test.rb
85
+ - test/output_helpers.rb
86
+ - test/outputs/agshow_1.txt
87
+ - test/outputs/agshow_1.yml
88
+ - test/outputs/agshow_2.txt
89
+ - test/outputs/agshow_2.yml
90
+ - test/outputs/apt_policy_1.txt
91
+ - test/outputs/apt_policy_1.yml
92
+ - test/outputs/cfgshow_1.txt
93
+ - test/outputs/cfgshow_1.yml
94
+ - test/outputs/cfgshow_2.txt
95
+ - test/outputs/cfgshow_2.yml
96
+ - test/outputs/cfgshow_3.txt
97
+ - test/outputs/cfgshow_3.yml
98
+ - test/outputs/cfgtransshow_1.txt
99
+ - test/outputs/cfgtransshow_1.yml
100
+ - test/outputs/cfgtransshow_2.txt
101
+ - test/outputs/cfgtransshow_2.yml
102
+ - test/outputs/cfgtransshow_3.txt
103
+ - test/outputs/cfgtransshow_3.yml
104
+ - test/outputs/chassisname_1.txt
105
+ - test/outputs/chassisname_1.yml
106
+ - test/outputs/dlsshow_1.txt
107
+ - test/outputs/dlsshow_1.yml
108
+ - test/outputs/dlsshow_2.txt
109
+ - test/outputs/dlsshow_2.yml
110
+ - test/outputs/fabricshow_1.txt
111
+ - test/outputs/fabricshow_1.yml
112
+ - test/outputs/iodshow_1.txt
113
+ - test/outputs/iodshow_1.yml
114
+ - test/outputs/islshow_1.txt
115
+ - test/outputs/islshow_1.yml
116
+ - test/outputs/islshow_2.txt
117
+ - test/outputs/islshow_2.yml
118
+ - test/outputs/lscfg_show_1.txt
119
+ - test/outputs/lscfg_show_1.yml
120
+ - test/outputs/ns_1.txt
121
+ - test/outputs/ns_1.yml
122
+ - test/outputs/ns_2.txt
123
+ - test/outputs/ns_2.yml
124
+ - test/outputs/putty.log
125
+ - test/outputs/switch_1.txt
126
+ - test/outputs/switch_1.yml
127
+ - test/outputs/switch_2.txt
128
+ - test/outputs/switch_2.yml
129
+ - test/outputs/switch_3.txt
130
+ - test/outputs/switch_3.yml
131
+ - test/outputs/switchstatusshow_1.txt
132
+ - test/outputs/switchstatusshow_1.yml
133
+ - test/outputs/trunkshow_1.txt
134
+ - test/outputs/trunkshow_1.yml
135
+ - test/outputs/trunkshow_2.txt
136
+ - test/outputs/trunkshow_2.yml
137
+ - test/outputs/version_1.txt
138
+ - test/outputs/version_1.yml
139
+ - test/outputs/vf_switch_1.txt
140
+ - test/outputs/vf_switch_1.yml
141
+ - test/provisioning_test.rb
142
+ - test/switch_test.rb
143
+ - test/wwn_test.rb
144
+ - test/zone_configuration_test.rb
145
+ - test/zone_test.rb
146
+ homepage: http://rubygems.org/gems/brocadesan
147
+ licenses: []
148
+ post_install_message:
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ requirements: []
165
+ rubyforge_project:
166
+ rubygems_version: 1.8.24
167
+ signing_key:
168
+ specification_version: 3
169
+ summary: Brocade SAN library
170
+ test_files: []