On 12/13/2019 1:48 AM, Blom, Merlin, NMU-OI wrote:
I wrote a *function for distinguishing an image instance from an boot from volume instance* for billing purpose.
But it does not work this way, it seems as if BfV Instances also have the Image property set.
*Is there an elegant solution other than analyzing the volume attachment state?*
This cloud be a problem, because an image instance cloud also have volumes.
def getBootFromVolInstances(serverId):
'''Determines wether an instance is a boot frome volume instance'''
server = conn.compute.find_server(serverId, ignore_missing=True)
if server:
if server.image:
return False
else:
return True
return False
I don't know what client-side tooling you're using (looks like the openstacksdk?) but a volume-backed server will have an 'image' parameter in the response body but it should be an empty string. From the API reference [1]: "The UUID and links for the image for your server instance. The image object might be an empty string when you boot the server from a volume." [1] https://docs.openstack.org/api-ref/compute/?expanded=show-server-details-det... -- Thanks, Matt