92: def query
93: packages = []
94:
95: fields = [:desired, :error, :status, :name, :ensure]
96:
97: hash = {}
98:
99:
100: begin
101: output = dpkgquery("-W", "--showformat",
102: '${Status} ${Package} ${Version}\\n', @resource[:name]
103: )
104: rescue Puppet::ExecutionFailure
105:
106: return {:ensure => :purged, :status => 'missing',
107: :name => @resource[:name], :error => 'ok'}
108:
109: end
110:
111: hash = self.class.parse_line(output) || {:ensure => :absent, :status => 'missing', :name => @resource[:name], :error => 'ok'}
112:
113: if hash[:error] != "ok"
114: raise Puppet::Error.new(
115: "Package %s, version %s is in error state: %s" %
116: [hash[:name], hash[:ensure], hash[:error]]
117: )
118: end
119:
120: return hash
121: end