Esempio n. 1
0
        public static bool CacheExists(IDictionary <string, ConfigurationVersion> configs)
        {
            if (configs != null && configs.Count > 0)
            {
                int failedCount = 0;
                ConfigurationVersion latestConfig = null;
                foreach (KeyValuePair <string, ConfigurationVersion> config in configs)
                {
                    latestConfig = config.Value as ConfigurationVersion;
                    if (string.IsNullOrEmpty(latestConfig.ConfigID))
                    {
                        failedCount++;
                    }
                }
                if (failedCount < configs.Count)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            return(false);
        }
Esempio n. 2
0
 public MetaFrame(EncodingOptions options)
 {
     Name                    = new String();
     Description             = new LocalizedText();
     ConfigurationVersion    = new ConfigurationVersion();
     DiscoveryResponseHeader = new DiscoveryResponseHeader
     {
         ResponseType = 2
     };
 }
Esempio n. 3
0
        public static IConfigConverter CreateConverter(ConfigurationVersion Ver)
        {
            switch (Ver)
            {
            case ConfigurationVersion.Ver22:
                return(new ConfigConverter_22());

            default:
                return(null);
            }
        }
        public static string ToString(ConfigurationVersion Ver)
        {
            switch (Ver)
            {
            case ConfigurationVersion.Ver22:
                return("22");

            default:
                return("21");
            }
        }
Esempio n. 5
0
        public static bool VerifyClusterConfigurations(Alachisoft.NCache.Config.NewDom.CacheServerConfig serverConfig
                                                       , string cacheName)
        {
            if (serverConfig == null)
            {
                throw new Exception("Specified cache is not registered on the given server");
            }
            double           configVersion     = -1;
            double           deploymentVersion = -1;
            string           configId          = "dummyconfig";
            NCacheRPCService NCache            = new NCacheRPCService("");

            if (serverConfig.CacheSettings.CacheType == "clustered-cache")
            {
                foreach (Address node in serverConfig.CacheDeployment.Servers.GetAllConfiguredNodes())
                {
                    NCache.ServerName = node.IpAddress.ToString();

                    ICacheServer         cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30));
                    ConfigurationVersion config      = cacheServer.GetConfigurationVersion(cacheName);
                    if (configId.Equals(configId))
                    {
                        configId = config.ConfigID;
                    }

                    else if (!configId.Equals(config.ConfigID, StringComparison.InvariantCultureIgnoreCase))
                    {
                        throw new VersionException("same name cache is already registered on node : " + node.IpAddress, 0);
                    }

                    if (configVersion == -1)
                    {
                        configVersion = config.ConfigVersion;
                    }
                    else if (configVersion != config.ConfigVersion)
                    {
                        throw new VersionException("There is a configuration mismatch for caches : " + cacheName, 0);
                    }

                    if (deploymentVersion == -1)
                    {
                        deploymentVersion = config.DeploymentVersion;
                    }
                    else if (deploymentVersion != config.DeploymentVersion)
                    {
                        throw new Exception("Deployment version is not same on all nodes");
                    }

                    cacheServer.Dispose();
                }
            }
            return(true);
        }
Esempio n. 6
0
 internal void UpdateDataSet(DomainModelWrapper domainMode, SemanticsDataIndexWrapper selectedIndex, bool newVersion)
 {
     InformationModelURI = domainMode.URI.ToString();
     Id = domainMode.UniqueName;
     ConfigurationGuid = Guid.NewGuid();
     if (newVersion)
     {
         ConfigurationVersion.IncrementMajorVersion();
     }
     DataSet = CreateDataSet(selectedIndex);
     DefaultDataSetWriterId = Convert.ToUInt16(domainMode.SemanticsDataCollection.IndexOf(selectedIndex));
     MaxBufferTime          = -1;
     RepositoryGroup        = String.Empty;
     SymbolicName           = selectedIndex.SymbolicName;
 }
Esempio n. 7
0
        /// <summary>
        /// TfeClient
        /// </summary>
        /// <param name="config"></param>
        public TfeClient(TfeConfig config)
        {
            this.client = config.HttpClient;

            Apply                = new Apply(client);
            Organization         = new Organization(client);
            SshKey               = new SshKey(client);
            Run                  = new Run(client);
            Workspace            = new Workspace(client);
            WorkspaceVariable    = new WorkspaceVariable(client);
            OAuthClient          = new OAuthClient(client);
            OAuthToken           = new OAuthToken(client);
            StateVersion         = new StateVersion(client);
            StateVersionOutput   = new StateVersionOutput(client);
            TeamWorkspace        = new TeamWorkspace(client);
            Plan                 = new Plan(client);
            ConfigurationVersion = new ConfigurationVersion(client);
        }
Esempio n. 8
0
        public static double GetLatestConfigurationversion(IDictionary <string, ConfigurationVersion> configs)
        {
            if (configs != null && configs.Count > 0)
            {
                ConfigurationVersion latestConfig = null;
                double number = 0;
                foreach (KeyValuePair <string, ConfigurationVersion> config in configs)
                {
                    latestConfig = config.Value as ConfigurationVersion;
                    if (latestConfig.ConfigVersion > number)
                    {
                        number = latestConfig.ConfigVersion;
                    }
                }
                return(number);
            }

            return(0);
        }
Esempio n. 9
0
        public bool IsMetaMessageAlreadyKnown(string publisherID, ushort writerID, ConfigurationVersion cfg)
        {
            if (string.IsNullOrWhiteSpace(publisherID))
            {
                return(false);
            }
            if (!m_DeviceMetaMessages.ContainsKey(publisherID))
            {
                return(false);
            }
            ConcurrentDictionary <ushort, ConcurrentDictionary <ConfigurationVersion, MetaFrame> > writerIDs = m_DeviceMetaMessages[publisherID];

            if (!writerIDs.ContainsKey(writerID))
            {
                return(false);
            }
            ConcurrentDictionary <ConfigurationVersion, MetaFrame> metaMessages = writerIDs[writerID];

            return(metaMessages.ContainsKey(cfg));
        }
Esempio n. 10
0
        /// <summary>
        ///     Decodes just the DataSetMetaData Message omitting the DiscoveryResponse Header.
        /// </summary>
        /// <param name="inputStream"></param>
        /// <param name="instance"></param>
        /// <returns></returns>
        protected static bool DeocdeChunk(Stream inputStream, EncodingOptions options, ref MetaFrame instance)
        {
            instance.DataSetWriterID = BaseType.ReadUInt16(inputStream)
                                       .Value;
            instance.Namespaces         = ParseNamespaceArray(inputStream);
            instance.StructureDataTypes = ParseStructureDescriptions(inputStream);

            // if (instance.StructureDataTypes != null)
            //    DataPointsManager.UpdateStructureDescription(instance.StructureDataTypes);
            instance.EnumDataTypes = ParseEnumDescriptions(inputStream);

            // Simple Data Types are currently not supported
            int?arrayLength = BaseType.ReadInt32(inputStream);

            if (arrayLength > 0)
            {
                // Simple Data Types are not supported
                // ToDo: Log error
                return(false);
            }
            instance.Name              = String.Decode(inputStream);
            instance.Description       = LocalizedText.Decode(inputStream);
            instance.FieldMetaDataList = ParseFieldMetaDataArray(inputStream, options);
            byte[] guidAsByte = Common.ReadBytes(inputStream, 16);
            if (guidAsByte != null && guidAsByte.Length == 16)
            {
                instance.DataSetClassID = new Guid(guidAsByte);
            }
            instance.ConfigurationVersion = ConfigurationVersion.Decode(inputStream);
            uint?readValue = BaseType.ReadUInt32(inputStream);

            if (readValue != null)
            {
                instance.StatusCode = readValue.Value;
            }
            else
            {
                return(false);
            }
            return(true);
        }
Esempio n. 11
0
        public static string GetLatestSettingsConfiguration(IDictionary <string, ConfigurationVersion> configs)
        {
            if (configs != null && configs.Count > 0)
            {
                string latestserver = null;
                ConfigurationVersion latestConfig = null;
                double number = 0;
                foreach (KeyValuePair <string, ConfigurationVersion> config in configs)
                {
                    latestConfig = config.Value as ConfigurationVersion;
                    if (latestConfig.ConfigVersion > number)
                    {
                        number       = latestConfig.ConfigVersion;
                        latestserver = config.Key.ToString();
                    }
                }
                return(latestserver);
            }

            return(null);
        }
Esempio n. 12
0
        private void UpgradeConfigIfNeeded(string file)
        {
            string Text = string.Empty;

            ConfigurationVersion Ver = Parser.GetVersion(TheLauncher.SelectedConfig);

            if (Ver < Launcher.CurrentVersion)
            {
                AppLogger.Log("An outdated config file selected.");
                Text += "Selected config file doesn't match the current version of the nDisplayLauncher. ";
                Text += "Would you like to convert this file automatically? A new file will be created and added to the list.";

                System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show(Text, "Wrong config file format", MessageBoxButtons.YesNo);
                if (dialogResult == System.Windows.Forms.DialogResult.Yes)
                {
                    string NewFile = string.Empty;
                    if (PerformConfigUpgrade(TheLauncher.SelectedConfig, ref NewFile))
                    {
                        Text  = "Conversion successful. The newly created file was added to the list.\n";
                        Text += NewFile;
                        Text += "\nDon't forget to deploy the new config file to your remote machines.";
                        System.Windows.Forms.MessageBox.Show(Text, "Success", MessageBoxButtons.OK);
                    }
                    else
                    {
                        Text = "Conversion failed. Please try to upgrade the configuration file manually.";
                        System.Windows.Forms.MessageBox.Show(Text, "Failed", MessageBoxButtons.OK);
                    }
                }
                else
                {
                    AppLogger.Log("Config file upgrade skipped.");
                }
            }
            else if (Ver > Launcher.CurrentVersion)
            {
                Text = "Incompatible configuration file";
                System.Windows.Forms.MessageBox.Show(Text, "Failed", MessageBoxButtons.OK);
            }
        }
 /// <summary>
 /// Create service model from api model
 /// </summary>
 public DataSetMetaDataModel ToServiceModel()
 {
     return(new DataSetMetaDataModel {
         Name = Name,
         ConfigurationVersion = ConfigurationVersion?.ToServiceModel(),
         DataSetClassId = DataSetClassId,
         Description = Description?.ToServiceModel(),
         Fields = Fields?
                  .Select(f => f.ToServiceModel())
                  .ToList(),
         EnumDataTypes = EnumDataTypes?
                         .Select(f => f.ToServiceModel())
                         .ToList(),
         StructureDataTypes = StructureDataTypes?
                              .Select(f => f.ToServiceModel())
                              .ToList(),
         SimpleDataTypes = SimpleDataTypes?
                           .Select(f => f.ToServiceModel())
                           .ToList(),
         Namespaces = Namespaces?.ToList()
     });
 }
Esempio n. 14
0
        /// <summary>
        ///     Encodes just the DataSetMetaData message to the given Stream.
        ///     NetworkMessage Header and DiscoveryResponse are not encoded.
        /// </summary>
        /// <param name="outputStream"></param>
        public void EncodeChunk(Stream outputStream)
        {
            DiscoveryResponseHeader.Encode(outputStream);

            // DataSetWriterID
            BaseType.WriteToStream(outputStream, BitConverter.GetBytes(DataSetWriterID));
            EncodeDataTypeSchemaHeaderStructure(outputStream);

            // Name
            Name.Encode(outputStream);

            // Description
            Description.Encode(outputStream);

            // Fields
            int fieldLength = -1;

            if (FieldMetaDataList != null)
            {
                fieldLength = FieldMetaDataList.Count;
            }
            BaseType.WriteToStream(outputStream, BitConverter.GetBytes(fieldLength));
            for (int i = 0; i < fieldLength; i++)
            {
                // ReSharper disable once PossibleNullReferenceException
                FieldMetaData field = FieldMetaDataList[i] ?? new FieldMetaData(Options);
                field.Encode(outputStream);
            }

            // DataSet Class ID
            BaseType.WriteToStream(outputStream, DataSetClassID.ToByteArray());

            // Version
            ConfigurationVersion.Encode(outputStream);

            // Status Code
            BaseType.WriteToStream(outputStream, BitConverter.GetBytes(StatusCode));
        }
Esempio n. 15
0
        public void StoreMetaMessageLocally(MetaFrame metaFrame)
        {
            string pubID = metaFrame.NetworkMessageHeader.PublisherID.Value;
            ConfigurationVersion configVersion = metaFrame.ConfigurationVersion;
            ushort writerID = metaFrame.DataSetWriterID;

            if (IsMetaMessageAlreadyKnown(pubID, writerID, configVersion))
            {
                return;
            }
            if (Logger.IsInfoEnabled)
            {
                Logger.Info($"Storing meta message for {pubID} with version {configVersion}.");
            }
            if (!m_DeviceMetaMessages.TryGetValue(pubID, out ConcurrentDictionary <ushort, ConcurrentDictionary <ConfigurationVersion, MetaFrame> > publisherDictionary))
            {
                publisherDictionary = new ConcurrentDictionary <ushort, ConcurrentDictionary <ConfigurationVersion, MetaFrame> >();
                m_DeviceMetaMessages.TryAdd(pubID, publisherDictionary);
            }
            if (!publisherDictionary.TryGetValue(writerID, out ConcurrentDictionary <ConfigurationVersion, MetaFrame> cfgDictionary))
            {
                cfgDictionary = new ConcurrentDictionary <ConfigurationVersion, MetaFrame>();
                publisherDictionary.TryAdd(writerID, cfgDictionary);
            }
            if (cfgDictionary.Count > 10)
            {
                MetaFrame dummy;
                cfgDictionary.TryRemove(cfgDictionary.Keys.OrderBy(a => a)
                                        .First(),
                                        out dummy
                                        );
            }

            // Add the Meta Message if it doesn't exist yet or if it's already present, replace it.
            cfgDictionary.AddOrUpdate(configVersion, metaFrame, (existingVersion, existingFrame) => metaFrame);
        }
Esempio n. 16
0
        /// <summary>
        ///     Encodes just the common part of the DataSet Message (e.g. Flags 1 & Flags 2,
        ///     Configuration Version and Message Sequence Number.
        /// </summary>
        /// <param name="outputStream"></param>
        public virtual void EncodeChunk(Stream outputStream)
        {
            // 3. DataSetFlags1
            outputStream.WriteByte(Flags1.RawValue);

            // 4. DataSetFlags2
            if (Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetFlags2Enabled))
            {
                outputStream.WriteByte(Flags2.RawValue);
            }

            // 5. Message Sequence Number
            if (Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetSequenceNumberEnabled))
            {
                BaseType.WriteToStream(outputStream, BitConverter.GetBytes(DataSetMessageSequenceNumber));
            }

            // evaluate the following options only if DataSetFlags2 field is provided
            if (Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetFlags2Enabled))
            {
                // Timestamp
                if (Flags2.Flags2.HasFlag(DataSetFlags2Enum.TimeStampEnabled))
                {
                    BaseType.WriteToStream(outputStream, BitConverter.GetBytes(Convert.ToInt64(Timestamp.ToFileTimeUtc())));
                }
            }

            // 6. Configuration Version
            if (Flags1.Flags1.HasFlag(DataSetFlags1Enum.ConfigurationVersionMajorVersion) ||
                Flags1.Flags1.HasFlag(DataSetFlags1Enum.ConfigurationVersionMinorVersion))
            {
                // we always send both, minor and major version; ensure that both
                // bits are set in DataSetFlags1
                ConfigurationVersion.Encode(outputStream);
            }
        }
        public static ConversionResult Convert(string OrigFile, ConfigurationVersion ToVerison)
        {
            ConversionResult Result = new ConversionResult();

            ConfigurationVersion Ver = Parser.GetVersion(OrigFile);

            try
            {
                string OldFile = OrigFile;
                for (int i = (int)Ver + 1; i <= (int)Launcher.CurrentVersion; ++i)
                {
                    Result.NewConfigFile = OldFile.Insert(OldFile.Length - ".cfg".Length, "." + ((ConfigurationVersion)i).ToString());

                    IConfigConverter Converter = ConverterFactory.CreateConverter((ConfigurationVersion)i);
                    if (Converter == null)
                    {
                        AppLogger.Log("Unknown config format");
                        return(Result);
                    }

                    Result.Success = Converter.Convert(OldFile, Result.NewConfigFile);
                    if (!Result.Success)
                    {
                        throw new Exception(string.Format("Couldn't convert\n%s\n\to\n%s", OldFile, Result.NewConfigFile));
                    }

                    OldFile = Result.NewConfigFile;
                }
            }
            catch (Exception ex)
            {
                AppLogger.Log("Conversion error: " + ex.Message);
            }

            return(Result);
        }
Esempio n. 18
0
        public static bool DecodeChunk(Stream inputStream, ref DataFrame instance)
        {
            // 3. DataSetFlags1
            instance.Flags1.RawValue = (byte)inputStream.ReadByte();

            // 4. DataSetFlags2
            if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetFlags2Enabled))
            {
                instance.Flags2.RawValue = (byte)inputStream.ReadByte();
            }

            // 5. Message Sequence Number
            if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetSequenceNumberEnabled))
            {
                ushort?sequence = BaseType.ReadUInt16(inputStream);
                if (sequence != null)
                {
                    instance.DataSetMessageSequenceNumber = sequence.Value;
                }
                else
                {
                    // ToDo: Log error
                    return(false);
                }
            }

            // evaluate the following options only if DataSetFlags2 field is provided
            if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.DataSetFlags2Enabled))
            {
                // Timestamp
                if (instance.Flags2.Flags2.HasFlag(DataSetFlags2Enum.TimeStampEnabled))
                {
                    long?timestamp = BaseType.ReadInt64(inputStream);
                    if (timestamp != null)
                    {
                        instance.Timestamp = DateTime.FromFileTimeUtc(timestamp.Value);

                        //instance.Timestamp = DateTime.FromBinary(timestamp.Value);
                    }
                    else
                    {
                        // ToDo: Log error
                        return(false);
                    }
                }
            }

            // 6. Major & Minor
            //
            // we always expect both, minor and major version; ensure that both
            // bits are set in DataSetFlags1
            //
            if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.ConfigurationVersionMajorVersion))
            {
                if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.ConfigurationVersionMinorVersion))
                {
                    // read minor and major version, must both exist
                    instance.ConfigurationVersion = ConfigurationVersion.Decode(inputStream);
                }
                else
                {
                    throw new Exception("DataSetMessageHeader: Minor Configuration Version not present.");
                }
            }
            else
            {
                if (instance.Flags1.Flags1.HasFlag(DataSetFlags1Enum.ConfigurationVersionMinorVersion))
                {
                    throw new Exception("DataSetMessageHeader: Major Configuration Version not present.");
                }
            }
            return(true);
        }
Esempio n. 19
0
        public override void InitializeFromText(string text)
        {
            string StrVersion = Parser.GetStringValue("version", text);

            Version = ConfigurationVersionHelpers.FromString(StrVersion);
        }
Esempio n. 20
0
 public MetaFrame RetrieveMetaMessageLocally(string publisherId, ushort writerID, ConfigurationVersion cfgVersion)
 {
     if (string.IsNullOrEmpty(publisherId))
     {
         return(null);
     }
     if (!m_DeviceMetaMessages.TryGetValue(publisherId,
                                           out ConcurrentDictionary <ushort, ConcurrentDictionary <ConfigurationVersion, MetaFrame> > deviceMetaMessages
                                           ))
     {
         return(null);
     }
     if (!deviceMetaMessages.TryGetValue(writerID, out ConcurrentDictionary <ConfigurationVersion, MetaFrame> metaDictionary))
     {
         return(null);
     }
     if (!metaDictionary.TryGetValue(cfgVersion, out MetaFrame metaMessage))
     {
         return(null);
     }
     return(metaMessage);
 }