diff --git a/CHANGELOG.md b/CHANGELOG.md index f9dbf1fc8..58c553b75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ This release extends support to OneView Rest API version 2000 (OneView v5.40) fo - Network Set - OS Deployment Plan - Server Certificate +- Server Profile +- Server Profile Template #### Bug fixes & Enhancements: - Enahanced the method to set the default API version to appliance's max API version instead of hardcoded 200. diff --git a/endpoints-support.md b/endpoints-support.md index 339ab763a..f90c6d4af 100644 --- a/endpoints-support.md +++ b/endpoints-support.md @@ -364,32 +364,32 @@ OneviewSDK::Datacenter.find_by(@client, width: 11000).map(&:remove) |/rest/server-hardware-types/{id} | PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | |/rest/server-hardware-types/{id} | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | | **Server Profile Templates** | -|/rest/server-profile-templates | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates | POST | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/{id} | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/{id} | PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/{id} | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/{id}/new-profile | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/{id}/transformation | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profile-templates/available-networks | GET | :heavy_minus_sign: | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profile-templates | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profile-templates | POST | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profile-templates/{id} | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profile-templates/{id} | PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profile-templates/{id} | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profile-templates/{id}/new-profile | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profile-templates/{id}/transformation | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profile-templates/available-networks | GET | :heavy_minus_sign: | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | | **Server Profiles** | -|/rest/server-profiles | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles | POST | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/available-networks | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/available-servers | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:heavy_minus_sign: |:heavy_minus_sign: | -|/rest/server-profiles/available-storage-system | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | -|/rest/server-profiles/available-storage-systems | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | -|/rest/server-profiles/available-targets | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/profile-ports | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id} | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id} | PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id} | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id} | PATCH | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id}/compliance-preview | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | -|/rest/server-profiles/{id}/new-profile-template | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:heavy_minus_sign: |:heavy_minus_sign: | -|/rest/server-profiles/{id}/messages | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | -|/rest/server-profiles/{id}/transformation | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profiles | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | +|/rest/server-profiles | POST | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/available-networks | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/available-servers | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:heavy_minus_sign: |:heavy_minus_sign: | :heavy_minus_sign: | +|/rest/server-profiles/available-storage-system | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | :heavy_minus_sign: | +|/rest/server-profiles/available-storage-systems | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | :heavy_minus_sign: | +|/rest/server-profiles/available-targets | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/profile-ports | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id} | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id} | PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id} | DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id} | PATCH | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id}/compliance-preview | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | +|/rest/server-profiles/{id}/new-profile-template | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:heavy_minus_sign: |:heavy_minus_sign: | :heavy_minus_sign: | +|/rest/server-profiles/{id}/messages | GET | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | :heavy_minus_sign: | +|/rest/server-profiles/{id}/transformation | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | :white_check_mark: | | **Storage Pools** | |/rest/storage-pools | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: |:white_check_mark: | |/rest/storage-pools | POST | :white_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: |:heavy_minus_sign: | diff --git a/examples/shared_samples/server_profile.rb b/examples/shared_samples/server_profile.rb index deaa1be6b..8c4d5a8ec 100644 --- a/examples/shared_samples/server_profile.rb +++ b/examples/shared_samples/server_profile.rb @@ -12,7 +12,7 @@ require_relative '../_client' # Gives access to @client # Supported APIs: -# - 200, 300, 500, 600, 800, 1000, 1200, 1600, 1800 +# - 200, 300, 500, 600, 800, 1000, 1200, 1600, 1800 and 2000 # Supported Variants: # - C7000 and Synergy for all supported API versions @@ -67,12 +67,14 @@ puts "\nServer Profile updated successfully! Name: #{item3['name']}" # This method supports till OneView REST API Version 1200 -puts "\nGetting the available servers" -begin - servers = server_profile_class.get_available_servers(@client) - puts "\nAvailable servers: \n#{servers}" -rescue OneviewSDK::MethodUnavailable - puts "\nThe method #get_available_servers is available for API version <= 1200" +if @client.api_version <= 1200 + puts "\nGetting the available servers" + begin + servers = server_profile_class.get_available_servers(@client) + puts "\nAvailable servers: \n#{servers}" + rescue OneviewSDK::MethodUnavailable + puts "\nThe method #get_available_servers is available for API version <= 1200" + end end puts "\nGetting the available networks" @@ -110,12 +112,14 @@ puts "\nServer Profile updated successfully!" # This method supports till OneView REST API Version 1200 -puts "\nGetting a new profile template of a given server profile" -begin - new_template = item2.get_profile_template - puts "\nNew template generated: \n#{new_template.data}" -rescue NoMethodError - puts "\nThe method #get_profile_template is available from API 500." +if @client.api_version <= 1200 + puts "\nGetting a new profile template of a given server profile" + begin + new_template = item2.get_profile_template + puts "\nNew template generated: \n#{new_template.data}" + rescue NoMethodError + puts "\nThe method #get_profile_template is available from API 500." + end end puts "\nRemoving the server profiles created is this sample" diff --git a/lib/oneview-sdk/resource/api2000/c7000/server_profile_template.rb b/lib/oneview-sdk/resource/api2000/c7000/server_profile_template.rb new file mode 100644 index 000000000..dd387dd5d --- /dev/null +++ b/lib/oneview-sdk/resource/api2000/c7000/server_profile_template.rb @@ -0,0 +1,22 @@ +# (C) Copyright 2020 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 '../../api1800/c7000/server_profile_template' + +module OneviewSDK + module API2000 + module C7000 + # Server Profile Template resource implementation on API2000 C7000 + class ServerProfileTemplate < OneviewSDK::API1800::C7000::ServerProfileTemplate + end + end + end +end diff --git a/lib/oneview-sdk/resource/api2000/synergy/server_profile.rb b/lib/oneview-sdk/resource/api2000/synergy/server_profile.rb new file mode 100644 index 000000000..f6807636e --- /dev/null +++ b/lib/oneview-sdk/resource/api2000/synergy/server_profile.rb @@ -0,0 +1,25 @@ +# (c) Copyright 2020 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/synergy/server_profile' +require_relative '../c7000/server_profile' + +module OneviewSDK + module API2000 + module Synergy + # Server profile resource implementation for API2000 Synergy + class ServerProfile < OneviewSDK::API2000::C7000::ServerProfile + extend OneviewSDK::API300::Synergy::SASLogicalJBODHelper + include OneviewSDK::API300::Synergy::ServerProfileHelper + end + end + end +end diff --git a/lib/oneview-sdk/resource/api2000/synergy/server_profile_template.rb b/lib/oneview-sdk/resource/api2000/synergy/server_profile_template.rb new file mode 100644 index 000000000..149acf28c --- /dev/null +++ b/lib/oneview-sdk/resource/api2000/synergy/server_profile_template.rb @@ -0,0 +1,22 @@ +# (C) Copyright 2020 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 '../c7000/server_profile_template' + +module OneviewSDK + module API2000 + module Synergy + # Server Profile Template resource implementation for API2000 Synergy + class ServerProfileTemplate < OneviewSDK::API2000::C7000::ServerProfileTemplate + end + end + end +end diff --git a/spec/unit/resource/api2000/c7000/server_profile_spec.rb b/spec/unit/resource/api2000/c7000/server_profile_spec.rb new file mode 100644 index 000000000..4fca3a948 --- /dev/null +++ b/spec/unit/resource/api2000/c7000/server_profile_spec.rb @@ -0,0 +1,20 @@ +# (C) Copyright 2020 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 'spec_helper' + +RSpec.describe OneviewSDK::API2000::C7000::ServerProfile do + include_context 'shared context' + + it 'inherits from OneviewSDK::API1800::C7000::ServerProfile' do + expect(described_class).to be < OneviewSDK::API1800::C7000::ServerProfile + end +end diff --git a/spec/unit/resource/api2000/c7000/server_profile_template_spec.rb b/spec/unit/resource/api2000/c7000/server_profile_template_spec.rb new file mode 100644 index 000000000..6a3e9ab18 --- /dev/null +++ b/spec/unit/resource/api2000/c7000/server_profile_template_spec.rb @@ -0,0 +1,20 @@ +# (C) Copyright 2020 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 'spec_helper' + +RSpec.describe OneviewSDK::API2000::C7000::ServerProfileTemplate do + include_context 'shared context' + + it 'inherits from OneviewSDK::API1800::C7000::ServerProfileTemplate' do + expect(described_class).to be < OneviewSDK::API1800::C7000::ServerProfileTemplate + end +end diff --git a/spec/unit/resource/api2000/synergy/server_profile_spec.rb b/spec/unit/resource/api2000/synergy/server_profile_spec.rb new file mode 100644 index 000000000..027828b03 --- /dev/null +++ b/spec/unit/resource/api2000/synergy/server_profile_spec.rb @@ -0,0 +1,20 @@ +# (C) Copyright 2020 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 'spec_helper' + +RSpec.describe OneviewSDK::API2000::Synergy::ServerProfile do + include_context 'shared context' + + it 'inherits from OneviewSDK::API2000::C7000::ServerProfile' do + expect(described_class).to be < OneviewSDK::API2000::C7000::ServerProfile + end +end diff --git a/spec/unit/resource/api2000/synergy/server_profile_template_spec.rb b/spec/unit/resource/api2000/synergy/server_profile_template_spec.rb new file mode 100644 index 000000000..66fc8ab08 --- /dev/null +++ b/spec/unit/resource/api2000/synergy/server_profile_template_spec.rb @@ -0,0 +1,20 @@ +# (C) Copyright 2020 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 'spec_helper' + +RSpec.describe OneviewSDK::API2000::Synergy::ServerProfileTemplate do + include_context 'shared context' + + it 'inherits from OneviewSDK::API2000::C7000::ServerProfileTemplate' do + expect(described_class).to be < OneviewSDK::API2000::C7000::ServerProfileTemplate + end +end