Amazon.EC2.Util.ImageUtilities.ParseAMIDefinitions C# (CSharp) Метод

ParseAMIDefinitions() приватный статический Метод

Parses the ami definition content into the ImageDescriptor members.
private static ParseAMIDefinitions ( StreamReader reader ) : void
reader System.IO.StreamReader A reader of the ami definitions
Результат void
        private static void ParseAMIDefinitions(StreamReader reader)
        {
            try
            {
                var jdata = JsonMapper.ToObject(reader);

                var platformTags = new string[]
                {
                    WindowsImagesTag,
                    LinuxImagesTag
                };

                var parsedDefinitionsMap = new Dictionary<string, string>();
                foreach (var platformTag in platformTags)
                {
                    var imageDefinitions = jdata[platformTag];
                    if (imageDefinitions == null)
                    {
                        Logger.InfoFormat("Parsing AMI definitions - did not find any images for platform tag '{0}'", platformTag);
                        continue;
                    }

                    for (int d = 0; d < imageDefinitions.Count; d++)
                    {
                        var def = imageDefinitions[d];
                        var key = (string)def[DefinitionKeyTag];
                        var prefix = (string)def[DefinitionPrefixTag];

                        if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(prefix))
                            parsedDefinitionsMap[key] = prefix;
                        else
                            Logger.InfoFormat("Parsing AMI definitions - found malformed descriptor entry for definition index {0} in platform group {1}, discarded", d, platformTag);
                    }
                }

                foreach (var d in WindowsDescriptors)
                {
                    if (parsedDefinitionsMap.ContainsKey(d.DefinitionKey))
                        d.NamePrefix = parsedDefinitionsMap[d.DefinitionKey];
                    else
                        Logger.InfoFormat("Parsing AMI definitions - did not find entry for Windows image descriptor '{0}' after parsing", d.DefinitionKey);
                }

                foreach (var d in LinuxDescriptors)
                {
                    if (parsedDefinitionsMap.ContainsKey(d.DefinitionKey))
                        d.NamePrefix = parsedDefinitionsMap[d.DefinitionKey];
                    else
                        Logger.InfoFormat("Parsing AMI definitions - did not find entry for Linux image descriptor '{0}' after parsing", d.DefinitionKey);
                }
            }
            catch (Exception e)
            {
                Logger.Error(e, "Exception whilst parsing AMI definitions file.");
            }
        }