public void GenErrorNonRepeater0() { var handler = new GetBulkMessageHandler(); var mock = new Mock<ScalarObject>(new ObjectIdentifier("1.3.6.1.2.1.1.2.0")); mock.Setup(foo => foo.Data).Throws<Exception>(); mock.Setup(foo => foo.MatchGet(new ObjectIdentifier("1.3.6.1.2.1.1.2.0"))).Returns(mock.Object); mock.Setup(foo => foo.MatchGetNext(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))).Returns(mock.Object); var store = new ObjectStore(); store.Add(new SysDescr()); store.Add(mock.Object); var context = SnmpContextFactory.Create( new GetBulkRequestMessage( 300, VersionCode.V2, new OctetString("lextm"), 0, 2, new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); handler.Handle(context, store); var genError = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.GenError, genError.ErrorStatus); }
public void BadValue() { var handler = new SetV1MessageHandler(); var mock = new Mock<ScalarObject>(new ObjectIdentifier("1.3.6.1.2.1.1.4.0")); mock.Setup(foo => foo.Data).Throws<Exception>(); mock.Setup(foo => foo.MatchGet(new ObjectIdentifier("1.3.6.1.2.1.1.4.0"))).Returns(mock.Object); mock.SetupSet(foo => foo.Data = new Integer32(400)).Throws<ArgumentException>(); var store = new ObjectStore(); store.Add(mock.Object); var context = SnmpContextFactory.Create( new SetRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.4.0"), new Integer32(400)) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); handler.Handle(context, store); var badValue = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.BadValue, badValue.ErrorStatus); }
public void NoErrorNonRepeater0() { var handler = new GetBulkMessageHandler(); var context = SnmpContextFactory.Create( new GetBulkRequestMessage( 300, VersionCode.V2, new OctetString("lextm"), 0, 2, new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); var store = new ObjectStore(); store.Add(new SysDescr()); store.Add(new SysObjectId()); store.Add(new SysUpTime()); store.Add(new SysContact()); store.Add(new SysName()); Assert.Throws<ArgumentNullException>(() => handler.Handle(null, null)); Assert.Throws<ArgumentNullException>(() => handler.Handle(context, null)); handler.Handle(context, store); var noerror = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.NoError, noerror.ErrorStatus); Assert.AreEqual(new ObjectIdentifier("1.3.6.1.2.1.1.2.0"), noerror.Variables()[0].Id); Assert.AreEqual(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"), noerror.Variables()[1].Id); Assert.AreEqual(2, noerror.Variables().Count); }
/// <summary> /// Initializes a new instance of the <see cref="SnmpApplication"/> class. /// </summary> /// <param name="owner">The owner.</param> /// <param name="logger">The logger.</param> /// <param name="store">The store.</param> /// <param name="provider">The provider.</param> /// <param name="factory">The factory.</param> public SnmpApplication(SnmpApplicationFactory owner, ILogger logger, ObjectStore store, IMembershipProvider provider, MessageHandlerFactory factory) { _owner = owner; _provider = provider; _logger = logger; _store = store; _factory = factory; }
public void AddRemove() { Id<TestObject> id; TestObject o, p; UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); undomgr.BeginCommand(57, "Command1"); o = new TestObject(5, "hello", 5.4F); id = objstore.Add(o); Assert.AreEqual(1, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(1))); p = objstore[new Id<TestObject>(1)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); o = new TestObject(6, "hi", 5.4F); id = objstore.Add(o); Assert.AreEqual(2, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(2))); p = objstore[new Id<TestObject>(2)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); objstore.Remove(new Id<TestObject>(1)); Assert.IsFalse(objstore.IsPresent(new Id<TestObject>(1))); o = new TestObject(7, "xx", 1.1F); id = objstore.Add(o); Assert.AreEqual(3, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(3))); p = objstore[new Id<TestObject>(3)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); objstore.Remove(new Id<TestObject>(3)); int count = 0; foreach (TestObject x in objstore.All) { Assert.AreEqual(x, new TestObject(6, "hi", 5.4F)); ++count; } Assert.AreEqual(1, count); undomgr.EndCommand(57); }
public WMCDataSource() { SHA256 sha = SHA256Managed.Create(); // This is the magic way to get R/W access to the database. Cannot be guaranteed to work in future versions of windows string providerName = Encoding.Unicode.GetString(Convert.FromBase64String("QQBuAG8AbgB5AG0AbwB1AHMAIQBVAHMAZQByAA==")); string epgClientID = ObjectStore.GetClientId(true); byte[] epgBytes = Encoding.Unicode.GetBytes(epgClientID); byte[] epgHashed = sha.ComputeHash(epgBytes); string providerPassword = Convert.ToBase64String(epgHashed); os = ObjectStore.Open(providerName, providerPassword); recScheduler = new Scheduler(os, ScheduleConflictSource.AutomaticUpdate); channels = new Lazy<List<Channel>>(GetAllChannels); }
public static KonaSite GetSite(string url) { IObjectStore store=new ObjectStore(); KonaSite site = store.Get<KonaSite>("Site", url); if (site == null) { site = new KonaSite(); site.AdminEmail = "*****@*****.**"; site.Description = "Fuji Test Site"; site.IsPublic = true; site.LanguageCode = "en"; site.Owner = "admin"; site.OwnerName = "Microsoft Corporation"; site.SiteHost = "localhost"; site.SiteName = "Kona Demo Site"; site.SiteUrl = url; site.SiteID = Guid.NewGuid(); site.RPXAPIKey = "9b9002f34658471c99ac569e125dca9afa095132"; site.RPXNowUrl = "https://localhost18622.rpxnow.com/openid/embed"; site.AddressForm = "USDefault"; site.AcceptCreditCards = true; site.AcceptPayPal = true; site.AcceptPOs = false; site.PayPalPDTToken = "JijaVlgNlwzXc5N_Zj53LS-v5EmzqsQGMa6eZcKyXad8hH7dn08ntEZlcAW"; site.CreditCardForm = "DefaultCreditCard"; site.PayPalForm = "DefaultPayPalStandard"; site.CurrencyCode = "USD"; site.PayPalBusinessEmail = "*****@*****.**"; site.OrderDetailView = "DefaultItems"; site.OrderHeaderView = "DefaultHeader"; site.SMTPLogin = "******"; site.SMTPPassword = "******"; site.SMTPServer = "Myserver.com"; site.TaxPlugin = "USTaxCalculator"; site.ShippingPlugin = "SimpleShippingCalculator"; site.CreditCardProcessor = "FakeProcessor"; } // In case the deserialization format changed or sth went wrong if (string.IsNullOrEmpty(site.ThemeName)) { site.ThemeName = "Eko"; } return site; }
public void NoSuchInstance() { var handler = new GetMessageHandler(); var context = SnmpContextFactory.Create( new GetRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); var store = new ObjectStore(); handler.Handle(context, store); var nosuchinstance = (ResponseMessage)context.Response; Assert.AreEqual(new NoSuchInstance(), nosuchinstance.Variables()[0].Data); }
public void NoSuchName() { var handler = new GetNextV1MessageHandler(); var store = new ObjectStore(); store.Add(new SysDescr()); var context = SnmpContextFactory.Create( new GetNextRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.2.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); handler.Handle(context, store); var noSuchName = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.NoSuchName, noSuchName.ErrorStatus); }
public void EndOfMibView() { var handler = new GetNextMessageHandler(); var store = new ObjectStore(); store.Add(new SysDescr()); var context = SnmpContextFactory.Create( new GetNextRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.2.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); handler.Handle(context, store); var endOfMibView = (ResponseMessage)context.Response; Assert.AreEqual(new ObjectIdentifier("1.3.6.1.2.1.1.2.0"), endOfMibView.Variables()[0].Id); Assert.AreEqual(new EndOfMibView(), endOfMibView.Variables()[0].Data); }
static void InsertAndSearchStudents() { const string dbFileName = "book5.ood"; const string indexFileName = dbFileName + ".idx"; const int limit = 600000; const int searchLimit = 1000; Console.WriteLine(string.Format(@"This program will try to create {0} People records and saved them in a database file, close the file, then re-open the file to query {1} records.", limit, searchLimit)); Console.WriteLine(""); if (File.Exists(dbFileName)) { File.Delete(dbFileName); } if (File.Exists(indexFileName)) { File.Delete(indexFileName); } OOD.ObjectStore os = new ObjectStore(dbFileName); Console.WriteLine("Database file was created. Ready to insert new records."); int succeed = 0, error = 0; System.DateTime start, end; for (int i = 0; i < limit; i++) { Student st = new Student( i, "Yanhao Zhu" + i.ToString(), ((i & 1) == 0 ? 'F' : 'M'), ((i & 1) == 0 ? new DateTime(1976, 1, 1) : new DateTime(1974, 7, 27)) ); os.Put(st); if (i % 60 == 0) { Console.Write(i.ToString() + "\r"); } } os.Close(); Console.WriteLine("Database file was closed."); os = new ObjectStore(dbFileName); Console.WriteLine("Database file was re-opened. Ready to search."); succeed = error = 0; start = System.DateTime.Now; for (int i = 0; i < searchLimit; i++) { System.Random ran = new Random(i); int m = ran.Next(limit - 1); string Query = "select Demo.Student where m_id = " + i.ToString(); Student back = (Student)os.SearchScalar(Query); if (back != null) { Console.Write(back.ID + "\r"); succeed++; } else { error++; } } end = System.DateTime.Now; Console.WriteLine("OOD Search finished, {0} succeed, {1} failed. Takes {2}", succeed, error, end - start); os.Close(); Console.Write("Database file was closed. Press any key to exit."); Console.Read(); }
public void Setup() { _objectStore = new ObjectStore(); }
public static async Task <Pipeline> LoadFromPackedAsync(Stream inputStream) { using (var zip = new ZipArchive(inputStream, ZipArchiveMode.Read, leaveOpen: true)) { var infoEntry = zip.GetEntry("info.bin"); StoredObjectInfo info; using (var s = infoEntry.Open()) { info = MessagePack.MessagePackSerializer.Deserialize <StoredObjectInfo>(s, LZ4Standard); } var pipeline = new Pipeline(info.Language, info.Version, info.Tag); var pipeEntry = zip.GetEntry("pipeline.bin"); using (var s = pipeEntry.Open()) { pipeline.Data = MessagePack.MessagePackSerializer.Deserialize <PipelineData>(s, LZ4Standard); } foreach (var process in pipeline.Data.Processes) { if (ObjectStore.TryGetType(process.ModelType, out var type)) { object model = null; foreach (var constructorInfo in type.GetConstructors().Concat(type.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic))) { var parameters = constructorInfo.GetParameters(); if (parameters.Length == 3 && parameters[0].ParameterType == typeof(Language) && parameters[1].ParameterType == typeof(int) && parameters[2].ParameterType == typeof(string)) { //Found a good one model = constructorInfo.Invoke(new object[] { process.Language, process.Version, process.Tag }); break; } if (parameters.Length == 2 && parameters[0].ParameterType == typeof(Language) && parameters[1].ParameterType == typeof(int)) { //Found a good one model = constructorInfo.Invoke(new object[] { process.Language, process.Version }); break; } if (parameters.Length == 1 && parameters[0].ParameterType == typeof(Language)) { //Found a good one model = constructorInfo.Invoke(new object[] { process.Language }); break; } } var dataProperty = model.GetType().GetProperty(nameof(Spotter.Data)); //Uses spotter just to get the name of the .Data property from StorableObject<,> instead of hard-coding if (dataProperty is object) { var entry = zip.GetEntry(process.ToString() + ".bin"); using (var s = entry.Open()) using (var ms = new MemoryStream()) { await s.CopyToAsync(ms); var bytes = ms.ToArray(); var deserializer = SerializationHelper.CreateDeserializer(dataProperty.PropertyType); var modelData = deserializer.Invoke(bytes); dataProperty.GetSetMethod().Invoke(model, new[] { modelData }); } } if (model is object) { pipeline.Add((IProcess)model); } } } return(pipeline); } }
private static SnmpEngine CreateSnmpEngine(RavenServer server, ObjectStore objectStore) { (HashSet <SnmpVersion> versions, string handlerVersion) = GetVersions(server); var membershipProvider = CreateMembershipProvider(server, versions); var handlers = new[] { new HandlerMapping(handlerVersion, "GET", new GetMessageHandler()), new HandlerMapping(handlerVersion, "GETNEXT", new GetNextMessageHandler()), new HandlerMapping(handlerVersion, "GETBULK", new GetBulkMessageHandler()) }; var messageHandlerFactory = new MessageHandlerFactory(handlers); var factory = new SnmpApplicationFactory(new SnmpLogger(Logger), objectStore, membershipProvider, messageHandlerFactory); var listener = new Listener(); if (versions.Contains(SnmpVersion.V3)) { var authenticationPassword = server.Configuration.Monitoring.Snmp.AuthenticationPassword ?? server.Configuration.Monitoring.Snmp.Community; IAuthenticationProvider authenticationProvider; switch (server.Configuration.Monitoring.Snmp.AuthenticationProtocol) { case SnmpAuthenticationProtocol.SHA1: authenticationProvider = new SHA1AuthenticationProvider(new OctetString(authenticationPassword)); break; case SnmpAuthenticationProtocol.MD5: authenticationProvider = new MD5AuthenticationProvider(new OctetString(authenticationPassword)); break; default: throw new InvalidOperationException($"Unknown authentication protocol '{server.Configuration.Monitoring.Snmp.AuthenticationProtocol}'."); } var privacyPassword = server.Configuration.Monitoring.Snmp.PrivacyPassword; IPrivacyProvider privacyProvider; switch (server.Configuration.Monitoring.Snmp.PrivacyProtocol) { case SnmpPrivacyProtocol.None: privacyProvider = new DefaultPrivacyProvider(authenticationProvider); break; case SnmpPrivacyProtocol.DES: privacyProvider = new BouncyCastleDESPrivacyProvider(new OctetString(privacyPassword), authenticationProvider); break; case SnmpPrivacyProtocol.AES: privacyProvider = new BouncyCastleAESPrivacyProvider(new OctetString(privacyPassword), authenticationProvider); break; default: throw new InvalidOperationException($"Unknown privacy protocol '{server.Configuration.Monitoring.Snmp.AuthenticationProtocol}'."); } listener.Users.Add(new OctetString(server.Configuration.Monitoring.Snmp.AuthenticationUser), privacyProvider); } int engineBoots; using (server.ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) using (var tx = context.OpenWriteTransaction()) { var tree = tx.InnerTransaction.CreateTree(nameof(SnmpWatcher)); engineBoots = (int)tree.Increment("EngineBoots", 1); tx.Commit(); } var engineGroup = new EngineGroup(engineBoots, GetIsInTime(server.Configuration.Monitoring)) { EngineId = new OctetString(server.ServerStore.GetServerId().ToString("N")) }; var engine = new SnmpEngine(factory, listener, engineGroup); engine.Listener.AddBinding(new IPEndPoint(IPAddress.Any, server.Configuration.Monitoring.Snmp.Port)); engine.Listener.ExceptionRaised += (sender, e) => { if (Logger.IsOperationsEnabled) { Logger.Operations("SNMP error: " + e.Exception.Message, e.Exception); } }; return(engine); }
public bool DeleteDocument(Guid id, bool allVersions, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { if (allVersions) { var deleteInfoRequest = new[] { new ObjectRequestType { SourceSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, PropertyFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "VersionSeries" } } } } }; var deleteInfoResponse = GetObjects(deleteInfoRequest); var series = (from responseProperty in (((SingleObjectResponse)deleteInfoResponse[0]).Object).Property where responseProperty.propertyId == "VersionSeries" select((SingletonObject)responseProperty).Value as ObjectValue).FirstOrDefault(); if (series != null) { id = new Guid(series.objectId); } else { throw new ApplicationException(string.Format("Could not retrieve the version series for {0}", id.ToString(P8ContentEngine.DefaultIDFormat))); } } var deleteRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new DeleteAction() }, TargetSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = (allVersions) ? "VersionSeries" : documentClass.GetDescription(), objectId = id.ToString(P8ContentEngine.DefaultIDFormat) } } }, refresh = true, refreshSpecified = true }; var deleteResult = Execute(deleteRequest); return((deleteResult.Length > 0) && deleteResult[0].id == "1"); }
public void Load() { UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); string xmlText = @"<?xml version=""1.0"" encoding=""utf-16""?> <testobjects> <testobject id=""2"" x=""8"" f=""9.4"">goodbye</testobject> <testobject id=""3"" x=""9"" f=""9.9"">bat</testobject> <testobject id=""4"" x=""11"" f=""1.4"">foo</testobject> </testobjects>"; XmlInput xmlinput = new XmlInput(new StringReader(xmlText), "testfile"); xmlinput.CheckElement("testobjects"); xmlinput.Read(); objstore.Load(xmlinput); xmlinput.Dispose(); TestUtil.TestEnumerableAnyOrder(objstore.AllPairs, new KeyValuePair<Id<TestObject>, TestObject>[] { new KeyValuePair<Id<TestObject>, TestObject>(new Id<TestObject>(3), new TestObject(9, "bat", 9.9F)), new KeyValuePair<Id<TestObject>, TestObject>(new Id<TestObject>(4), new TestObject(11, "foo", 1.4F)), new KeyValuePair<Id<TestObject>, TestObject>(new Id<TestObject>(2), new TestObject(8, "goodbye", 9.4F)) }); }
public void TooBig() { var list = new List<Variable>(); for (int i = 0; i < 5000; i++) { list.Add(new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.4.0"), new OctetString("test"))); } var handler = new SetMessageHandler(); var context = SnmpContextFactory.Create( new SetRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), list ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); var store = new ObjectStore(); handler.Handle(context, store); var notWritable = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.TooBig, notWritable.ErrorStatus); }
public IList <IDictionary <string, object> > RetrieveDocumentAccess(Guid id, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var accessInfoRequest = new[] { new ObjectRequestType { SourceSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, PropertyFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "Permissions" }, new FilterElementType { Value = "AccessPermission" }, new FilterElementType { Value = "AccessMask" }, new FilterElementType { Value = "AccessType" }, new FilterElementType { Value = "GranteeName" }, new FilterElementType { Value = "GranteeType" }, new FilterElementType { Value = "InheritableDepth" }, new FilterElementType { Value = "PermissionSource" } } } } }; var accessInfoResponse = GetObjects(accessInfoRequest); var permissionsList = accessInfoResponse.OfType <SingleObjectResponse>() .SelectMany(o => o.Object.Property) .Where(p => p.propertyId == "Permissions") .Select(p => p as ListOfObject); var accessPermissions = new List <IDictionary <string, object> >(); foreach (var permission in permissionsList.SelectMany(o => o.Value)) { dynamic accessPermission = new ExpandoObject(); foreach (var property in permission.Property) { switch (property.propertyId) { case "AccessMask": accessPermission.AccessMask = ((SingletonInteger32)property).Value; break; case "AccessType": accessPermission.AccessType = ((SingletonInteger32)property).Value; break; case "GranteeName": accessPermission.GranteeName = ((SingletonString)property).Value; break; case "GranteeType": accessPermission.GranteeType = ((SingletonInteger32)property).Value; break; case "InheritableDepth": accessPermission.InheritableDepth = ((SingletonInteger32)property).Value; break; case "PermissionSource": accessPermission.PermissionSource = ((SingletonInteger32)property).Value; break; default: continue; } } accessPermissions.Add(accessPermission); } return(accessPermissions); }
public bool RemoveDocumentAccess(Guid id, IList <string> removeUsers, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var permissionsList = RetrieveDocumentAccess(id, objectStore, documentClass); var accessPermissions = removeUsers.Select ( u => permissionsList.FirstOrDefault ( kvp => kvp["GranteeName"].ToString().Equals(u, StringComparison.CurrentCultureIgnoreCase) ) ).Select(permissionsList.IndexOf).Where(i => i >= 0).Select ( userIndex => new DependentObjectType { classId = "AccessPermission", dependentAction = DependentObjectTypeDependentAction.Delete, dependentActionSpecified = true, originalIndex = userIndex, originalIndexSpecified = true } ).ToArray(); if (accessPermissions.Length == 0) { return(true); } var actionProperties = new List <ModifiablePropertyType> { new ListOfObject { propertyId = "Permissions", Value = accessPermissions } }; var updateRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new UpdateAction() }, ActionProperties = actionProperties.ToArray(), TargetSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) } } }, refresh = true, refreshSpecified = true }; return(Execute(updateRequest, true).Length > 0); }
private CDictionary <int, string> Load() { ObjectStore = ObjectStore.Load(StableStorageEngine, false); return(ObjectStore.Resolve <CDictionary <int, string> >()); }
private static SnmpEngine CreateSnmpEngine(RavenServer server, ObjectStore objectStore) { (HashSet <SnmpVersion> versions, string handlerVersion) = GetVersions(server); var membershipProvider = CreateMembershipProvider(server, versions); var handlers = new[] { new HandlerMapping(handlerVersion, "GET", new GetMessageHandler()), new HandlerMapping(handlerVersion, "GETNEXT", new GetNextMessageHandler()), new HandlerMapping(handlerVersion, "GETBULK", new GetBulkMessageHandler()) }; var messageHandlerFactory = new MessageHandlerFactory(handlers); var factory = new SnmpApplicationFactory(new SnmpLogger(Logger), objectStore, membershipProvider, messageHandlerFactory); var listener = new Listener(); if (versions.Contains(SnmpVersion.V3)) { var authenticationUser = server.Configuration.Monitoring.Snmp.AuthenticationUser; var authenticationProtocol = server.Configuration.Monitoring.Snmp.AuthenticationProtocol; var authenticationPassword = server.Configuration.Monitoring.Snmp.AuthenticationPassword ?? server.Configuration.Monitoring.Snmp.Community; var privacyProtocol = server.Configuration.Monitoring.Snmp.PrivacyProtocol; var privacyPassword = server.Configuration.Monitoring.Snmp.PrivacyPassword; var privacyProvider = CreatePrivacyProvider(authenticationUser, authenticationProtocol, authenticationPassword, privacyProtocol, privacyPassword); listener.Users.Add(new OctetString(authenticationUser), privacyProvider); var authenticationUserSecondary = server.Configuration.Monitoring.Snmp.AuthenticationUserSecondary; if (string.IsNullOrWhiteSpace(authenticationUserSecondary) == false) { var authenticationProtocolSecondary = server.Configuration.Monitoring.Snmp.AuthenticationProtocolSecondary; var authenticationPasswordSecondary = server.Configuration.Monitoring.Snmp.AuthenticationPasswordSecondary; var privacyProtocolSecondary = server.Configuration.Monitoring.Snmp.PrivacyProtocolSecondary; var privacyPasswordSecondary = server.Configuration.Monitoring.Snmp.PrivacyPasswordSecondary; var privacyProviderSecondary = CreatePrivacyProvider(authenticationUserSecondary, authenticationProtocolSecondary, authenticationPasswordSecondary, privacyProtocolSecondary, privacyPasswordSecondary); listener.Users.Add(new OctetString(authenticationUserSecondary), privacyProviderSecondary); } } int engineBoots; using (server.ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) using (var tx = context.OpenWriteTransaction()) { var tree = tx.InnerTransaction.CreateTree(nameof(SnmpWatcher)); engineBoots = (int)tree.Increment("EngineBoots", 1); tx.Commit(); } var engineGroup = new EngineGroup(engineBoots, GetIsInTime(server.Configuration.Monitoring)) { EngineId = new OctetString(server.ServerStore.GetServerId().ToString("N")) }; var engine = new SnmpEngine(factory, listener, engineGroup); engine.Listener.AddBinding(new IPEndPoint(IPAddress.Any, server.Configuration.Monitoring.Snmp.Port)); engine.Listener.ExceptionRaised += (sender, e) => { if (Logger.IsOperationsEnabled) { Logger.Operations("SNMP error: " + e.Exception.Message, e.Exception); } }; return(engine);
public WhereFilter(ObjectStore <TKey, TValue> store) { this.store = store; this.skip = 0; filter = store.Filter; }
public void NoSuchObject() { var handler = new GetMessageHandler(); var mock = new Mock<ScalarObject>(new ObjectIdentifier("1.3.6.1.2.1.1.2.0")); mock.Setup(foo => foo.Data).Throws<AccessFailureException>(); mock.Setup(foo => foo.MatchGet(new ObjectIdentifier("1.3.6.1.2.1.1.2.0"))).Returns(mock.Object); var store = new ObjectStore(); store.Add(mock.Object); var context = SnmpContextFactory.Create( new GetRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.2.0")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); handler.Handle(context, store); var noSuchObject = (ResponseMessage)context.Response; Assert.AreEqual(new NoSuchObject(), noSuchObject.Variables()[0].Data); }
public bool Init() { try { // This is the magic way to get R/W access to the database. Cannot be guaranteed to work in future versions of windows string providerName = Encoding.Unicode.GetString(Convert.FromBase64String("QQBuAG8AbgB5AG0AbwB1AHMAIQBVAHMAZQByAA==")); string epgClientID = ObjectStore.GetClientId(true); byte[] epgBytes = Encoding.Unicode.GetBytes(epgClientID); SHA256 sha = SHA256Managed.Create(); byte[] epgHashed = sha.ComputeHash(epgBytes); string providerPassword = Convert.ToBase64String(epgHashed); DebugNormal("Opening store."); os = ObjectStore.Open(providerName, providerPassword); DebugNormal("Store opened."); DebugNormal("Creating scheduler."); recScheduler = new Scheduler(os, ScheduleConflictSource.AutomaticUpdate); DebugNormal("Scheduler created."); return true; } catch (Exception ex) { DebugError(ex); return false; } }
public Guid?CheckoutDocument(Guid id, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var checkoutInfoRequest = new[] { new ObjectRequestType { SourceSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, PropertyFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "CurrentVersion" }, new FilterElementType { Value = "Reservation" } } } } }; var checkoutInfoResponse = GetObjects(checkoutInfoRequest); var reservation = (from responseProperty in (((SingleObjectResponse)checkoutInfoResponse[0]).Object).Property where responseProperty.propertyId == "Reservation" select((SingletonObject)responseProperty).Value as ObjectValue).FirstOrDefault(); if (reservation != null) { return(new Guid(reservation.objectId)); } var currentVersion = (from responseProperty in (((SingleObjectResponse)checkoutInfoResponse[0]).Object).Property where responseProperty.propertyId == "CurrentVersion" select((SingletonObject)responseProperty).Value as ObjectValue).FirstOrDefault(); if (currentVersion != null) { id = new Guid(currentVersion.objectId); } var executeRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new CheckoutAction { reservationType = ReservationType.Exclusive, reservationTypeSpecified = true } }, TargetSpecification = new ObjectReference { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, RefreshFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "Reservation" } } } } }, refresh = true, refreshSpecified = true }; var checkoutResponse = Execute(executeRequest); reservation = (from responseProperty in checkoutResponse[0].Property where responseProperty.propertyId == "Reservation" select((SingletonObject)responseProperty).Value as ObjectValue).FirstOrDefault(); if (reservation != null) { return(new Guid(reservation.objectId)); } return(null); }
public bool TestDocumentAccess(Guid id, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { throw new NotImplementedException(); }
public void NoError() { var handler = new SetV1MessageHandler(); var context = SnmpContextFactory.Create( new SetRequestMessage( 300, VersionCode.V1, new OctetString("lextm"), new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.4.0"), new OctetString("test")) } ), new IPEndPoint(IPAddress.Loopback, 100), new UserRegistry(), null, null); var store = new ObjectStore(); store.Add(new SysContact()); Assert.Throws<ArgumentNullException>(() => handler.Handle(null, null)); Assert.Throws<ArgumentNullException>(() => handler.Handle(context, null)); handler.Handle(context, store); var noerror = (ResponseMessage)context.Response; Assert.AreEqual(ErrorCode.NoError, noerror.ErrorStatus); Assert.AreEqual(new OctetString("test"), noerror.Variables()[0].Data); }
public bool AllowDocumentAccess(Guid id, IList <string> allowUsers, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var accessProperties = new List <DependentObjectType>(); if (allowUsers != null) { accessProperties.AddRange(allowUsers.Select(allowUser => new DependentObjectType { classId = "AccessPermission", dependentAction = DependentObjectTypeDependentAction.Insert, dependentActionSpecified = true, Property = new PropertyType[] { new SingletonString { propertyId = "GranteeName", Value = allowUser }, new SingletonInteger32 { propertyId = "AccessType", Value = (int)AccessType.Allow, ValueSpecified = true }, new SingletonInteger32 { propertyId = "AccessMask", Value = (int)AccessLevel.WriteDocument, ValueSpecified = true }, new SingletonInteger32 { propertyId = "InheritableDepth", Value = 0, ValueSpecified = true } } }).ToList()); } var actionProperties = new List <ModifiablePropertyType> { new ListOfObject { propertyId = "Permissions", Value = accessProperties.ToArray() } }; var updateRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new UpdateAction() }, ActionProperties = actionProperties.ToArray(), TargetSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(P8ContentEngine.DefaultIDFormat) } } }, refresh = true, refreshSpecified = true }; return(Execute(updateRequest, true).Length > 0); }
public void Present() { Id<TestObject> id; TestObject o; UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); undomgr.BeginCommand(57, "Command1"); o = new TestObject(5, "hello", 5.4F); id = objstore.Add(o); Assert.AreEqual(1, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(1))); Assert.IsFalse(objstore.IsPresent(new Id<TestObject>(2))); objstore.CheckPresent(new Id<TestObject>(1)); try { objstore.IsPresent(new Id<TestObject>(2)); Assert.Fail("should throw"); } catch { } }
public async Task TestTrapV2HandlerWithV2Message() { var manualEvent = new ManualResetEventSlim(); // TODO: this is a hack. review it later. var users = new UserRegistry(); users.Add(new OctetString("neither"), DefaultPrivacyProvider.DefaultPair); users.Add(new OctetString("authen"), new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication")))); if (DESPrivacyProvider.IsSupported) { users.Add(new OctetString("privacy"), new DESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } var count = 0; var trapv1 = new TrapV1MessageHandler(); var trapv1Mapping = new HandlerMapping("v1", "TRAPV1", trapv1); var trapv2 = new TrapV2MessageHandler(); trapv2.MessageReceived += (sender, args) => { count++; manualEvent.Set(); }; var trapv2Mapping = new HandlerMapping("v2,v3", "TRAPV2", trapv2); var inform = new InformRequestMessageHandler(); var informMapping = new HandlerMapping("v2,v3", "INFORM", inform); var store = new ObjectStore(); var v1 = new Version1MembershipProvider(new OctetString("public"), new OctetString("public")); var v2 = new Version2MembershipProvider(new OctetString("public"), new OctetString("public")); var v3 = new Version3MembershipProvider(); var membership = new ComposedMembershipProvider(new IMembershipProvider[] { v1, v2, v3 }); var handlerFactory = new MessageHandlerFactory(new[] { trapv1Mapping, trapv2Mapping, informMapping }); var pipelineFactory = new SnmpApplicationFactory(store, membership, handlerFactory); var engine = new SnmpEngine(pipelineFactory, new Listener { Users = users }, new EngineGroup()); var daemonEndPoint = new IPEndPoint(IPAddress.Loopback, port.NextId); engine.Listener.AddBinding(daemonEndPoint); engine.Listener.ExceptionRaised += (sender, e) => { Assert.True(false, "unhandled exception"); }; engine.Listener.MessageReceived += (sender, e) => { Console.WriteLine(e.Message); }; engine.Start(); try { await Messenger.SendTrapV2Async(1, VersionCode.V2, daemonEndPoint, new OctetString("public"), new ObjectIdentifier("1.3.6.1"), 500, new List <Variable>()); manualEvent.Wait(); Assert.Equal(1, count); } finally { if (SnmpMessageExtension.IsRunningOnWindows) { engine.Stop(); } } }
public Document(ObjectStore objectStore = ObjectStore.Document, DocumentClass documentClass = DocumentClass.Document) { Store = objectStore; Class = documentClass; }
public async Task TestTrapV2HandlerWithV3Message() { var manualEvent = new ManualResetEventSlim(); // TODO: this is a hack. review it later. var engineId = new OctetString(ByteTool.Convert("80001F8880E9630000D61FF449")); var users = new UserRegistry(); users.Add(new OctetString("neither"), DefaultPrivacyProvider.DefaultPair); users.Add(new OctetString("authen"), new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication"))) { EngineIds = new[] { engineId } }); if (DESPrivacyProvider.IsSupported) { users.Add(new OctetString("privacy"), new DESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } var count = 0; var trapv1 = new TrapV1MessageHandler(); var trapv1Mapping = new HandlerMapping("v1", "TRAPV1", trapv1); var trapv2 = new TrapV2MessageHandler(); trapv2.MessageReceived += (sender, args) => { count++; manualEvent.Set(); }; var trapv2Mapping = new HandlerMapping("v2,v3", "TRAPV2", trapv2); var inform = new InformRequestMessageHandler(); var informMapping = new HandlerMapping("v2,v3", "INFORM", inform); var store = new ObjectStore(); var v1 = new Version1MembershipProvider(new OctetString("public"), new OctetString("public")); var v2 = new Version2MembershipProvider(new OctetString("public"), new OctetString("public")); var v3 = new Version3MembershipProvider(); var membership = new ComposedMembershipProvider(new IMembershipProvider[] { v1, v2, v3 }); var handlerFactory = new MessageHandlerFactory(new[] { trapv1Mapping, trapv2Mapping, informMapping }); var pipelineFactory = new SnmpApplicationFactory(store, membership, handlerFactory); var engine = new SnmpEngine(pipelineFactory, new Listener { Users = users }, new EngineGroup()); var daemonEndPoint = new IPEndPoint(IPAddress.Loopback, port.NextId); engine.Listener.AddBinding(daemonEndPoint); engine.Start(); try { var privacy = new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication"))); var trap = new TrapV2Message( VersionCode.V3, 1004947569, 234419641, new OctetString("authen"), new ObjectIdentifier("1.3.6"), 0, new List <Variable>(), privacy, 0x10000, engineId, 0, 0); await trap.SendAsync(daemonEndPoint); manualEvent.Wait(); Assert.Equal(1, count); } finally { if (SnmpMessageExtension.IsRunningOnWindows) { engine.Stop(); } } }
private static ObjectStore CreateStore(RavenServer server) { var store = new ObjectStore(); store.Add(new ServerUrl(server.Configuration)); store.Add(new ServerPublicUrl(server.Configuration)); store.Add(new ServerTcpUrl(server.Configuration)); store.Add(new ServerPublicTcpUrl(server.Configuration)); store.Add(new ServerVersion()); store.Add(new ServerFullVersion()); store.Add(new ServerUpTime(server.Statistics)); store.Add(new ServerUpTimeGlobal(server.Statistics)); store.Add(new ServerPid()); store.Add(new ServerConcurrentRequests(server.Metrics)); store.Add(new ServerTotalRequests(server.Metrics)); store.Add(new ServerRequestsPerSecond(server.Metrics)); store.Add(new ProcessCpu(server.MetricCacher, server.CpuUsageCalculator)); store.Add(new MachineCpu(server.MetricCacher, server.CpuUsageCalculator)); store.Add(new IoWait(server.MetricCacher, server.CpuUsageCalculator)); store.Add(new CpuCreditsBase(server.CpuCreditsBalance)); store.Add(new CpuCreditsMax(server.CpuCreditsBalance)); store.Add(new CpuCreditsRemaining(server.CpuCreditsBalance)); store.Add(new CpuCreditsCurrentConsumption(server.CpuCreditsBalance)); store.Add(new CpuCreditsBackgroundTasksAlertRaised(server.CpuCreditsBalance)); store.Add(new CpuCreditsFailoverAlertRaised(server.CpuCreditsBalance)); store.Add(new CpuCreditsAlertRaised(server.CpuCreditsBalance)); store.Add(new ServerTotalMemory(server.MetricCacher)); store.Add(new ServerLowMemoryFlag()); store.Add(new ServerTotalSwapSize(server.MetricCacher)); store.Add(new ServerTotalSwapUsage(server.MetricCacher)); store.Add(new ServerWorkingSetSwapUsage(server.MetricCacher)); store.Add(new ServerDirtyMemory()); store.Add(new ServerManagedMemory()); store.Add(new ServerUnmanagedMemory()); store.Add(new ServerEncryptionBuffersMemoryInUse()); store.Add(new ServerEncryptionBuffersMemoryInPool()); store.Add(new ServerLastRequestTime(server.Statistics)); store.Add(new ServerLastAuthorizedNonClusterAdminRequestTime(server.Statistics)); store.Add(new DatabaseLoadedCount(server.ServerStore.DatabasesLandlord)); store.Add(new DatabaseTotalCount(server.ServerStore)); store.Add(new DatabaseOldestBackup(server.ServerStore)); store.Add(new DatabaseDisabledCount(server.ServerStore)); store.Add(new DatabaseEncryptedCount(server.ServerStore)); store.Add(new DatabaseNodeCount(server.ServerStore)); store.Add(new ClusterNodeState(server.ServerStore)); store.Add(new ClusterNodeTag(server.ServerStore)); store.Add(new ClusterId(server.ServerStore)); store.Add(new ClusterIndex(server.ServerStore)); store.Add(new ClusterTerm(server.ServerStore)); store.Add(new ServerLicenseType(server.ServerStore)); store.Add(new ServerLicenseExpiration(server.ServerStore)); store.Add(new ServerLicenseExpirationLeft(server.ServerStore)); store.Add(new ServerLicenseUtilizedCpuCores(server.ServerStore)); store.Add(new ServerLicenseMaxCpuCores(server.ServerStore)); store.Add(new ServerStorageUsedSize(server.ServerStore)); store.Add(new ServerStorageTotalSize(server.ServerStore)); store.Add(new ServerStorageDiskRemainingSpace(server.ServerStore)); store.Add(new ServerStorageDiskRemainingSpacePercentage(server.ServerStore)); store.Add(new ServerCertificateExpiration(server.ServerStore)); store.Add(new ServerCertificateExpirationLeft(server.ServerStore)); store.Add(new WellKnownAdminCertificates(server.ServerStore)); store.Add(new MachineProcessorCount()); store.Add(new MachineAssignedProcessorCount()); store.Add(new ServerBackupsCurrent(server.ServerStore)); store.Add(new ServerBackupsMax(server.ServerStore)); store.Add(new ThreadPoolAvailableWorkerThreads()); store.Add(new ThreadPoolAvailableCompletionPortThreads()); store.Add(new TcpActiveConnections()); AddGc(GCKind.Any); AddGc(GCKind.Background); AddGc(GCKind.Ephemeral); AddGc(GCKind.FullBlocking); return(store); void AddGc(GCKind gcKind) { store.Add(new ServerGcCompacted(server.MetricCacher, gcKind)); store.Add(new ServerGcConcurrent(server.MetricCacher, gcKind)); store.Add(new ServerGcFinalizationPendingCount(server.MetricCacher, gcKind)); store.Add(new ServerGcFragmented(server.MetricCacher, gcKind)); store.Add(new ServerGcGeneration(server.MetricCacher, gcKind)); store.Add(new ServerGcHeapSize(server.MetricCacher, gcKind)); store.Add(new ServerGcHighMemoryLoadThreshold(server.MetricCacher, gcKind)); store.Add(new ServerGcIndex(server.MetricCacher, gcKind)); store.Add(new ServerGcMemoryLoad(server.MetricCacher, gcKind)); store.Add(new ServerGcPauseDurations1(server.MetricCacher, gcKind)); store.Add(new ServerGcPauseDurations2(server.MetricCacher, gcKind)); store.Add(new ServerGcPauseTimePercentage(server.MetricCacher, gcKind)); store.Add(new ServerGcPinnedObjectsCount(server.MetricCacher, gcKind)); store.Add(new ServerGcPromoted(server.MetricCacher, gcKind)); store.Add(new ServerGcTotalAvailableMemory(server.MetricCacher, gcKind)); store.Add(new ServerGcTotalCommitted(server.MetricCacher, gcKind)); } }
public CassandraAtomDocumentRepository(SingletonCassandraSessionFactory sessionFactory) { _sessionFactory = sessionFactory; repo = new ObjectStore(_sessionFactory); }
public void Initialize() { StableStorageEngine = new InMemoryStorageEngine(); ObjectStore = ObjectStore.New(StableStorageEngine); }
public static void Main(string[] args) { if (args.Length != 0) { return; } var store = new ObjectStore(); store.Add(new SysDescr()); store.Add(new SysObjectId()); store.Add(new SysUpTime()); store.Add(new SysContact()); store.Add(new SysName()); store.Add(new SysLocation()); store.Add(new SysServices()); store.Add(new SysORLastChange()); store.Add(new SysORTable()); store.Add(new IfNumber()); store.Add(new IfTable()); var users = new UserRegistry(); users.Add(new OctetString("neither"), DefaultPrivacyProvider.DefaultPair); users.Add(new OctetString("authen"), new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication")))); if (DESPrivacyProvider.IsSupported) { users.Add(new OctetString("privacy"), new DESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } if (AESPrivacyProviderBase.IsSupported) { users.Add(new OctetString("aes"), new AESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); users.Add(new OctetString("aes192"), new AES192PrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); users.Add(new OctetString("aes256"), new AES256PrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } var getv1 = new GetV1MessageHandler(); var getv1Mapping = new HandlerMapping("v1", "GET", getv1); var getv23 = new GetMessageHandler(); var getv23Mapping = new HandlerMapping("v2,v3", "GET", getv23); var setv1 = new SetV1MessageHandler(); var setv1Mapping = new HandlerMapping("v1", "SET", setv1); var setv23 = new SetMessageHandler(); var setv23Mapping = new HandlerMapping("v2,v3", "SET", setv23); var getnextv1 = new GetNextV1MessageHandler(); var getnextv1Mapping = new HandlerMapping("v1", "GETNEXT", getnextv1); var getnextv23 = new GetNextMessageHandler(); var getnextv23Mapping = new HandlerMapping("v2,v3", "GETNEXT", getnextv23); var getbulk = new GetBulkMessageHandler(); var getbulkMapping = new HandlerMapping("v2,v3", "GETBULK", getbulk); var v1 = new Version1MembershipProvider(new OctetString("public"), new OctetString("public")); var v2 = new Version2MembershipProvider(new OctetString("public"), new OctetString("public")); var v3 = new Version3MembershipProvider(); var membership = new ComposedMembershipProvider(new IMembershipProvider[] { v1, v2, v3 }); var handlerFactory = new MessageHandlerFactory(new[] { getv1Mapping, getv23Mapping, setv1Mapping, setv23Mapping, getnextv1Mapping, getnextv23Mapping, getbulkMapping }); var pipelineFactory = new SnmpApplicationFactory(store, membership, handlerFactory); using (var engine = new SnmpEngine(pipelineFactory, new Listener { Users = users }, new EngineGroup())) { engine.Listener.AddBinding(new IPEndPoint(IPAddress.Any, 161)); engine.Listener.ExceptionRaised += Engine_ExceptionRaised; engine.Listener.MessageReceived += RequestReceived; engine.Start(); Console.WriteLine("#SNMP is available at https://sharpsnmp.com"); Console.WriteLine("Press any key to stop . . . "); Console.Read(); engine.Stop(); } }
public MainForm() { // TODO: this is a hack. review it later. var store = new ObjectStore(); store.Add(new SysDescr()); store.Add(new SysObjectId()); store.Add(new SysUpTime()); store.Add(new SysContact()); store.Add(new SysName()); store.Add(new SysLocation()); store.Add(new SysServices()); store.Add(new SysORLastChange()); store.Add(new SysORTable()); store.Add(new IfNumber()); store.Add(new IfTable()); var users = new UserRegistry(); users.Add(new OctetString("neither"), DefaultPrivacyProvider.DefaultPair); users.Add(new OctetString("authen"), new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication")))); if (DESPrivacyProvider.IsSupported) { users.Add(new OctetString("privacy"), new DESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } if (AESPrivacyProviderBase.IsSupported) { users.Add(new OctetString("aes"), new AESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); users.Add(new OctetString("aes192"), new AES192PrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); users.Add(new OctetString("aes256"), new AES256PrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); } var getv1 = new GetV1MessageHandler(); var getv1Mapping = new HandlerMapping("v1", "GET", getv1); var getv23 = new GetMessageHandler(); var getv23Mapping = new HandlerMapping("v2,v3", "GET", getv23); var setv1 = new SetV1MessageHandler(); var setv1Mapping = new HandlerMapping("v1", "SET", setv1); var setv23 = new SetMessageHandler(); var setv23Mapping = new HandlerMapping("v2,v3", "SET", setv23); var getnextv1 = new GetNextV1MessageHandler(); var getnextv1Mapping = new HandlerMapping("v1", "GETNEXT", getnextv1); var getnextv23 = new GetNextMessageHandler(); var getnextv23Mapping = new HandlerMapping("v2,v3", "GETNEXT", getnextv23); var getbulk = new GetBulkMessageHandler(); var getbulkMapping = new HandlerMapping("v2,v3", "GETBULK", getbulk); var v1 = new Version1MembershipProvider(new OctetString("public"), new OctetString("public")); var v2 = new Version2MembershipProvider(new OctetString("public"), new OctetString("public")); var v3 = new Version3MembershipProvider(); var membership = new ComposedMembershipProvider(new IMembershipProvider[] { v1, v2, v3 }); var handlerFactory = new MessageHandlerFactory(new[] { getv1Mapping, getv23Mapping, setv1Mapping, setv23Mapping, getnextv1Mapping, getnextv23Mapping, getbulkMapping }); var pipelineFactory = new SnmpApplicationFactory(new RollingLogger(), store, membership, handlerFactory); _engine = new SnmpEngine(pipelineFactory, new Listener { Users = users }, new EngineGroup()); _engine.ExceptionRaised += (sender, e) => MessageBox.Show(e.Exception.ToString()); InitializeComponent(); if (PlatformSupport.Platform == PlatformType.Windows) { // FIXME: work around a Mono WinForms issue. Icon = Properties.Resources.network_server; } actEnabled.Image = Properties.Resources.media_playback_start; tstxtPort.Text = @"161"; tscbIP.Items.Add(StrAllUnassigned); foreach (IPAddress address in Dns.GetHostEntry(string.Empty).AddressList.Where(address => !address.IsIPv6LinkLocal)) { tscbIP.Items.Add(address); } tscbIP.SelectedIndex = 0; }
private SnmpEngine CreateEngine() { // TODO: this is a hack. review it later. var store = new ObjectStore(); store.Add(new SysDescr()); store.Add(new SysObjectId()); store.Add(new SysUpTime()); store.Add(new SysContact()); store.Add(new SysName()); store.Add(new SysLocation()); store.Add(new SysServices()); store.Add(new SysORLastChange()); store.Add(new SysORTable()); store.Add(new IfNumber()); store.Add(new IfTable()); store.Add(new TimeoutObject()); var users = new UserRegistry(); users.Add(new OctetString("neither"), DefaultPrivacyProvider.DefaultPair); users.Add(new OctetString("authen"), new DefaultPrivacyProvider(new MD5AuthenticationProvider(new OctetString("authentication")))); #if !NETSTANDARD users.Add(new OctetString("privacy"), new DESPrivacyProvider(new OctetString("privacyphrase"), new MD5AuthenticationProvider(new OctetString("authentication")))); #endif var getv1 = new GetV1MessageHandler(); var getv1Mapping = new HandlerMapping("v1", "GET", getv1); var getv23 = new GetMessageHandler(); var getv23Mapping = new HandlerMapping("v2,v3", "GET", getv23); var setv1 = new SetV1MessageHandler(); var setv1Mapping = new HandlerMapping("v1", "SET", setv1); var setv23 = new SetMessageHandler(); var setv23Mapping = new HandlerMapping("v2,v3", "SET", setv23); var getnextv1 = new GetNextV1MessageHandler(); var getnextv1Mapping = new HandlerMapping("v1", "GETNEXT", getnextv1); var getnextv23 = new GetNextMessageHandler(); var getnextv23Mapping = new HandlerMapping("v2,v3", "GETNEXT", getnextv23); var getbulk = new GetBulkMessageHandler(); var getbulkMapping = new HandlerMapping("v2,v3", "GETBULK", getbulk); var v1 = new Version1MembershipProvider(new OctetString("public"), new OctetString("public")); var v2 = new Version2MembershipProvider(new OctetString("public"), new OctetString("public")); var v3 = new Version3MembershipProvider(); var membership = new ComposedMembershipProvider(new IMembershipProvider[] { v1, v2, v3 }); var handlerFactory = new MessageHandlerFactory(new[] { getv1Mapping, getv23Mapping, setv1Mapping, setv23Mapping, getnextv1Mapping, getnextv23Mapping, getbulkMapping }); var pipelineFactory = new SnmpApplicationFactory(store, membership, handlerFactory); var listener = new Listener { Users = users }; listener.ExceptionRaised += (sender, e) => { Assert.True(false, "unexpected exception"); }; return(new SnmpEngine(pipelineFactory, listener, new EngineGroup())); }
private static bool handleEnterpriseSignIn(Credentials credentials, SignInTicket ticket, ObjectStore os) { ticket.SetStatus(Resources.DownloadingConnectListEllipsis_Text); EnterpriseInfo = new EnterpriseInfo(os, ticket.UserName); if (!EnterpriseInfo.IsValid) { ticket.SetError(Credentials.FromResponse(AuthenticateResponse.ClientSideError, Resources.NoServersForUser_Text)); return false; } object value; if (credentials.TryGetValue(Credentials.TimeOffsetId, typeof(TimeSpan), out value)) { _enterpriseTimeOffset = (TimeSpan)value; } EnterpriseServer = ticket.Server; EnterpriseObjectStore = os; return true; }
private void DoImporting() { _dbLocations.Clear(); _icqContacts.Clear(); _icqMessages.Clear(); _idResources.Clear(); Importer theImporter = Importer.GetInstance(); theImporter.Reset(); Core.UIManager.GetStatusWriter(this, StatusPane.UI).ShowStatus("Importing ICQ database"); if (Core.ProgressWindow != null) { Core.ProgressWindow.UpdateProgress(0, "Importing ICQ database", null); } AsyncProcessor resourceAP = (AsyncProcessor)Core.ResourceAP; bool needIdle = ObjectStore.ReadBool("ICQ", "NeedIdle", true); foreach (IICQDatabase D in theImporter) { if (needIdle && !_startedInIdleMode && _indexStartDate > DateTime.MinValue) { D.SkipUpdate(); } bool hasData = false; bool indexed = false; int lastUIN = 0; foreach (object ICQObject in D) { if (lastUIN != D.CurrentUIN) { lastUIN = D.CurrentUIN; indexed = IndexedUIN(lastUIN); } if (indexed) { if (ICQObject is ICQContact) { _icqContacts.Add(ICQObject); } else if (ICQObject is ICQMessage) { ICQMessage msg = (ICQMessage)ICQObject; DateTime msgDateTime = msg.Time; if ((_startedInIdleMode || _indexStartDate <= msgDateTime) && (_minUpdateDate > msgDateTime || _maxUpdateDate < msgDateTime)) { _icqMessages.Add(msg); } } hasData = true; } if (Core.State == CoreState.ShuttingDown) { D.SkipUpdate(); Interrupted = true; return; } if (resourceAP.OutstandingJobs > 0) { resourceAP.DoJobs(); } } if (hasData) { _dbLocations.Add(D.CurrentLocation); } } // sort messages by date _icqMessages.Sort(new ICQMessageComparer()); // remove duplicates for (int i = 0; i < _icqMessages.Count - 1;) { ICQMessage m1 = _icqMessages[i] as ICQMessage; ICQMessage m2 = _icqMessages[i + 1] as ICQMessage; if (m1 != null && m2 != null && m1.From == m2.From && m1.To == m2.To && m1.Time == m2.Time && m1.Body == m2.Body) { _icqMessages.RemoveAt(i + 1); } else { ++i; } if (resourceAP.OutstandingJobs > 0) { resourceAP.DoJobs(); } } Trace.WriteLine(_icqMessages.Count + " new messages appeared", "ICQ.Plugin"); _lastPercentage = -1; _percentage = _contactIndex = _messageIndex = 0; }
internal static DateTime GetMaxUpdateDate() { return(ObjectStore.ReadDate("ICQ", "MaxDate", DateTime.MinValue)); }
internal static void SetUpdateDates(DateTime minDate, DateTime maxDate) { ObjectStore.WriteDate("ICQ", "MinDate", minDate); ObjectStore.WriteDate("ICQ", "MaxDate", maxDate); }
public KonaSite() { IObjectStore store = new ObjectStore(); }
public void Save() { UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); undomgr.BeginCommand(57, "Command1"); objstore.Add(new TestObject(5, "hello", 5.4F)); objstore.Add(new TestObject(7, "hi", 3.4F)); objstore.Add(new TestObject(9, "bat", 9.9F)); undomgr.EndCommand(57); undomgr.BeginCommand(58, "Command2"); objstore.Add(new TestObject(11, "foo", 1.4F)); objstore.Replace(new Id<TestObject>(2), new TestObject(8, "goodbye", 9.4F)); objstore.Remove(new Id<TestObject>(1)); undomgr.EndCommand(58); TextWriter writer = new StringWriter(); XmlTextWriter xmloutput = new XmlTextWriter(writer); xmloutput.Formatting = Formatting.Indented; xmloutput.Namespaces = false; xmloutput.WriteStartDocument(); xmloutput.WriteStartElement("testobjects"); objstore.Save(xmloutput); xmloutput.WriteEndElement(); xmloutput.WriteEndDocument(); xmloutput.Close(); Assert.AreEqual( @"<?xml version=""1.0"" encoding=""utf-16""?> <testobjects> <testobject id=""2"" x=""8"" f=""9.4"">goodbye</testobject> <testobject id=""3"" x=""9"" f=""9.9"">bat</testobject> <testobject id=""4"" x=""11"" f=""1.4"">foo</testobject> </testobjects>", writer.ToString()); }
public void ChangeNum() { int changeNum; Id<TestObject> id; TestObject o; UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); changeNum = objstore.ChangeNum; undomgr.BeginCommand(57, "Command1"); o = new TestObject(5, "hello", 5.4F); id = objstore.Add(o); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; objstore.Remove(new Id<TestObject>(1)); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; id = objstore.Add(o); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; objstore.Replace(new Id<TestObject>(2), o); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; undomgr.EndCommand(57); undomgr.Undo(); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; undomgr.Redo(); Assert.IsTrue(changeNum < objstore.ChangeNum); changeNum = objstore.ChangeNum; }
public bool CheckinDocument(Guid id, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var checkinInfoRequest = new[] { new ObjectRequestType { SourceSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, PropertyFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "Reservation" } } } } }; var checkinInfoResponse = GetObjects(checkinInfoRequest); var reservation = (from responseProperty in (((SingleObjectResponse)checkinInfoResponse[0]).Object).Property where responseProperty.propertyId == "Reservation" select((SingletonObject)responseProperty).Value as ObjectValue).FirstOrDefault(); if (reservation != null) { id = new Guid(reservation.objectId); } var checkinRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new CheckinAction { autoClassify = true, autoClassifySpecified = true, checkinMinorVersion = true, checkinMinorVersionSpecified = true }, new PromoteVersionAction() }, TargetSpecification = new ObjectReference { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) }, RefreshFilter = new PropertyFilterType { maxRecursion = 1, maxRecursionSpecified = true, IncludeProperties = new[] { new FilterElementType { Value = "VersionStatus" } } } } }, refresh = true, refreshSpecified = true }; var checkinResponse = Execute(checkinRequest); var versionStatus = (from responseProperty in checkinResponse[0].Property where responseProperty.propertyId == "VersionStatus" select responseProperty as SingletonInteger32).FirstOrDefault(); return(versionStatus != null && versionStatus.Value == (int)VersionStatus.Released); }
public void LoadModifySave() { Id<TestObject> id; UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); string xmlText = @"<?xml version=""1.0"" encoding=""utf-16""?> <testobjects> <testobject id=""2"" x=""8"" f=""9.4"">goodbye</testobject> <testobject id=""4"" x=""11"" f=""1.4"">foo</testobject> </testobjects>"; XmlInput xmlinput = new XmlInput(new StringReader(xmlText), "testfile"); xmlinput.CheckElement("testobjects"); xmlinput.Read(); objstore.Load(xmlinput); xmlinput.Dispose(); undomgr.BeginCommand(57, "Command1"); id = objstore.Add(new TestObject(5, "hello", 5.4F)); Assert.AreEqual(5, id.id); id = objstore.Add(new TestObject(9, "bat", 9.9F)); Assert.AreEqual(6, id.id); undomgr.EndCommand(57); undomgr.BeginCommand(58, "Command2"); objstore.Replace(new Id<TestObject>(2), new TestObject(-9, "elvis", 9.1F)); objstore.Remove(new Id<TestObject>(4)); undomgr.EndCommand(58); TextWriter writer = new StringWriter(); XmlTextWriter xmloutput = new XmlTextWriter(writer); xmloutput.Formatting = Formatting.Indented; xmloutput.Namespaces = false; xmloutput.WriteStartDocument(); xmloutput.WriteStartElement("testobjects"); objstore.Save(xmloutput); xmloutput.WriteEndElement(); xmloutput.WriteEndDocument(); xmloutput.Close(); Assert.AreEqual( @"<?xml version=""1.0"" encoding=""utf-16""?> <testobjects> <testobject id=""2"" x=""-9"" f=""9.1"">elvis</testobject> <testobject id=""5"" x=""5"" f=""5.4"">hello</testobject> <testobject id=""6"" x=""9"" f=""9.9"">bat</testobject> </testobjects>", writer.ToString()); }
public IList <byte[]> GetDocumentContent(Guid id, IEnumerable <SingleObjectResponse> documentObject = null, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var inlineContents = new List <byte[]>(); var documentInfoResponse = documentObject ?? GetDocumentObject(id, null, null, objectStore, documentClass); var contentElements = documentInfoResponse.SelectMany ( o => o.Object.Property.OfType <ListOfObject>().Where ( p => p.propertyId.Equals("ContentElements", StringComparison.CurrentCultureIgnoreCase) ) ).ToList(); foreach (var contentElement in contentElements.Where(ce => ce.Value != null)) { for (var contentIter = 0; contentIter < contentElement.Value.Length; contentIter++) { var contentRequest = new[] { new ContentRequestType { id = "1", cacheAllowed = true, cacheAllowedSpecified = true, maxBytes = 1024 * 1024, maxBytesSpecified = false, startOffset = 0, startOffsetSpecified = true, continueFrom = null, ElementSpecification = new ElementSpecificationType { itemIndex = contentIter, itemIndexSpecified = true, elementSequenceNumber = 0, elementSequenceNumberSpecified = false }, SourceSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) } } }; var contentResponse = GetContents(contentRequest); inlineContents.AddRange ( contentResponse.OfType <ContentElementResponse>().Select ( o => ((InlineContent)o.Content).Binary ).ToList() ); } } return(inlineContents); }
public void Replace() { Id<TestObject> id; TestObject o, p; UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); undomgr.BeginCommand(57, "Command1"); o = new TestObject(5, "hello", 5.4F); id = objstore.Add(o); Assert.AreEqual(1, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(1))); p = objstore[new Id<TestObject>(1)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); o = new TestObject(6, "hi", 5.4F); id = objstore.Add(o); Assert.AreEqual(2, id.id); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(2))); p = objstore[new Id<TestObject>(2)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); o = new TestObject(11, "mr ed", 9.7F); objstore.Replace(new Id<TestObject>(1), o); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(1))); p = objstore[new Id<TestObject>(1)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); o = new TestObject(13, "baz", 2.4F); objstore.Replace(new Id<TestObject>(2), o); Assert.IsTrue(objstore.IsPresent(new Id<TestObject>(2))); p = objstore[new Id<TestObject>(2)]; Assert.AreEqual(o, p); Assert.IsFalse(o == p); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { new TestObject(11, "mr ed", 9.7F), new TestObject(13, "baz", 2.4F) }); }
public Guid?CreateDocument(string name, byte[] content, IDictionary <string, object> properties = null, ObjectStore objectStore = P8ContentEngine.DefaultObjectStore, DocumentClass documentClass = P8ContentEngine.DefaultDocumentClass) { if (name == string.Empty) { throw new ArgumentException(nameof(name)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } if (content == null) { throw new ArgumentNullException(nameof(content)); } properties = ResolveTitleAndMimeType(name, properties); var mimeType = properties.ContainsKey(MIME_TYPE) ? properties[MIME_TYPE] as string : MimeTypeUtility.DefaultType; var actionProperties = new List <ModifiablePropertyType> { new ListOfObject { propertyId = "ContentElements", Value = new[] { new DependentObjectType { classId = "ContentTransfer", dependentAction = DependentObjectTypeDependentAction.Insert, dependentActionSpecified = true, Property = new PropertyType[] { new SingletonString { propertyId = "ContentType", Value = mimeType }, new SingletonString { propertyId = "RetrievalName", Value = name }, new ContentData { propertyId = "Content", Value = new InlineContent { Binary = content } } } } } } }; if (properties != null) { actionProperties.AddRange(Utilities.GetPropertyCollection(properties)); } var executeRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new CreateAction { classId = documentClass.GetDescription() }, new CheckinAction { autoClassify = true, autoClassifySpecified = true, checkinMinorVersion = true, checkinMinorVersionSpecified = true }, new PromoteVersionAction() }, ActionProperties = actionProperties.ToArray(), TargetSpecification = new ObjectReference { classId = "ObjectStore", objectStore = objectStore.GetDescription() } } }, refresh = true, refreshSpecified = true }; var createResults = Execute(executeRequest, "ID"); var id = (from cr in createResults.FirstOrDefault() where cr.Key.Equals("ID", StringComparison.CurrentCultureIgnoreCase) select cr.Value).FirstOrDefault(); if (id != null) { return(new Guid(id.ToString())); } return(null); }
public void UndoRedo() { UndoMgr undomgr = new UndoMgr(5); ObjectStore<TestObject> objstore = new ObjectStore<TestObject>(undomgr); undomgr.BeginCommand(57, "Command1"); objstore.Add(new TestObject(5, "hello", 5.4F)); objstore.Add(new TestObject(7, "hi", 3.4F)); objstore.Add(new TestObject(9, "bat", 9.9F)); undomgr.EndCommand(57); undomgr.BeginCommand(58, "Command2"); objstore.Add(new TestObject(11, "foo", 1.4F)); objstore.Replace(new Id<TestObject>(2), new TestObject(8, "goodbye", 9.4F)); objstore.Remove(new Id<TestObject>(1)); undomgr.EndCommand(58); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { new TestObject(9, "bat", 9.9F), new TestObject(11, "foo", 1.4F), new TestObject(8, "goodbye", 9.4F) }); undomgr.Undo(); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { new TestObject(5, "hello", 5.4F), new TestObject(7, "hi", 3.4F), new TestObject(9, "bat", 9.9F) }); undomgr.Undo(); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { }); undomgr.Redo(); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { new TestObject(5, "hello", 5.4F), new TestObject(7, "hi", 3.4F), new TestObject(9, "bat", 9.9F) }); undomgr.Redo(); TestUtil.TestEnumerableAnyOrder(objstore.All, new TestObject[] { new TestObject(9, "bat", 9.9F), new TestObject(11, "foo", 1.4F), new TestObject(8, "goodbye", 9.4F) }); }
private static ObjectStore CreateStore(RavenServer server) { var store = new ObjectStore(); store.Add(new ServerUrl(server.Configuration)); store.Add(new ServerPublicUrl(server.Configuration)); store.Add(new ServerTcpUrl(server.Configuration)); store.Add(new ServerPublicTcpUrl(server.Configuration)); store.Add(new ServerVersion()); store.Add(new ServerFullVersion()); store.Add(new ServerUpTime(server.Statistics)); store.Add(new ServerUpTimeGlobal(server.Statistics)); store.Add(new ServerPid()); store.Add(new ServerConcurrentRequests(server.Metrics)); store.Add(new ServerTotalRequests(server.Metrics)); store.Add(new ServerRequestsPerSecond(server.Metrics)); store.Add(new ProcessCpu(server.MetricCacher, server.CpuUsageCalculator)); store.Add(new MachineCpu(server.MetricCacher, server.CpuUsageCalculator)); store.Add(new CpuCreditsBase(server.CpuCreditsBalance)); store.Add(new CpuCreditsMax(server.CpuCreditsBalance)); store.Add(new CpuCreditsRemaining(server.CpuCreditsBalance)); store.Add(new CpuCreditsCurrentConsumption(server.CpuCreditsBalance)); store.Add(new CpuCreditsBackgroundTasksAlertRaised(server.CpuCreditsBalance)); store.Add(new CpuCreditsFailoverAlertRaised(server.CpuCreditsBalance)); store.Add(new CpuCreditsAlertRaised(server.CpuCreditsBalance)); store.Add(new ServerTotalMemory(server.MetricCacher)); store.Add(new ServerLowMemoryFlag()); store.Add(new ServerTotalSwapSize(server.MetricCacher)); store.Add(new ServerTotalSwapUsage(server.MetricCacher)); store.Add(new ServerWorkingSetSwapUsage(server.MetricCacher)); store.Add(new ServerDirtyMemory()); store.Add(new ServerLastRequestTime(server.Statistics)); store.Add(new ServerLastAuthorizedNonClusterAdminRequestTime(server.Statistics)); store.Add(new DatabaseLoadedCount(server.ServerStore.DatabasesLandlord)); store.Add(new DatabaseTotalCount(server.ServerStore)); store.Add(new DatabaseOldestBackup(server.ServerStore)); store.Add(new ClusterNodeState(server.ServerStore)); store.Add(new ClusterNodeTag(server.ServerStore)); store.Add(new ClusterId(server.ServerStore)); store.Add(new ClusterIndex(server.ServerStore)); store.Add(new ClusterTerm(server.ServerStore)); store.Add(new ServerLicenseType(server.ServerStore)); store.Add(new ServerLicenseExpiration(server.ServerStore)); store.Add(new ServerLicenseExpirationLeft(server.ServerStore)); store.Add(new ServerLicenseUtilizedCpuCores(server.ServerStore)); store.Add(new ServerLicenseMaxCpuCores(server.ServerStore)); store.Add(new ServerStorageUsedSize(server.ServerStore)); store.Add(new ServerStorageTotalSize(server.ServerStore)); store.Add(new ServerStorageDiskRemainingSpace(server.ServerStore)); store.Add(new ServerStorageDiskRemainingSpacePercentage(server.ServerStore)); store.Add(new ServerCertificateExpiration(server.ServerStore)); store.Add(new ServerCertificateExpirationLeft(server.ServerStore)); store.Add(new WellKnownAdminCertificates(server.ServerStore)); store.Add(new MachineProcessorCount()); store.Add(new MachineAssignedProcessorCount()); store.Add(new ServerBackupsCurrent(server.ServerStore)); store.Add(new ServerBackupsMax(server.ServerStore)); return(store); }
private void OriginalConstructor(ObjectStore objStore) { }
public bool UpdateDocument(Guid id, string name, byte[] content, IDictionary <string, object> properties = null, ObjectStore objectStore = DefaultObjectStore, DocumentClass documentClass = DefaultDocumentClass) { var updateContent = name != null && content != null; var updateProperties = properties != null && properties.Count > 0; if (!updateContent && !updateProperties) { throw new ArgumentException("Insufficient arguments provided (name, content and/or properties)"); } properties = ResolveTitleAndMimeType(name, properties); var mimeType = properties.ContainsKey(MIME_TYPE) ? properties[MIME_TYPE] as string : MimeTypeUtility.DefaultType; var reservationID = updateContent ? CheckoutDocument(id, objectStore, documentClass) : Guid.Empty; if (reservationID != null && reservationID != Guid.Empty) { id = reservationID.Value; } var actionProperties = new List <ModifiablePropertyType>(); if (updateContent) { actionProperties.Add(new ListOfObject { propertyId = "ContentElements", Value = new[] { new DependentObjectType { classId = "ContentTransfer", dependentAction = DependentObjectTypeDependentAction.Insert, dependentActionSpecified = true, Property = new PropertyType[] { new SingletonString { propertyId = "ContentType", Value = mimeType }, new ContentData { propertyId = "Content", Value = new InlineContent { Binary = content } } } } } }); } if (updateProperties) { actionProperties.AddRange(Utilities.GetPropertyCollection(properties)); } var updateRequest = new ExecuteChangesRequest { ChangeRequest = new[] { new ChangeRequestType { id = "1", Action = new ActionType[] { new UpdateAction() }, ActionProperties = actionProperties.ToArray(), TargetSpecification = new ObjectSpecification { objectStore = objectStore.GetDescription(), classId = documentClass.GetDescription(), objectId = id.ToString(DefaultIDFormat) } } }, refresh = true, refreshSpecified = true }; Execute(updateRequest); return((!updateContent) || CheckinDocument(id, objectStore, documentClass)); }
private void ReplacementConstructor(ObjectStore objStore) { OriginalConstructor(objStore); ScheduleEntries scheduleEntries = ThisAsScheduleEntries(); scheduleEntries.ProgramMerger.AlwaysReplace = true; scheduleEntries.ProgramMerger.NeverReplace = false; scheduleEntries.ProgramMatcher.MatchTitleEpisode = false; }
public EventDB(UndoMgr undomgr) { controlPointStore = new ObjectStore<ControlPoint>(undomgr); courseStore = new ObjectStore<Course>(undomgr); courseControlStore = new ObjectStore<CourseControl>(undomgr); eventStore = new ObjectStore<Event>(undomgr); specialStore = new ObjectStore<Special>(undomgr); legStore = new ObjectStore<Leg>(undomgr); random = (long) (rand.NextDouble() * long.MaxValue / 2); }