Class: BrocadeAPIClient::Zones
- Inherits:
-
Object
- Object
- BrocadeAPIClient::Zones
- Defined in:
- lib/BrocadeAPIClient/zones.rb
Overview
Zones REST API Methods
Instance Method Summary collapse
- #alicreate(fabrickey, aliname, *wwn) ⇒ Object
- #alidelete(fabrickey, *alinames) ⇒ Object
- #alishow(fabrickey, zakey = 'none') ⇒ Object
- #alteralias(fabrickey, action, aliname, *wwn) ⇒ Object
- #altercfg(fabrickey, action, cfgname, *zonenames) ⇒ Object
- #alterzoning_peerzone(fabrickey, action, zonename, **wwn) ⇒ Object
- #alterzoning_standard(fabrickey, action, zonename, *aliases) ⇒ Object
- #cfgenable(fabrickey, cfgname) ⇒ Object
- #cfgshow(fabrickey, type) ⇒ Object
- #control_transaction(fabrickey, action) ⇒ Object
-
#initialize(http_client) ⇒ Zones
constructor
A new instance of Zones.
- #zonecreate_peerzone(fabrickey, zonename, **members) ⇒ Object
- #zonecreate_standard(fabrickey, zonename, *aliases) ⇒ Object
- #zonedbs(fabrickey) ⇒ Object
- #zonedelete(fabrickey, *zonenames) ⇒ Object
- #zoneshow(fabrickey, zones = 'all', zkey = 'none') ⇒ Object
Constructor Details
#initialize(http_client) ⇒ Zones
Returns a new instance of Zones.
15 16 17 18 |
# File 'lib/BrocadeAPIClient/zones.rb', line 15 def initialize(http_client) @http_client = http_client @base_url = '/resourcegroups/All/fcfabrics/' end |
Instance Method Details
#alicreate(fabrickey, aliname, *wwn) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/BrocadeAPIClient/zones.rb', line 63 def alicreate(fabrickey, aliname, *wwn) wwn.map!(&:upcase) api_url = @base_url + fabrickey.upcase + '/createzoningobject' alihash ||= { name: aliname, memberNames: wwn } (aliarray ||= []) << alihash payload ||= { zoneAliases: aliarray } _response, _body = @http_client.post(api_url, body: payload) end |
#alidelete(fabrickey, *alinames) ⇒ Object
105 106 107 108 109 |
# File 'lib/BrocadeAPIClient/zones.rb', line 105 def alidelete(fabrickey, *alinames) api_url = @base_url + fabrickey.upcase + '/deletezoningobject' payload ||= { zoneAliasNames: alinames } _response, _body = @http_client.post(api_url, body: payload) end |
#alishow(fabrickey, zakey = 'none') ⇒ Object
45 46 47 48 49 |
# File 'lib/BrocadeAPIClient/zones.rb', line 45 def alishow(fabrickey, zakey = 'none') api_url = @base_url + fabrickey.upcase + '/zonealiases' api_url += '/' + zakey unless zakey == 'none' _response, _body = @http_client.get(api_url) end |
#alteralias(fabrickey, action, aliname, *wwn) ⇒ Object
120 121 122 123 124 125 126 127 128 |
# File 'lib/BrocadeAPIClient/zones.rb', line 120 def alteralias(fabrickey, action, aliname, *wwn) api_url = @base_url + fabrickey.upcase + '/updatezoningobject' payload ||= { action: validate_answer(action) } wwn.map!(&:upcase) alihash ||= { name: aliname, memberNames: wwn } (aliarray ||= []) << alihash payload.store(:zoneAliases, aliarray) _response, _body = @http_client.post(api_url, body: payload) end |
#altercfg(fabrickey, action, cfgname, *zonenames) ⇒ Object
111 112 113 114 115 116 117 118 |
# File 'lib/BrocadeAPIClient/zones.rb', line 111 def altercfg(fabrickey, action, cfgname, *zonenames) api_url = @base_url + fabrickey.upcase + '/updatezoningobject' payload ||= { action: validate_answer(action) } cfghash ||= { name: cfgname, zoneNames: zonenames } (cfgarray ||= []) << cfghash payload.store(:zoneSets, cfgarray) _response, _body = @http_client.post(api_url, body: payload) end |
#alterzoning_peerzone(fabrickey, action, zonename, **wwn) ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/BrocadeAPIClient/zones.rb', line 139 def alterzoning_peerzone(fabrickey, action, zonename, **wwn) api_url = @base_url + fabrickey.upcase + '/updatezoningobject' peerdetails = {} peermembers = {} payload ||= { action: validate_answer(action) } case (wwn.keys & %i[principal members]).sort when %i[members principal] wwn[:members].map!(&:upcase) wwn[:principal].map!(&:upcase) peermembers = { peerMemberName: wwn[:members] } peerdetails = { principalMemberName: wwn[:principal] } when [:principal] wwn[:principal].map!(&:upcase) peerdetails = { principalMemberName: wwn[:principal] } when [:members] wwn[:members].map!(&:upcase) peermembers = { peerMemberName: wwn[:members] } else raise BrocadeAPIClient::InvalidPeerzoneOptions end peerdetails.store(:peerMembers, peermembers) zonedetails ||= { name: zonename, type: 'STANDARD', peerZone: 'True', peerZoneDetails: peerdetails } (zonearray ||= []) << zonedetails payload.store(:zones, zonearray) _response, _body = @http_client.post(api_url, body: payload) end |
#alterzoning_standard(fabrickey, action, zonename, *aliases) ⇒ Object
130 131 132 133 134 135 136 137 |
# File 'lib/BrocadeAPIClient/zones.rb', line 130 def alterzoning_standard(fabrickey, action, zonename, *aliases) api_url = @base_url + fabrickey.upcase + '/updatezoningobject' payload ||= { action: validate_answer(action) } zonehash ||= { name: zonename, aliasNames: aliases } (zonearray ||= []) << zonehash payload.store(:zones, zonearray) _response, _body = @http_client.post(api_url, body: payload) end |
#cfgenable(fabrickey, cfgname) ⇒ Object
166 167 168 169 170 |
# File 'lib/BrocadeAPIClient/zones.rb', line 166 def cfgenable(fabrickey, cfgname) api_url = @base_url + fabrickey.upcase + '/zonesets/' + cfgname + '-false/activate' payload = {} _response, _body = @http_client.post(api_url, body: payload) end |
#cfgshow(fabrickey, type) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/BrocadeAPIClient/zones.rb', line 51 def cfgshow(fabrickey, type) api_url = @base_url + fabrickey.upcase + '/zonesets' if type == 'all' elsif type == 'active' api_url += '?active=true' elsif type == 'defined' api_url += '?active=false' else raise BrocadeAPIClient::UnsupportedOption end _response, _body = @http_client.get(api_url) end |
#control_transaction(fabrickey, action) ⇒ Object
72 73 74 75 76 |
# File 'lib/BrocadeAPIClient/zones.rb', line 72 def control_transaction(fabrickey, action) payload ||= { lsanZoning: 'false', action: action.upcase } api_url = @base_url + fabrickey.upcase + '/controlzonetransaction' _response, _body = @http_client.post(api_url, body: payload) end |
#zonecreate_peerzone(fabrickey, zonename, **members) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/BrocadeAPIClient/zones.rb', line 87 def zonecreate_peerzone(fabrickey, zonename, **members) raise BrocadeAPIClient::InvalidPeerzoneOptions unless members.key?(:principal) && members.key?(:members) api_url = @base_url + fabrickey.upcase + '/createzoningobject' peermembers ||= { peerMemberName: members[:members] } peerdetails ||= { principalMemberName: members[:principal], peerMembers: peermembers } zonedetails ||= { name: zonename, type: 'STANDARD', peerZone: 'True', peerZoneDetails: peerdetails } (zonearray ||= []) << zonedetails payload ||= { zones: zonearray } _response, _body = @http_client.post(api_url, body: payload) end |
#zonecreate_standard(fabrickey, zonename, *aliases) ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/BrocadeAPIClient/zones.rb', line 78 def zonecreate_standard(fabrickey, zonename, *aliases) api_url = @base_url + fabrickey.upcase + '/createzoningobject' zonearray = [] zonehash ||= { name: zonename, aliasNames: aliases, type: 'STANDARD' } (zonearray ||= []) << zonehash payload ||= { zones: zonearray } _response, _body = @http_client.post(api_url, body: payload) end |
#zonedbs(fabrickey) ⇒ Object
40 41 42 43 |
# File 'lib/BrocadeAPIClient/zones.rb', line 40 def zonedbs(fabrickey) api_url = @base_url + fabrickey.upcase + '/zonedbs' _response, _body = @http_client.get(api_url) end |
#zonedelete(fabrickey, *zonenames) ⇒ Object
99 100 101 102 103 |
# File 'lib/BrocadeAPIClient/zones.rb', line 99 def zonedelete(fabrickey, *zonenames) api_url = @base_url + fabrickey.upcase + '/deletezoningobject' payload ||= { zoneNames: zonenames } _response, _body = @http_client.post(api_url, body: payload) end |
#zoneshow(fabrickey, zones = 'all', zkey = 'none') ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/BrocadeAPIClient/zones.rb', line 20 def zoneshow(fabrickey, zones = 'all', zkey = 'none') api_url = @base_url + fabrickey.upcase + '/zones' if zones == 'all' elsif zones == 'active' api_url += if zkey == 'none' '?active=true' else '/' + zkey + '-true' end elsif zones == 'defined' api_url += if zkey == 'none' '?active=false' else '/' + zkey + '-false' end else err_msg = 'Unsupported Zoning Option, supported ALL is without zonename' raise BrocadeAPIClient::UnsupportedOption end _response, _body = @http_client.get(api_url) end |