code: def get_os_version(instance):
      
      if instance.cloud == 'aws':
          client = boto3.client('ec2', instance.region)
          image_id = client.describe_instances(InstanceIds=[instance.id])['Reservations'][0]['Instances'][0]['ImageId']
          return '16.04' if '16.04' in client.describe_images(ImageIds=[image_id])['Images'][0]['Name'] else '14.04'
      if instance.cloud == 'gcp':
          credentials = GoogleCredentials.get_application_default()
          compute = discovery.build('compute', 'v1', credentials=credentials)
          for disk in compute.instances().get(instance=instance.name,
                                              zone=instance.zone,
                                              project=instance.project).execute()['disks']:
              if not disk.get('boot'):
                  continue
              for value in disk.get('licenses', []):
                  if '1604' in value:
                      return '16.04'
                  if '1404' in value:
                      return '14.04'
          return '14.04'
      return '14.04'
docs: Get OS Version for instances.