Skip to content

Commit

Permalink
Merge conficts and doc update
Browse files Browse the repository at this point in the history
  • Loading branch information
aalexmonteiro committed Mar 9, 2017
2 parents 4cfd929 + 099b31f commit 321e55d
Show file tree
Hide file tree
Showing 100 changed files with 2,009 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Metrics/ModuleLength:
- 'lib/oneview-sdk/rest.rb'

Style/GlobalVars:
AllowedVariables: [$config, $secrets, $client, $client_120, $client_300, $client_300_synergy, $config_synergy, $secrets_synergy, $config_i3s, $client_i3s_300]
AllowedVariables: [$config, $secrets, $client, $client_120, $client_300, $client_300_synergy, $config_synergy, $secrets_synergy, $config_i3s, $client_i3s_300, $client_500, $client_500_synergy]

Style/IndentationWidth:
Width: 2
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
# Unreleased Changes
## Suggested release: v5.0.0

#### New Resources:
(none)

#### Bug fixes & Enhancements:
- [#119](https://github.com/HewlettPackard/oneview-sdk-ruby/issues/112) VolumeAttachment::remove_extra_unmanaged_volume throw Unexpected Http Error

#### Design changes:
- Architecture for future API500 support. Features for API500 are not yet supported.

# v4.1.0

#### New Resources:
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ You may notice resource classes being accessed in a few different ways; for exam
require 'oneview-sdk'

# Show defaults:
OneviewSDK::SUPPORTED_API_VERSIONS # [200, 300]
OneviewSDK::SUPPORTED_API_VERSIONS # [200, 300, 500]
OneviewSDK::DEFAULT_API_VERSION # 200
OneviewSDK.api_version # 200
OneviewSDK.api_version_updated? # false
Expand All @@ -178,12 +178,17 @@ OneviewSDK.api_version = 300
OneviewSDK.api_version # 300
OneviewSDK.api_version_updated? # true

# The API200 module has no variants, but API300 has 2 (C7000 & Synergy):
# The API200 module has no variants, but API300 and API500 has 2 (C7000 & Synergy):
OneviewSDK::API300::SUPPORTED_VARIANTS # ['C7000', 'Synergy']
OneviewSDK::API300::DEFAULT_VARIANT # 'C7000'
OneviewSDK::API300.variant # 'C7000'
OneviewSDK::API300.variant_updated? # false

OneviewSDK::API500::SUPPORTED_VARIANTS # ['C7000', 'Synergy']
OneviewSDK::API500::DEFAULT_VARIANT # 'C7000'
OneviewSDK::API500.variant # 'C7000'
OneviewSDK::API500.variant_updated? # false

# Therefore, there is 1 more namespace level to the real resource class name
OneviewSDK::EthernetNetwork # OneviewSDK::API300::C7000::EthernetNetwork
OneviewSDK::API300::EthernetNetwork # OneviewSDK::API300::C7000::EthernetNetwork
Expand Down
Empty file added examples/api500/c7000/.gitkeep
Empty file.
Empty file.
2 changes: 1 addition & 1 deletion lib/oneview-sdk.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ module OneviewSDK
env_i3s = %w(I3S_URL I3S_SSL_ENABLED)
ENV_VARS = env_sdk.concat(env_i3s).freeze

SUPPORTED_API_VERSIONS = [200, 300].freeze
SUPPORTED_API_VERSIONS = [200, 300, 500].freeze
DEFAULT_API_VERSION = 200
@api_version = DEFAULT_API_VERSION
@api_version_updated = false # Whether or not the API version has been set by the user
Expand Down
66 changes: 66 additions & 0 deletions lib/oneview-sdk/resource/api500.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

module OneviewSDK
# Module for API v500
module API500
SUPPORTED_VARIANTS = %w(C7000 Synergy).freeze
DEFAULT_VARIANT = 'C7000'.freeze
@variant = DEFAULT_VARIANT
@variant_updated = false # Whether or not the API variant has been set by the user

# Get resource class that matches the type given
# @param [String] type Name of the desired class type
# @param [String] variant Variant (C7000 or Synergy)
# @return [Class] Resource class or nil if not found
def self.resource_named(type, variant = @variant)
raise "API500 variant '#{variant}' is not supported! Try one of #{SUPPORTED_VARIANTS}" unless SUPPORTED_VARIANTS.include?(variant.to_s)
new_type = type.to_s.downcase.gsub(/[ -_]/, '')
api_module = OneviewSDK::API500.const_get(variant)
api_module.constants.each do |c|
klass = api_module.const_get(c)
next unless klass.is_a?(Class)
name = klass.name.split('::').last.downcase.delete('_').delete('-')
return klass if new_type =~ /^#{name}[s]?$/
end
nil
end

# Get the current API500 variant
def self.variant
@variant
end

# Has the API500 variant been set by the user?
# @return [TrueClass, FalseClass]
def self.variant_updated?
@variant_updated
end

# Sets the API500 variant
def self.variant=(variant)
raise "API500 variant '#{variant}' is not supported! Try one of #{SUPPORTED_VARIANTS}" unless SUPPORTED_VARIANTS.include?(variant)
@variant_updated = true
@variant = variant
end

# Helps redirect resources to the correct API500 variant
def self.const_missing(const)
api500_module = OneviewSDK::API500.const_get(@variant.to_s)
api500_module.const_get(const)
rescue NameError
raise NameError, "The #{const} method or resource does not exist for OneView API500 variant #{@variant}."
end
end
end

# Load all API500-specific resources:
Dir[File.dirname(__FILE__) + '/api500/*.rb'].each { |file| require file }
27 changes: 27 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

module OneviewSDK
module API500
# Module for API500 C7000
module C7000
# Get resource class that matches the type given
# @param [String] type Name of the desired class type
# @return [Class] Resource class or nil if not found
def self.resource_named(type)
OneviewSDK::API500.resource_named(type, 'C7000')
end
end
end
end

# Load all API-specific resources:
Dir[File.dirname(__FILE__) + '/c7000/*.rb'].each { |file| require file }
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/connection_template.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/connection_template'

module OneviewSDK
module API500
module C7000
# Connection template resource implementation for API500 C7000
class ConnectionTemplate < OneviewSDK::API300::C7000::ConnectionTemplate
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/datacenter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/datacenter'

module OneviewSDK
module API500
module C7000
# Datacenter resource implementation for API500 C7000
class Datacenter < OneviewSDK::API300::C7000::Datacenter
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/enclosure.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/enclosure'

module OneviewSDK
module API500
module C7000
# Enclosure resource implementation for API500 C7000
class Enclosure < OneviewSDK::API300::C7000::Enclosure
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/enclosure_group.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/enclosure_group'

module OneviewSDK
module API500
module C7000
# Enclosure group resource implementation on API500 C7000
class EnclosureGroup < OneviewSDK::API300::C7000::EnclosureGroup
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/ethernet_network.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/ethernet_network'

module OneviewSDK
module API500
module C7000
# Ethernet network resource implementation for API500 C7000
class EthernetNetwork < OneviewSDK::API300::C7000::EthernetNetwork
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/fabric.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/fabric'

module OneviewSDK
module API500
module C7000
# Fabric resource implementation for API500 C7000
class Fabric < OneviewSDK::API300::C7000::Fabric
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/fc_network.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/fc_network'

module OneviewSDK
module API500
module C7000
# FC network resource implementation for API500 C7000
class FCNetwork < OneviewSDK::API300::C7000::FCNetwork
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/fcoe_network.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/fcoe_network'

module OneviewSDK
module API500
module C7000
# FCoE network resource implementation for API500 C7000
class FCoENetwork < OneviewSDK::API300::C7000::FCoENetwork
end
end
end
end
21 changes: 21 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/firmware_bundle.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/firmware_bundle'

module OneviewSDK
module API500
module C7000
class FirmwareBundle < OneviewSDK::API300::C7000::FirmwareBundle
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api500/c7000/firmware_driver.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require_relative '../../api300/c7000/firmware_driver'

module OneviewSDK
module API500
module C7000
# FirmwareDriver resource implementation for API500 C7000
class FirmwareDriver < OneviewSDK::API300::C7000::FirmwareDriver
end
end
end
end
Loading

0 comments on commit 321e55d

Please sign in to comment.