brocadesan 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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: []