コード例 #1
0
        private EnvelopeType GetOvfEnvelope(out string error)
        {
            error = string.Empty;
            string path      = m_textBoxFile.Text;
            string extension = Path.GetExtension(path).ToLower();

            if (extension == ".ovf")
            {
                EnvelopeType env = null;

                try
                {
                    env = OVF.Load(path);
                }
                catch (OutOfMemoryException ex)
                {
                    log.ErrorFormat("Failed to load OVF {0} as we ran out of memory: {1}", path, ex.Message);
                    env = null;
                }

                if (env == null)
                {
                    error = Messages.INVALID_OVF;
                    return(null);
                }

                return(env);
            }

            if (extension == ".ova")
            {
                if (!CheckSourceIsWritable(out error))
                {
                    return(null);
                }

                try
                {
                    string x   = OVF.ExtractOVFXml(path);
                    var    env = Tools.DeserializeOvfXml(x);
                    if (env == null)
                    {
                        error = Messages.IMPORT_SELECT_APPLIANCE_PAGE_ERROR_CORRUPT_OVA;
                        return(null);
                    }
                    return(env);
                }
                catch (Exception)
                {
                    error = Messages.IMPORT_SELECT_APPLIANCE_PAGE_ERROR_CORRUPT_OVA;
                    return(null);
                }
            }

            return(null);
        }