Skip to content

Commit

Permalink
Merge pull request #136 from HewlettPackard/bugfix/logical_switch_res…
Browse files Browse the repository at this point in the history
…fresh

Fixes #93: Logical Switch refresh conflict
  • Loading branch information
ricardogpsf committed Jan 30, 2017
2 parents c9518f1 + a698113 commit ceccdb5
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 30 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# Unreleased Changes

## Suggested release: v4.0.0

#### Breaking changes:
- Fixed issue #93 Logical Switch refresh conflict

#### Design changes:
- Architecture for future Image Streamer support. **Unimplemented** features to support in the future:
- Artifacts Bundle
Expand Down
5 changes: 5 additions & 0 deletions examples/_client.rb.example
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,8 @@ puts "Connected to OneView appliance at #{@client.url}\n\n"
# @sas_interconnect_type = 'Synergy 12Gb SAS Connection Module'
# @synergy_enclosure_hostname = 'fe80::2:0:9:1%eth2'
# @interconnect_name = '0000A66101, interconnect 3'
# @logical_switch1_ip = '172.18.16.91'
# @logical_switch2_ip = '172.18.16.92'
# @logical_switch_ssh_user = "dcs"
# @logical_switch_ssh_password = "dcs"
# @logical_switch_community_string = "public"
19 changes: 12 additions & 7 deletions examples/api200/logical_switch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,28 @@
require_relative '../_client'

# SSH Credential
ssh_credentials = OneviewSDK::LogicalSwitch::CredentialsSSH.new('dcs', 'dcs')
ssh_credentials = OneviewSDK::LogicalSwitch::CredentialsSSH.new(@logical_switch_ssh_user, @logical_switch_ssh_password)

# SNMP credentials
snmp_v1 = OneviewSDK::LogicalSwitch::CredentialsSNMPV1.new(161, 'public')
snmp_v1_2 = OneviewSDK::LogicalSwitch::CredentialsSNMPV1.new(161, 'public')
snmp_v1 = OneviewSDK::LogicalSwitch::CredentialsSNMPV1.new(161, @logical_switch_community_string)
snmp_v1_2 = OneviewSDK::LogicalSwitch::CredentialsSNMPV1.new(161, @logical_switch_community_string)

logical_switch_group = OneviewSDK::LogicalSwitchGroup.get_all(@client).first

logical_switch = OneviewSDK::LogicalSwitch.new(
@client,
name: 'Teste_SDK',
logicalSwitchGroupUri: '/rest/logical-switch-groups/2c5de7f0-7cb6-4897-9423-181e625a614c'
name: 'LogicalSwitch',
logicalSwitchGroupUri: logical_switch_group['uri']
)

# Adding switches credentials
logical_switch.set_switch_credentials('172.16.11.11', ssh_credentials, snmp_v1)
logical_switch.set_switch_credentials('172.16.11.12', ssh_credentials, snmp_v1_2)
logical_switch.set_switch_credentials(@logical_switch1_ip, ssh_credentials, snmp_v1)
logical_switch.set_switch_credentials(@logical_switch2_ip, ssh_credentials, snmp_v1_2)

# Creates logical switch for a switch group
logical_switch.create
puts "Logical switch created with uri=#{logical_switch['uri']}"

puts 'Reclaiming the top-of-rack switches in a logical switch'
logical_switch.refresh_state
puts 'Action done Successfully!'
19 changes: 12 additions & 7 deletions examples/api300/c7000/logical_switch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,23 @@
require_relative '../../_client'

# SSH Credential
ssh_credentials = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSSH.new('dcs', 'dcs')
ssh_credentials = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSSH.new(@logical_switch_ssh_user, @logical_switch_ssh_password)

# SNMP credentials
snmp_v1 = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSNMPV1.new(161, 'admin')
snmp_v1_2 = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSNMPV1.new(161, 'admin')
snmp_v1 = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSNMPV1.new(161, @logical_switch_community_string)
snmp_v1_2 = OneviewSDK::API300::C7000::LogicalSwitch::CredentialsSNMPV1.new(161, @logical_switch_community_string)

logical_switch_group = OneviewSDK::API300::C7000::LogicalSwitchGroup.get_all(@client).first

logical_switch = OneviewSDK::API300::C7000::LogicalSwitch.new(
@client,
name: 'Test_SDK',
logicalSwitchGroupUri: '/rest/logical-switch-groups/2c5de7f0-7cb6-4897-9423-181e625a614c'
name: 'LogicalSwitch',
logicalSwitchGroupUri: logical_switch_group['uri']
)

# Adding switches credentials
logical_switch.set_switch_credentials('172.16.11.11', ssh_credentials, snmp_v1)
logical_switch.set_switch_credentials('172.16.11.12', ssh_credentials, snmp_v1_2)
logical_switch.set_switch_credentials(@logical_switch1_ip, ssh_credentials, snmp_v1)
logical_switch.set_switch_credentials(@logical_switch2_ip, ssh_credentials, snmp_v1_2)

# Creates logical switch for a switch group
logical_switch.create
Expand All @@ -43,3 +44,7 @@
# Retrieves a specific Internal Link Set
internal_link_set = OneviewSDK::API300::C7000::LogicalSwitch.get_internal_link_set(@client, 'ils1')
puts "Internal Link Set #{internal_link_set['name']} URI=#{internal_link_set['uri']}"

puts 'Reclaiming the top-of-rack switches in a logical switch'
logical_switch.refresh_state
puts 'Action done Successfully!'
6 changes: 2 additions & 4 deletions lib/oneview-sdk/resource/api200/logical_switch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,8 @@ def create
self
end

# Updates this object using the data that exists on OneView
# @note Will overwrite any data that differs from OneView
# @return [Resource] self
def refresh
# Reclaims the top-of-rack switches in a logical switch.
def refresh_state
response = @client.rest_put(@data['uri'] + '/refresh')
@client.response_handler(response)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
@item.retrieve!
end

describe '#refresh' do
it 'refresh logical switch' do
@item.refresh
describe '#refresh_state' do
it 'should reclaims the top-of-rack switches in a logical switch' do
expect { @item.refresh_state }.to_not raise_error
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
@item.retrieve!
end

describe '#refresh' do
it 'refresh logical switch' do
@item.refresh
describe '#refresh_state' do
it 'should reclaims the top-of-rack switches in a logical switch' do
expect { @item.refresh_state }.to_not raise_error
end
end
end
6 changes: 3 additions & 3 deletions spec/unit/resource/api200/logical_switch_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
end
end

describe '#refresh' do
it 'Refresh' do
describe '#refresh_state' do
it 'Refresh logical switch' do
item = OneviewSDK::LogicalSwitch.new(@client, uri: '/rest/fake')
expect(@client).to receive(:rest_put).with("#{item['uri']}/refresh").and_return(FakeResponse.new({}))
item.refresh
item.refresh_state
end
end

Expand Down
6 changes: 3 additions & 3 deletions spec/unit/resource/api300/c7000/logical_switch_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@
end
end

describe '#refresh' do
it 'Refresh' do
describe '#refresh_state' do
it 'Refresh logical switch' do
item = OneviewSDK::API300::C7000::LogicalSwitch.new(@client_300, uri: '/rest/fake')
expect(@client_300).to receive(:rest_put).with("#{item['uri']}/refresh").and_return(FakeResponse.new({}))
item.refresh
item.refresh_state
end
end

Expand Down

0 comments on commit ceccdb5

Please sign in to comment.