commands :apt_key => 'apt-key'
def self.instances
- key_array = apt_key('list').split("\n").collect do |line|
+ if RUBY_VERSION > '1.8.7'
+ key_output = apt_key('list').encode('UTF-8', 'binary', :invalid => :replace, :undef => :replace, :replace => '')
+ else
+ key_output = apt_key('list')
+ end
+ key_array = key_output.split("\n").collect do |line|
line_hash = key_line_hash(line)
next unless line_hash
expired = false
end
def source_to_file(value)
- if URI::parse(value).scheme.nil?
+ parsedValue = URI::parse(value)
+ if parsedValue.scheme.nil?
fail("The file #{value} does not exist") unless File.exists?(value)
value
else
begin
- key = open(value, :ftp_active_mode => false).read
+ key = parsedValue.read
rescue OpenURI::HTTPError, Net::FTPPermError => e
fail("#{e.message} for #{resource[:source]}")
rescue SocketError
end
def destroy
+ #Currently del only removes the first key, we need to recursively list and ensure all with id are absent.
apt_key('del', resource[:id])
@property_hash.clear
end