# # Copyright:: Copyright 2018-2020, Chef Software Inc. # License:: Apache License, Version 2.0 # # 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 "../internal" module ChefUtils module DSL module Cloud include Internal # Determine if the current node is "in the cloud". # # @param [Chef::Node] node # # @return [Boolean] # def cloud?(node = __getnode) node.key?("cloud") end # Return true if the current current node is in EC2 # # @param [Chef::Node] node # # @return [Boolean] # def ec2?(node = __getnode) node.key?("ec2") end # Return true if the current current node is in GCE # # @param [Chef::Node] node # # @return [Boolean] # def gce?(node = __getnode) node.key?("gce") end # Return true if the current current node is in Rackspace # # @param [Chef::Node] node # # @return [Boolean] # def rackspace?(node = __getnode) node.key?("rackspace") end # Return true if the current current node is in Eucalyptus # # @param [Chef::Node] node # # @return [Boolean] # def eucalyptus?(node = __getnode) node.key?("eucalyptus") end alias_method :euca?, :eucalyptus? # Return true if the current current node is in Linode # # @param [Chef::Node] node # # @return [Boolean] # def linode?(node = __getnode) node.key?("linode") end # Return true if the current current node is in Openstack # # @param [Chef::Node] node # # @return [Boolean] # def openstack?(node = __getnode) node.key?("openstack") end # Return true if the current current node is in Azure # # @param [Chef::Node] node # # @return [Boolean] # def azure?(node = __getnode) node.key?("azure") end # Return true if the current current node is in DigitalOcean # # @param [Chef::Node] node # the node to check # # @return [Boolean] # def digital_ocean?(node = __getnode) node.key?("digital_ocean") end alias_method :digitalocean?, :digital_ocean? # Return true if the current current node is in SoftLayer # # @param [Chef::Node] node # the node to check # # @return [Boolean] # def softlayer?(node = __getnode) node.key?("softlayer") end extend self end end end