1 /******************************************************************************
2 * The MIT License
3 * Copyright (c) 2003 Novell Inc.  www.novell.com
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining  a copy
6 * of this software and associated documentation files (the Software), to deal
7 * in the Software without restriction, including  without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to  permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 *******************************************************************************/
23 //
24 // Novell.Directory.Ldap.Extensions.ReplicationConstants.cs
25 //
26 // Author:
27 //   Sunil Kumar (Sunilk@novell.com)
28 //
29 // (C) 2003 Novell, Inc (http://www.novell.com)
30 //
31 
32 using System;
33 
34 namespace Novell.Directory.Ldap.Extensions
35 {
36 
37 	/*
38 	* public class ReplicationConstants
39 	*/
40 
41 	/// <summary> Contains a collection of constants used by the replication management
42 	/// in Novell Ldap extensions.
43 	/// </summary>
44 	public class ReplicationConstants
45 	{
46 
47 		/// <summary> A constant for the SplitPartitionRequest OID.</summary>
48 		public const System.String CREATE_NAMING_CONTEXT_REQ = "2.16.840.1.113719.1.27.100.3";
49 
50 		/// <summary> A constant for the SplitPartitionResponse OID.</summary>
51 		public const System.String CREATE_NAMING_CONTEXT_RES = "2.16.840.1.113719.1.27.100.4";
52 
53 		/// <summary> A constant for the mergePartitionRequest OID.</summary>
54 		public const System.String MERGE_NAMING_CONTEXT_REQ = "2.16.840.1.113719.1.27.100.5";
55 
56 		/// <summary> A constant for the mergePartitionResponse OID.</summary>
57 		public const System.String MERGE_NAMING_CONTEXT_RES = "2.16.840.1.113719.1.27.100.6";
58 
59 		/// <summary> A constant for the addReplicaRequest OID.</summary>
60 		public const System.String ADD_REPLICA_REQ = "2.16.840.1.113719.1.27.100.7";
61 
62 		/// <summary> A constant for the addReplicaResponse OID.</summary>
63 		public const System.String ADD_REPLICA_RES = "2.16.840.1.113719.1.27.100.8";
64 
65 		/// <summary> A constant for the refreshServerRequest OID.</summary>
66 		public const System.String REFRESH_SERVER_REQ = "2.16.840.1.113719.1.27.100.9";
67 
68 		/// <summary> A constant for the refreshServerResponse OID.</summary>
69 		public const System.String REFRESH_SERVER_RES = "2.16.840.1.113719.1.27.100.10";
70 
71 		/// <summary> A constant for the removeReplicaRequest OID.</summary>
72 		public const System.String DELETE_REPLICA_REQ = "2.16.840.1.113719.1.27.100.11";
73 
74 		/// <summary> A constant for the removeReplicaResponse OID.</summary>
75 		public const System.String DELETE_REPLICA_RES = "2.16.840.1.113719.1.27.100.12";
76 
77 		/// <summary> A constant for the partitionEntryCountRequest OID.</summary>
78 		public const System.String NAMING_CONTEXT_COUNT_REQ = "2.16.840.1.113719.1.27.100.13";
79 
80 		/// <summary> A constant for the partitionEntryCountResponse OID.</summary>
81 		public const System.String NAMING_CONTEXT_COUNT_RES = "2.16.840.1.113719.1.27.100.14";
82 
83 		/// <summary> A constant for the changeReplicaTypeRequest OID.</summary>
84 		public const System.String CHANGE_REPLICA_TYPE_REQ = "2.16.840.1.113719.1.27.100.15";
85 
86 		/// <summary> A constant for the changeReplicaTypeResponse OID.</summary>
87 		public const System.String CHANGE_REPLICA_TYPE_RES = "2.16.840.1.113719.1.27.100.16";
88 
89 		/// <summary> A constant for the getReplicaInfoRequest OID.</summary>
90 		public const System.String GET_REPLICA_INFO_REQ = "2.16.840.1.113719.1.27.100.17";
91 
92 		/// <summary> A constant for the getReplicaInfoResponse OID.</summary>
93 		public const System.String GET_REPLICA_INFO_RES = "2.16.840.1.113719.1.27.100.18";
94 
95 		/// <summary> A constant for the listReplicaRequest OID.</summary>
96 		public const System.String LIST_REPLICAS_REQ = "2.16.840.1.113719.1.27.100.19";
97 
98 		/// <summary> A constant for the listReplicaResponse OID.</summary>
99 		public const System.String LIST_REPLICAS_RES = "2.16.840.1.113719.1.27.100.20";
100 
101 		/// <summary> A constant for the receiveAllUpdatesRequest OID.</summary>
102 		public const System.String RECEIVE_ALL_UPDATES_REQ = "2.16.840.1.113719.1.27.100.21";
103 
104 		/// <summary> A constant for the receiveAllUpdatesResponse OID.</summary>
105 		public const System.String RECEIVE_ALL_UPDATES_RES = "2.16.840.1.113719.1.27.100.22";
106 
107 		/// <summary> A constant for the sendAllUpdatesRequest OID.</summary>
108 		public const System.String SEND_ALL_UPDATES_REQ = "2.16.840.1.113719.1.27.100.23";
109 
110 		/// <summary> A constant for the sendAllUpdatesResponse OID.</summary>
111 		public const System.String SEND_ALL_UPDATES_RES = "2.16.840.1.113719.1.27.100.24";
112 
113 		/// <summary> A constant for the requestPartitionSyncRequest OID.</summary>
114 		public const System.String NAMING_CONTEXT_SYNC_REQ = "2.16.840.1.113719.1.27.100.25";
115 
116 		/// <summary> A constant for the requestPartitionSyncResponse OID.</summary>
117 		public const System.String NAMING_CONTEXT_SYNC_RES = "2.16.840.1.113719.1.27.100.26";
118 
119 		/// <summary> A constant for the requestSchemaSyncRequest OID.</summary>
120 		public const System.String SCHEMA_SYNC_REQ = "2.16.840.1.113719.1.27.100.27";
121 
122 		/// <summary> A constant for the requestSchemaSyncResponse OID.</summary>
123 		public const System.String SCHEMA_SYNC_RES = "2.16.840.1.113719.1.27.100.28";
124 
125 		/// <summary> A constant for the abortPartitionOperationRequest OID.</summary>
126 		public const System.String ABORT_NAMING_CONTEXT_OP_REQ = "2.16.840.1.113719.1.27.100.29";
127 
128 		/// <summary> A constant for the abortPartitionOperationResponse OID.</summary>
129 		public const System.String ABORT_NAMING_CONTEXT_OP_RES = "2.16.840.1.113719.1.27.100.30";
130 
131 		/// <summary> A constant for the getContextIdentityNameRequest OID.</summary>
132 		public const System.String GET_IDENTITY_NAME_REQ = "2.16.840.1.113719.1.27.100.31";
133 
134 		/// <summary> A constant for the getContextIdentityNameResponse OID.</summary>
135 		public const System.String GET_IDENTITY_NAME_RES = "2.16.840.1.113719.1.27.100.32";
136 
137 		/// <summary> A constant for the getEffectivePrivilegesRequest OID.</summary>
138 		public const System.String GET_EFFECTIVE_PRIVILEGES_REQ = "2.16.840.1.113719.1.27.100.33";
139 
140 		/// <summary> A constant for the getEffectivePrivilegesResponse OID.</summary>
141 		public const System.String GET_EFFECTIVE_PRIVILEGES_RES = "2.16.840.1.113719.1.27.100.34";
142 
143 		/// <summary> A constant for the setReplicationFilterRequest OID.</summary>
144 		public const System.String SET_REPLICATION_FILTER_REQ = "2.16.840.1.113719.1.27.100.35";
145 
146 		/// <summary> A constant for the setReplicationFilterResponse OID.</summary>
147 		public const System.String SET_REPLICATION_FILTER_RES = "2.16.840.1.113719.1.27.100.36";
148 
149 		/// <summary> A constant for the getReplicationFilterRequest OID.</summary>
150 		public const System.String GET_REPLICATION_FILTER_REQ = "2.16.840.1.113719.1.27.100.37";
151 
152 		/// <summary> A constant for the getReplicationFilterResponse OID.</summary>
153 		public const System.String GET_REPLICATION_FILTER_RES = "2.16.840.1.113719.1.27.100.38";
154 
155 		/// <summary> A constant for the splitOrphanPartitionRequest OID.</summary>
156 		public const System.String CREATE_ORPHAN_NAMING_CONTEXT_REQ = "2.16.840.1.113719.1.27.100.39";
157 
158 		/// <summary> A constant for the splitOrphanPartitionResponse OID.</summary>
159 		public const System.String CREATE_ORPHAN_NAMING_CONTEXT_RES = "2.16.840.1.113719.1.27.100.40";
160 
161 		/// <summary> A constant for the removeOrphanPartitionRequest OID.</summary>
162 		public const System.String REMOVE_ORPHAN_NAMING_CONTEXT_REQ = "2.16.840.1.113719.1.27.100.41";
163 
164 		/// <summary> A constant for the removeOrphanPartitionResponse OID.</summary>
165 		public const System.String REMOVE_ORPHAN_NAMING_CONTEXT_RES = "2.16.840.1.113719.1.27.100.42";
166 
167 		/// <summary> A constant for the triggerBackLinkerRequest OID.</summary>
168 		public const System.String TRIGGER_BKLINKER_REQ = "2.16.840.1.113719.1.27.100.43";
169 
170 		/// <summary> A constant for the triggerBackLinkerResponse OID.</summary>
171 		public const System.String TRIGGER_BKLINKER_RES = "2.16.840.1.113719.1.27.100.44";
172 
173 		/// <summary> A constant for the triggerJanitorRequest OID.</summary>
174 		public const System.String TRIGGER_JANITOR_REQ = "2.16.840.1.113719.1.27.100.47";
175 
176 		/// <summary> A constant for the triggerJanitorResponse OID.</summary>
177 		public const System.String TRIGGER_JANITOR_RES = "2.16.840.1.113719.1.27.100.48";
178 
179 		/// <summary> A constant for the triggerLimberRequest OID.</summary>
180 		public const System.String TRIGGER_LIMBER_REQ = "2.16.840.1.113719.1.27.100.49";
181 
182 		/// <summary> A constant for the triggerLimberResponse OID.</summary>
183 		public const System.String TRIGGER_LIMBER_RES = "2.16.840.1.113719.1.27.100.50";
184 
185 		/// <summary> A constant for the triggerSkulkerRequest OID.</summary>
186 		public const System.String TRIGGER_SKULKER_REQ = "2.16.840.1.113719.1.27.100.51";
187 
188 		/// <summary> A constant for the triggerSkulkerResponse OID.</summary>
189 		public const System.String TRIGGER_SKULKER_RES = "2.16.840.1.113719.1.27.100.52";
190 
191 		/// <summary> A constant for the triggerSchemaSyncRequest OID.</summary>
192 		public const System.String TRIGGER_SCHEMA_SYNC_REQ = "2.16.840.1.113719.1.27.100.53";
193 
194 		/// <summary> A constant for the triggerSchemaSyncResponse OID.</summary>
195 		public const System.String TRIGGER_SCHEMA_SYNC_RES = "2.16.840.1.113719.1.27.100.54";
196 
197 		/// <summary> A constant for the triggerPartitionPurgeRequest OID.</summary>
198 		public const System.String TRIGGER_PART_PURGE_REQ = "2.16.840.1.113719.1.27.100.55";
199 
200 		/// <summary> A constant for the triggerPartitionPurgeResponse OID.</summary>
201 		public const System.String TRIGGER_PART_PURGE_RES = "2.16.840.1.113719.1.27.100.56";
202 
203 
204 		/// <summary> A constant that specifies that all servers in a replica ring must be
205 		/// running for a partition operation to proceed.
206 		/// </summary>
207 		public const int Ldap_ENSURE_SERVERS_UP = 1;
208 
209 
210 		/// <summary> Identifies this replica as the master replica of the partition.
211 		///
212 		/// On this type of replica, entries can be modified, and partition
213 		/// operations can be performed.
214 		/// </summary>
215 		public const int Ldap_RT_MASTER = 0;
216 
217 		/// <summary> Identifies this replica as a secondary replica of the partition.
218 		///
219 		/// On this type of replica, read and write operations can be performed,
220 		/// and entries can be modified.
221 		/// </summary>
222 		public const int Ldap_RT_SECONDARY = 1;
223 
224 		/// <summary> Identifies this replica as a read-only replica of the partition.
225 		///
226 		/// Only Novell eDirectory synchronization processes can modified
227 		/// entries on this replica.
228 		/// </summary>
229 		public const int Ldap_RT_READONLY = 2;
230 
231 		/// <summary> Identifies this replica as a subordinate reference replica of the
232 		/// partition.
233 		///
234 		/// NOvell eDirectory automatically adds these replicas to a server
235 		/// when the server does not contain replicas of all child partitions.
236 		/// Only eDirectory can modify information on these types of replicas.
237 		/// </summary>
238 		public const int Ldap_RT_SUBREF = 3;
239 
240 		/// <summary> Identifies this replica as a read/write replica of the partition,
241 		/// but the replica contains sparse data.
242 		///
243 		/// The replica has been configured to contain only specified object types
244 		/// and attributes. On this type of replica, only the attributes and objects
245 		/// contained in the sparse data can be modified.
246 		/// </summary>
247 		public const int Ldap_RT_SPARSE_WRITE = 4;
248 
249 		/// <summary> Identifies this replica as a read-only replica of the partition,
250 		/// but the replica contains sparse data.
251 		///
252 		/// The replica has been configured to contain only specified object types
253 		/// and attributes. On this type of replica, only Novell eDirectory
254 		/// synchronization processes can modify the sparse data.
255 		/// </summary>
256 		public const int Ldap_RT_SPARSE_READ = 5;
257 
258 		//Replica States
259 
260 		/// <summary> Indicates that the replica is fully functioning and capable of responding
261 		/// to requests.
262 		/// </summary>
263 		public const int Ldap_RS_ON = 0;
264 
265 		/// <summary> Indicates that a new replica has been added but has not received a full
266 		/// download of information from the replica ring.
267 		/// </summary>
268 		public const int Ldap_RS_NEW_REPLICA = 1;
269 
270 		/// <summary> Indicates that the replica is being deleted and that the request has
271 		/// been received.
272 		/// </summary>
273 		public const int Ldap_RS_DYING_REPLICA = 2;
274 
275 		/// <summary> Indicates that the replica is locked. The move operation uses this state
276 		/// to lock the parent partition of the child partition that is moving.
277 		/// </summary>
278 		public const int Ldap_RS_LOCKED = 3;
279 
280 		/// <summary> Indicates that a new replica has finished receiving its download from the
281 		/// master replica and is now receiving synchronization updates from other
282 		/// replicas.
283 		/// </summary>
284 		public const int Ldap_RS_TRANSITION_ON = 6;
285 
286 
287 		/// <summary> Indicates that the dying replica needs to synchronize with another replica
288 		/// before being converted either to an external reference, if a root replica,
289 		/// or to a subordinate reference, if a non-root replica.
290 		/// </summary>
291 		public const int Ldap_RS_DEAD_REPLICA = 7;
292 
293 		/// <summary> Indicates that the subordinate references of the new replica are being
294 		/// added.
295 		/// </summary>
296 		public const int Ldap_RS_BEGIN_ADD = 8;
297 
298 		/// <summary> Indicates that a partition is receiving a new master replica.
299 		///
300 		/// The replica that will be the new master replica is set to this state.
301 		/// </summary>
302 		public const int Ldap_RS_MASTER_START = 11;
303 
304 		/// <summary> Indicates that a partition has a new master replica.
305 		///
306 		/// When the new master is set to this state, Novell eDirectory knows
307 		/// that the replica is now the master and changes its replica type to
308 		/// master and the old master to read/write.
309 		/// </summary>
310 		public const int Ldap_RS_MASTER_DONE = 12;
311 
312 		/// <summary> Indicates that the partition is going to split into two partitions.
313 		///
314 		/// In this state, other replicas of the partition are informed of the
315 		/// pending split.
316 		/// </summary>
317 		public const int Ldap_RS_SS_0 = 48; // Replica splitting 0
318 
319 		/// <summary> Indicates that that the split partition operation has started.
320 		///
321 		/// When the split is finished, the state will change to RS_ON.
322 		/// </summary>
323 		public const int Ldap_RS_SS_1 = 49; // Replica splitting 1
324 
325 		/// <summary> Indicates that that two partitions are in the process of joining
326 		/// into one partition.
327 		///
328 		/// In this state, the replicas that are affected are informed of the join
329 		/// operation. The master replica of the parent and child partitions are
330 		/// first set to this state and then all the replicas of the parent and child.
331 		/// New replicas are added where needed.
332 		/// </summary>
333 		public const int Ldap_RS_JS_0 = 64; // Replica joining 0
334 
335 		/// <summary> Indicates that that two partitions are in the process of joining
336 		/// into one partition.
337 		///
338 		/// This state indicates that the join operation is waiting for the new
339 		/// replicas to synchronize and move to the RS_ON state.
340 		/// </summary>
341 		public const int Ldap_RS_JS_1 = 65; // Replica joining 1
342 
343 		/// <summary> Indicates that that two partitions are in the process of joining
344 		/// into one partition.
345 		///
346 		/// This state indicates that all the new replicas are in the RS_ON state
347 		/// and that the rest of the work can be completed.
348 		/// </summary>
349 		public const int Ldap_RS_JS_2 = 66; // Replica joining 2
350 
351 
352 		// Values for flags used in the replica info class structure
353 
354 		/// <summary> Indicates that the replica is involved with a partition operation,
355 		/// for example, merging a tree or moving a subtree.
356 		/// </summary>
357 		public const int Ldap_DS_FLAG_BUSY = 0x0001;
358 
359 		/// <summary> Indicates that this partition is on the DNS federation boundary.
360 		/// This flag is only set on DNS trees.
361 		/// </summary>
362 		public const int Ldap_DS_FLAG_BOUNDARY = 0x0002;
363 
364 
ReplicationConstants()365 		public ReplicationConstants()
366 		{
367 		}
368 	}
369 }
370