Skip to content

Commit

Permalink
Merge 49882d9 into 2844f98
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Mar 4, 2021
2 parents 2844f98 + 49882d9 commit 596176f
Show file tree
Hide file tree
Showing 120 changed files with 2,444 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .rubocop.yml
Expand Up @@ -38,7 +38,7 @@ Metrics/PerceivedComplexity:
Enabled: false

Style/GlobalVars:
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, $client_i3s_500, $client_600, $client_600_synergy, $client_i3s_600, $client_800, $client_800_synergy, $client_1000, $client_1000_synergy, $client_1200, $client_1200_synergy, $client_1600, $client_1600_synergy, $client_1800, $client_1800_synergy, $client_2000, $client_2000_synergy, $client_2200, $client_2200_synergy, $client_2400, $client_2400_synergy]
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, $client_i3s_500, $client_600, $client_600_synergy, $client_i3s_600, $client_800, $client_800_synergy, $client_1000, $client_1000_synergy, $client_1200, $client_1200_synergy, $client_1600, $client_1600_synergy, $client_1800, $client_1800_synergy, $client_2000, $client_2000_synergy, $client_2200, $client_2200_synergy, $client_2400, $client_2400_synergy, $client_2600, $client_2600_synergy]

Style/FrozenStringLiteralComment:
Enabled: false
Expand Down
2 changes: 1 addition & 1 deletion lib/oneview-sdk.rb
Expand Up @@ -26,7 +26,7 @@ module OneviewSDK
env_i3s = %w[I3S_URL I3S_SSL_ENABLED]
ENV_VARS = env_sdk.concat(env_i3s).freeze

SUPPORTED_API_VERSIONS = [200, 300, 500, 600, 800, 1000, 1200, 1600, 1800, 2000, 2200, 2400].freeze
SUPPORTED_API_VERSIONS = [200, 300, 500, 600, 800, 1000, 1200, 1600, 1800, 2000, 2200, 2400, 2600].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/api2600.rb
@@ -0,0 +1,66 @@
# (c) Copyright 2021 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 v2600
module API2600
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 "API2600 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::API2600.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 API2600 variant
def self.variant
@variant
end

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

# Sets the API2600 variant
def self.variant=(variant)
raise "API2600 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 API2600 variant
def self.const_missing(const)
api2600_module = OneviewSDK::API2600.const_get(@variant.to_s)
api2600_module.const_get(const)
rescue NameError
raise NameError, "The #{const} method or resource does not exist for OneView API2600 variant #{@variant}."
end
end
end

# Load all API2600-specific resources:
Dir[File.dirname(__FILE__) + '/api2600/*.rb'].each { |file| require file }
27 changes: 27 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000.rb
@@ -0,0 +1,27 @@
# (c) Copyright 2021 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 API2600
# Module for API2600 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::API2600.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/api2600/c7000/connection_template.rb
@@ -0,0 +1,22 @@
# (c) Copyright 2021 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 '../../api2400/c7000/connection_template'

module OneviewSDK
module API2600
module C7000
# Connection template resource implementation for API2600 C7000
class ConnectionTemplate < OneviewSDK::API2400::C7000::ConnectionTemplate
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/enclosure.rb
@@ -0,0 +1,22 @@
# (c) Copyright 2021 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 '../../api2400/c7000/enclosure'

module OneviewSDK
module API2600
module C7000
# Enclosure resource implementation for API2600 C7000
class Enclosure < OneviewSDK::API2400::C7000::Enclosure
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/enclosure_group.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/enclosure_group'

module OneviewSDK
module API2600
module C7000
# Enclosure group resource implementation on API2600 C7000
class EnclosureGroup < OneviewSDK::API2400::C7000::EnclosureGroup
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/ethernet_network.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/ethernet_network'

module OneviewSDK
module API2600
module C7000
# Ethernet network resource implementation for API2600 C7000
class EthernetNetwork < OneviewSDK::API2400::C7000::EthernetNetwork
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/fc_network.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/fc_network'

module OneviewSDK
module API2600
module C7000
# FC network resource implementation for API2600 C7000
class FCNetwork < OneviewSDK::API2400::C7000::FCNetwork
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/fcoe_network.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/fcoe_network'

module OneviewSDK
module API2600
module C7000
# FCoE network resource implementation for API2600 C7000
class FCoENetwork < OneviewSDK::API2400::C7000::FCoENetwork
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/firmware_driver.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/firmware_driver'

module OneviewSDK
module API2600
module C7000
# FirmwareDriver resource implementation for API2600 C7000
class FirmwareDriver < OneviewSDK::API2400::C7000::FirmwareDriver
end
end
end
end
@@ -0,0 +1,22 @@
# (c) Copyright 2021 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 '../../api2400/c7000/hypervisor_cluster_profile'

module OneviewSDK
module API2600
module C7000
# Hypervisor cluster profile resource implementation for API2600 C7000
class HypervisorClusterProfile < OneviewSDK::API2400::C7000::HypervisorClusterProfile
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/hypervisor_manager.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/hypervisor_manager'

module OneviewSDK
module API2600
module C7000
# Hypervisor Manager resource implementation for API2600 C7000
class HypervisorManager < OneviewSDK::API2400::C7000::HypervisorManager
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/interconnect.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/interconnect'

module OneviewSDK
module API2600
module C7000
# Interconnect resource implementation on API2600 C7000
class Interconnect < OneviewSDK::API2400::C7000::Interconnect
end
end
end
end
21 changes: 21 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/lig_uplink_set.rb
@@ -0,0 +1,21 @@
# (C) Copyright 2021 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 '../../api2400/c7000/lig_uplink_set'

module OneviewSDK
module API2600
module C7000
class LIGUplinkSet < OneviewSDK::API2400::C7000::LIGUplinkSet
end
end
end
end
22 changes: 22 additions & 0 deletions lib/oneview-sdk/resource/api2600/c7000/logical_enclosure.rb
@@ -0,0 +1,22 @@
# (C) Copyright 2021 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 '../../api2400/c7000/logical_enclosure'

module OneviewSDK
module API2600
module C7000
# Logical Enclosure resource implementation on API2600 C7000
class LogicalEnclosure < OneviewSDK::API2400::C7000::LogicalEnclosure
end
end
end
end

0 comments on commit 596176f

Please sign in to comment.