示例#1
0
 protected void RunReplication(IDocumentStore source, IDocumentStore destination,
                               TransitiveReplicationOptions transitiveReplicationBehavior = TransitiveReplicationOptions.None,
                               bool disabled      = false,
                               bool ignoredClient = false,
                               string apiKey      = null)
 {
     Console.WriteLine("Replicating from {0} to {1}.", source.Url, destination.Url);
     using (var session = source.OpenSession())
     {
         var replicationDestination = new ReplicationDestination
         {
             Url = destination.Url.Replace("localhost", "ipv4.fiddler"),
             TransitiveReplicationBehavior = transitiveReplicationBehavior,
             Disabled      = disabled,
             IgnoredClient = ignoredClient
         };
         if (apiKey != null)
         {
             replicationDestination.ApiKey = apiKey;
         }
         SetupDestination(replicationDestination);
         session.Store(new ReplicationDocument
         {
             Destinations = { replicationDestination }
         }, "Raven/Replication/Destinations");
         session.SaveChanges();
     }
 }
示例#2
0
 protected void RunReplication(IDocumentStore source, IDocumentStore destination,
                               TransitiveReplicationOptions transitiveReplicationBehavior = TransitiveReplicationOptions.None,
                               bool disabled      = false,
                               bool ignoredClient = false,
                               string apiKey      = null,
                               string db          = null)
 {
     Console.WriteLine("Replicating from {0} to {1} with db = {2}.", source.Url, destination.Url, db ?? Constants.SystemDatabase);
     using (var session = source.OpenSession(db))
     {
         var replicationDestination = new ReplicationDestination
         {
             Url = destination is EmbeddableDocumentStore ?
                   "http://localhost:" + (destination as EmbeddableDocumentStore).Configuration.Port :
                   destination.Url.Replace("localhost", "ipv4.fiddler"),
             TransitiveReplicationBehavior = transitiveReplicationBehavior,
             Disabled      = disabled,
             IgnoredClient = ignoredClient
         };
         if (db != null)
         {
             replicationDestination.Database = db;
         }
         if (apiKey != null)
         {
             replicationDestination.ApiKey = apiKey;
         }
         SetupDestination(replicationDestination);
         session.Store(new ReplicationDocument
         {
             Destinations = { replicationDestination }
         }, "Raven/Replication/Destinations");
         session.SaveChanges();
     }
 }
示例#3
0
        protected void RunReplication(IDocumentStore source, IDocumentStore destination,
                                      TransitiveReplicationOptions transitiveReplicationBehavior = TransitiveReplicationOptions.None,
                                      bool disabled      = false,
                                      bool ignoredClient = false,
                                      string apiKey      = null,
                                      string db          = null,
                                      string username    = null,
                                      string password    = null,
                                      string domain      = null,
                                      ReplicationClientConfiguration clientConfiguration = null)
        {
            db = db ?? (destination is DocumentStore ? ((DocumentStore)destination).DefaultDatabase : null);

            Console.WriteLine("Replicating from {0} to {1} with db = {2}.", source.Url, destination.Url, db ?? Constants.SystemDatabase);
            using (var session = source.OpenSession(db))
            {
                var replicationDestination = new ReplicationDestination
                {
                    Url = destination is EmbeddableDocumentStore ?
                          "http://localhost:" + (destination as EmbeddableDocumentStore).Configuration.Port :
                          destination.Url.Replace("localhost", "ipv4.fiddler"),
                    TransitiveReplicationBehavior = transitiveReplicationBehavior,
                    Disabled             = disabled,
                    IgnoredClient        = ignoredClient,
                    SkipIndexReplication = false //precaution
                };
                if (db != null)
                {
                    replicationDestination.Database = db;
                }
                if (apiKey != null)
                {
                    replicationDestination.ApiKey = apiKey;
                }
                if (username != null)
                {
                    replicationDestination.Username = username;
                    replicationDestination.Password = password;
                    replicationDestination.Domain   = domain;
                }

                SetupDestination(replicationDestination);
                Console.WriteLine("writing rep dests for " + db + " " + source.Url);
                session.Store(new ReplicationDocument
                {
                    Destinations        = { replicationDestination },
                    ClientConfiguration = clientConfiguration
                }, "Raven/Replication/Destinations");
                session.SaveChanges();
            }

            while (true)
            {
                using (var s = source.OpenSession(db))
                {
                    var doc = s.Load <ReplicationDocument>("Raven/Replication/Destinations");
                    if (string.IsNullOrWhiteSpace(doc.Source))
                    {
                        Thread.Sleep(100);
                        continue;
                    }
                    break;
                }
            }
        }
		public static ReplicationTopologyDestinationNode Offline(string serverUrl, Guid serverId, TransitiveReplicationOptions replicationBehavior)
		{
			return new ReplicationTopologyDestinationNode
			{
				ServerUrl = serverUrl,
				ReplicationBehavior = replicationBehavior,
				State = ReplicatonNodeState.Offline,
				SendServerId = serverId
			};
		}
示例#5
0
 protected void RunReplication(IDocumentStore source, IDocumentStore destination, TransitiveReplicationOptions transitiveReplicationBehavior = TransitiveReplicationOptions.None)
 {
     Console.WriteLine("Replicating from {0} to {1}.", source.Url, destination.Url);
     using (var session = source.OpenSession())
     {
         var replicationDestination = new ReplicationDestination
         {
             Url = destination.Url.Replace("localhost", "ipv4.fiddler"),
             TransitiveReplicationBehavior = transitiveReplicationBehavior,
         };
         SetupDestination(replicationDestination);
         session.Store(new ReplicationDocument
         {
             Destinations = { replicationDestination }
         }, "Raven/Replication/Destinations");
         session.SaveChanges();
     }
 }
示例#6
0
 public static ReplicationTopologyDestinationNode Online(string serverUrl, Guid serverId, TransitiveReplicationOptions replicationBehavior)
 {
     return(new ReplicationTopologyDestinationNode
     {
         ServerUrl = serverUrl,
         ReplicationBehavior = replicationBehavior,
         State = ReplicatonNodeState.Online,
         SendServerId = serverId
     });
 }
 public static ReplicationTopologyDestinationNode Disabled(string serverUrl,
                                                           Guid sourceServerId, Guid?destinationServerId, TransitiveReplicationOptions replicationBehavior)
 {
     return(new ReplicationTopologyDestinationNode
     {
         ServerUrl = serverUrl,
         ReplicationBehavior = replicationBehavior,
         State = ReplicatonNodeState.Disabled,
         SendServerId = sourceServerId,
         DestinationServerId = destinationServerId,
     });
 }
示例#8
0
 protected void RunReplication(IDocumentStore source, IDocumentStore destination, TransitiveReplicationOptions transitiveReplicationBehavior = TransitiveReplicationOptions.None)
 {
     Console.WriteLine("Replicating from {0} to {1}.", source.Url, destination.Url);
     using (var session = source.OpenSession())
     {
         session.Store(new ReplicationDocument
         {
             Destinations = { new ReplicationDestination
                              {
                                  Url = destination.Url,
                                  TransitiveReplicationBehavior = transitiveReplicationBehavior
                                                                  // servers[dest].Database.Configuration.ServerUrl
                              } }
         });
         session.SaveChanges();
     }
 }