def populate(data=nil)
path = "/servers/#{URI.encode(@id.to_s)}"
if data.nil? then
response = @compute.connection.req("GET", path)
OpenStack::Exception.raise_exception(response) unless response.code.match(/^20.$/)
data = JSON.parse(response.body)["server"]
end
@id = data["id"] || data["uuid"]
@name = data["name"]
@libvirt_id = data["OS-EXT-SRV-ATTR:instance_name"]
@fault = data["fault"]
@status = data["status"]
@state = data["OS-EXT-STS:task_state"]
@progress = data["progress"]
@addresses = get_addresses(data["addresses"])
@metadata = OpenStack::Compute::Metadata.new(@compute, path, data["metadata"])
@hostId = data["hostId"]
@image = data["image"] || data["imageId"]
@flavor = data["flavor"] || data["flavorId"]
@key_name = data["key_name"]
@created = data["created"]
@security_groups = (data["security_groups"] || [])
true
end