in cli_tools/gce_ovf_export/exporter/exporter.go [143:176]
func (oe *OVFExporter) run(ctx context.Context) error {
oe.Logger.User("Starting OVF export.")
if oe.params.Timeout.Nanoseconds() > 0 {
var cancel func()
ctx, cancel = context.WithTimeout(ctx, oe.params.Timeout)
defer cancel()
}
//TODO: if machine image export, create instance from machine image and add it to cleanup
instance, err := oe.computeClient.GetInstance(oe.params.Project, oe.params.Zone, oe.params.InstanceName)
if err != nil {
return daisy.Errf("Error retrieving instance `%v`: %v", oe.params.InstanceName, err)
}
defer func() {
oe.cleanup(instance, err)
}()
if err = oe.prepare(ctx, instance); err != nil {
return err
}
if err := oe.exportDisks(ctx, instance); err != nil {
return err
}
if err := oe.inspectBootDisk(ctx); err != nil {
return err
}
if err = oe.generateDescriptor(ctx, instance); err != nil {
return err
}
if err = oe.generateManifest(ctx); err != nil {
return err
}
return nil
}