itchef/cookbooks/cpe_helpers/libraries/node_methods.rb (66 lines of code) (raw):
# Copyright (c) Facebook, Inc. and its affiliates.
#
# 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 '../../fb_helpers/libraries/node_methods'
class Chef
# Our extensions of the node object
class Node
def check_port_connectivity(host, port, timeout = 2)
CPE::Helpers.check_port_connectivity(host, port, timeout)
end
def chef_greater_than?(version)
Chef::Version.new(Chef::VERSION) > Chef::Version.new(version)
end
def chef_is?(version)
Chef::Version.new(Chef::VERSION) == Chef::Version.new(version)
end
def chef_less_than?(version)
Chef::Version.new(Chef::VERSION) < Chef::Version.new(version)
end
def dmi_ram_total
CPE::Helpers.dmi_ram_total(node)
end
def os_at_least?(version)
if arch? || debian_sid?
# Arch and debian/sid is a rolling release so it's always at a
# sufficient version
return true
end
Gem::Version.new(node['platform_version']) >= Gem::Version.new(version)
end
def os_at_most?(version)
if arch? || debian_sid?
# Arch and debian/sid is a rolling release so it's always at a
# sufficient version
return true
end
Gem::Version.new(node['platform_version']) <= Gem::Version.new(version)
end
def os_greater_than?(version)
if arch? || debian_sid?
# Arch and debian_sid is a rolling release so it's always at a
# sufficient version
return true
end
Gem::Version.new(node['platform_version']) > Gem::Version.new(version)
end
def os_less_than?(version)
if arch? || debian_sid?
# Arch and debian/sid is a rolling release so it's always "latest"
return false
end
Gem::Version.new(node['platform_version']) < Gem::Version.new(version)
end
def console_user
CPE::Helpers.console_user
end
def console_user_home_dir
CPE::Helpers.console_user_home_dir
end
def loginwindow?
CPE::Helpers.loginwindow?
end
def rpm_cmpver(verstr1, verstr2, compare_epoch = false)
CPE::Helpers.rpm_cmpver(verstr1, verstr2, compare_epoch)
end
def rpm_installed?(name, verstr = nil,
compare_epoch = false, exact = true)
CPE::Helpers.rpm_installed?(name, verstr, compare_epoch, exact)
end
def rpm_parsever(verstr)
CPE::Helpers.rpm_parsever(verstr)
end
def rpm_parserel(relstr)
CPE::Helpers.rpm_parserel(relstr)
end
end
end