def wait_for_id(timeout=14400, delay=30)
filterStr = Fog::JSON.encode({
"hardware" => {
"hostname" => {
"operation" => self.name,
},
"domain" => {
"operation" => self.domain,
},
"globalIdentifier" => {
"operation" => self.uid,
},
}
})
Fog.wait_for(timeout, delay) do
res = service.request(:account, 'getHardware', :query => {
:objectMask => 'mask[id,fullyQualifiedDomainName,provisionDate,hardwareStatus,lastTransaction[elapsedSeconds,transactionStatus[friendlyName]],operatingSystem[id,passwords[password,username]]]',
:objectFilter => filterStr,
})
server = res.body.first
yield server if block_given?
if server and server["provisionDate"]
attributes[:id] = server['id']
true
else
false
end
end
self.reload
true
end