Beispiel #1
0
        public IDictionary <String, SchemaMetadataDiff> GetAllSchemaMetadataDiffs()
        {
            IDictionary <String, SchemaMetadataDiff> diffs
                = new Dictionary <String, SchemaMetadataDiff>();

            SchemaComparableList <SchemaEntry> baseAtEntries =
                baseEntryFetcher.GetAttributeSchemaEntries();
            SchemaComparableList <SchemaEntry> baseOcEntries =
                baseEntryFetcher.GetClassSchemaEntries();

            foreach (KeyValuePair <String, IEntryFetcher> p in entryFetchers)
            {
                String             serverName = p.Key;
                IEntryFetcher      fetcher    = p.Value;
                SchemaMetadataDiff diff       = null;
                if (fetcher != null)
                {
                    SchemaComparableList <SchemaEntry> otherAtEntries =
                        fetcher.GetAttributeSchemaEntries();
                    SchemaComparableList <SchemaEntry> otherOcEntries =
                        fetcher.GetClassSchemaEntries();

                    diff = new SchemaMetadataDiff(
                        baseAtEntries, baseOcEntries, otherAtEntries, otherOcEntries);
                }
                diffs.Add(serverName, diff);
            }
            return(diffs);
        }
        private static void listSchemaMetadataDiff(ISchemaConnection conn)
        {
            Console.WriteLine("SCHEMA METADATA DIFF");
            Console.WriteLine("---------");

            String baseServer = conn.GetBaseServerName();
            IDictionary <String, SchemaMetadataDiff> diffs = conn.GetAllSchemaMetadataDiffs();

            foreach (KeyValuePair <String, SchemaMetadataDiff> p in diffs)
            {
                String             server = p.Key;
                SchemaMetadataDiff diff   = p.Value;

                Console.WriteLine("Metadata comparsion between {0} and {1}", baseServer, server);
                if (diff != null)
                {
                    foreach (Tuple <SchemaEntry, SchemaEntry> t in diff.GetAttributeTypeDiff())
                    {
                        listSchemaMetadataDiffBreakdown(t.Item1, t.Item2);
                    }
                    foreach (Tuple <SchemaEntry, SchemaEntry> t in diff.GetObjectClassDiff())
                    {
                        listSchemaMetadataDiffBreakdown(t.Item1, t.Item2);
                    }
                }
                else
                {
                    Console.WriteLine("\tServer not reachable {0}", server);
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }
        private void ParseMetaData()
        {
            int row = (int)NodesTableView.SelectedRow;

            MetaDataDiff.Clear();
            if (row >= 0)
            {
                KeyValuePair <String, SchemaMetadataDiff> p = schemaDiff.ElementAt(row);
                {
                    CurrentNode = p.Key;
                    SchemaMetadataDiff diff = p.Value;
                    if (diff != null)
                    {
                        foreach (VmDirInterop.Schema.Utils.Tuple <SchemaEntry, SchemaEntry> t in diff.GetAttributeTypeDiff())
                        {
                            listSchemaMetadataDiffBreakdown(t.item1, t.item2);
                        }
                        foreach (VmDirInterop.Schema.Utils.Tuple <SchemaEntry, SchemaEntry> t in diff.GetObjectClassDiff())
                        {
                            listSchemaMetadataDiffBreakdown(t.item1, t.item2);
                        }
                    }
                    else
                    {
                        throw new Exception(VMDirSchemaConstants.NO_DATA_FOUND);
                    }
                }
            }
        }