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