Astra Linux Directory Client Core API  1.7.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы Группы Страницы
msg-definitions.h
См. документацию.
1 
6 #ifndef ALD_MSG_DEFINITIONS
7 #define ALD_MSG_DEFINITIONS
8 
9 #include "ALDUtils.h"
10 
11 namespace ALD
12 {
19 // universal common messages
21 #define OBJ_USER _C("user")
22 #define OBJ_GROUP _C("group")
23 #define OBJ_POLICY _C("policy")
24 #define OBJ_DOMAIN _C("domain")
25 #define OBJ_TASK _C("task")
26 #define OBJ_EVTASK _C("event")
27 #define OBJ_SERVICE _C("service")
28 #define OBJ_SGROUP _C("service group")
29 #define OBJ_HGROUP _C("host group")
30 #define OBJ_HOST _C("host")
31 #define OBJ_OBJECT _C("object")
32 #define OBJ_ADMGROUP _C("group of administrators")
33 #define OBJ_DOMAIN_LOG_CFG _C("domain log configuration")
34 #define OBJ_TD _C("trusted domain")
35 #define OBJ_DNS _C("DNS name")
36 #define OBJ_DOCUMENT _C("document")
37 
38 #define OBJ_WITH_ID _C("with ID")
39 
40 #define OBJNAME(obj, name) string((!name.empty() && isdigit(name[0])) ? string(OBJ_WITH_ID)+" "+name : "'"+name+"'")
41 
44 #define DESC_CANCELED _C("Action cancelled.")
46 
47 #define ERR_BAD_NAME(obj, name, desc) FMTSTR(3, _C("Incorrect name of object %s '%s'.%s"), obj, name.c_str(), desc)
48 
49 #define WARN_NOT_FOUND(obj, name) FMTSTR(2, _C("Object %s %s not found."), obj, \
50  OBJNAME(obj, name).c_str())
51 #define WARN_EXISTS(obj, name) FMTSTR(2, _C("Object %s %s already exists."), obj, \
52  OBJNAME(obj, name).c_str())
53 #define WARN_REMOVE(obj, name, desc) FMTSTR(3, _C("You are going to remove object %s %s.%s"), obj, \
54  OBJNAME(obj, name).c_str(), desc)
55 #define ERR_ADDITION(obj, name) FMTSTR(3, _C("Failed to create object %s %s. %s"), obj, \
56  OBJNAME(obj, name).c_str(), DESC_CANCELED)
57 #define ERR_DELETION(obj, name) FMTSTR(3, _C("Failed to remove object %s %s. %s"), obj, \
58  OBJNAME(obj, name).c_str(), DESC_CANCELED)
59 #define ERR_MODIFICATION(obj, name) FMTSTR(3, _C("Failed to modify object %s %s. %s"), obj, \
60  OBJNAME(obj, name).c_str(), DESC_CANCELED)
61 
62 #define WARN_DELETION(obj, name) FMTSTR(2, _C("Not all conditions are satisfied for the removal " \
63  "of object %s %s. Action cancelled."), obj, OBJNAME(obj, name).c_str())
64 
65 #define MSG_CREATE_OBJECT(obj, name) FMTSTR(2, _C("Creating object %s %s"), obj, \
66  OBJNAME(obj, name).c_str())
67 
68 #define MSG_UPDATE_OBJECT(obj, name) FMTSTR(2, _C("Modifying object %s %s"), obj, \
69  OBJNAME(obj, name).c_str())
70 
71 #define MSG_REMOVE_OBJECT(obj, name) FMTSTR(2, _C("Removing object %s %s"), obj, \
72  OBJNAME(obj, name).c_str())
73 
74 #define MSG_OBJECT_LOADING(obj, name) FMTSTR(2, _C("Loading object %s '%s..."), obj, \
75  name.c_str())
76 
77 #define MSG_OBJECT_LOADED(obj, name) FMTSTR(2, _C("Object %s '%s' is loaded."), obj, \
78  name.c_str())
79 
80 #define ERR_OBJECT_LOADING(obj, name, msg) FMTSTR(3, _C("Failed to load object '%s:%s': %s."), \
81  obj.c_str(), name.c_str(), msg)
82 
83 #define ERR_INVALID_PROP_ID(obj, id) FMTSTR(2, _C("Unknown object %s property ID (%d)"), obj, id)
84 
85 #define DESC_EMPTY ""
86 #define FMT_USER_NAME _C("\nThere ara some restrictions on user name. See VALID_USER_NAMES "\
87  "parameter in 'ald.conf' file. By default it should contain "\
88  "lower case latin letters, numbers, '-', '_', '.' and be less " \
89  "than 32 characters. Should start with a letter.")
90 #define FMT_GROUP_NAME _C("\nThere ara some restrictions on group name. See VALID_GROUP_NAMES "\
91  "parameter in 'ald.conf' file. By default it should contain "\
92  "latin letters, numbers, '-', '_', '.', ' ' and be less " \
93  "than 32 characters. Should start with a letter.")
94 #define FMT_SGROUP_NAME FMT_GROUP_NAME
95 #define FMT_HGROUP_NAME FMT_GROUP_NAME
96 #define FMT_POLICY_NAME _C("\nShould contain latin letters, digits, minus and underscore chars.")
97 #define FMT_SERVICE_NAME _C("\nShould have form 'service/host'. Where 'service' should contain " \
98  "lower case latin letters, numbers, '-', '_' and be less " \
99  "than 32 characters. Should start with a letter.")
100 #define FMT_HOST_NAME _C("\nMay contain latin letters, digits, '-', '.'. " \
101  "Should be short or fully qualified domain name. " \
102  "Should not start with a period(.).")
103 #define FMT_DOMAIN_NAME _C("\nMay contain latin letters, digits, '-', '.'. " \
104  "Must have prefix of a period(.).")
105 
106 #define FMT_DNS_NAME _C("\nMay contain maximum 255 octets with maximum 63 octets between separators.")
107 
108 // messages for principals
109 
110 #define WARN_PRINCIPAL_NOT_FOUND(obj, name) FMTSTR(3, _C("Kerberos principal for %s '%s' not found. %s"), \
111  obj, name.c_str(), WARN_POSSIBLE_INTEGRITY_ERROR)
112 
113 #define WARN_PRINCIPAL_WITHOUT_OBJ(obj, name) FMTSTR(3, _C("Kerberos principal for %s '%s' exists. %s"), \
114  obj, name.c_str(), WARN_POSSIBLE_INTEGRITY_ERROR)
115 
116 #define WARN_PRINCIPAL_EXISTS(user) FMTSTR(1, _C("Kerberos principal '%s' already exists."), \
117  user.c_str())
118 
119 // messages for user manipulation
120 
121 #define ERR_MULTIPLE_USERS(user) FMTSTR(1, _C("Multiple users with the same name or uid '%s'."), user.c_str())
122 
123 #define MSG_SCHEDULED_UPDATE_DELAYED _C("\nNOTE. Some parameters (like user priveledges or home directory) " \
124  "will be updated in a minute by 'aldd' daemon.\n")
125 
126 #define ASK_REMOVE_PRIMARY_GROUP(group) FMTSTR(1, _C("The primary group '%s' of the deleted user is empty.\n" \
127  "Remove it?"), group.c_str())
128 
129 #define ASK_DEFAULT_PASSWORD _C("Enter default password for a user")
130 #define ASK_USER_PASSWORD(user) FMTSTR(1, _C("Enter new password for user '%s'"), user.c_str())
131 
132 #define ERR_INVALID_UID(uid, muid) FMTSTR(2, _C("Invalid user identification number %d. Must be more than mimimum uid %d."), \
133  uid, muid)
134 
135 #define WARN_USERPOLICY_NOTEQUAL(user, pol1, pol2) FMTSTR(3, _C("Policy for user '%s' doesn't match in LDAP ('%s') vs Kerberos ('%s')."), \
136  user.c_str(), pol1.c_str(), pol2.c_str())
137 // messages for group manipulation
138 
139 #define ERR_MULTIPLE_GROUPS(group) FMTSTR(1, _C("Multiple groups with the same name or gid '%s'."), group.c_str())
140 
141 #define ERR_PRIMARY_MEMBERS_EXIST(group, members) FMTSTR(2, _C("Group '%s' is referred by primary members:\n" \
142  "%s\n" \
143  "Modify these users, so they don't refer to this group."), group.c_str(), members.c_str())
144 
145 #define WARN_GROUP_RM _C("\nAll members of this group will lose their membership, but will remain " \
146  "in the database. Delete them manually if needed.")
147 
148 #define WARN_MEMBERS_ALREADY_EXIST(grp, mems) FMTSTR(2, _C("The following user(s) is(are) already member(s) of group '%s':\n" \
149  "%s"), grp.c_str(), mems.c_str())
150 
151 #define WARN_ALREADY_PRIMARY_MEMBERS(grp, mems) FMTSTR(2, _C("The following user(s) is(are) already primary member(s) of " \
152  "group '%s':\n" \
153  "%s"), grp.c_str(), mems.c_str())
154 
155 #define WARN_GROUP_REMOVE_MEMBERS_NOT_EXIST(grp, mems) FMTSTR(2, _C("The following user(s) is(are) not secondary member(s) of " \
156  "group '%s':\n" \
157  "%s"), grp.c_str(), mems.c_str())
158 
159 #define ERR_INVALID_GID(gid, mgid) FMTSTR(2, _C("Invalid group identification number %d. Must be more than mimimum gid %d."), \
160  gid, mgid)
161 // messages for policy manipulation
162 
163 #define ERR_MULTIPLE_POLICIES(policy) FMTSTR(1, _C("Multiple policies with the same name '%s'."), policy.c_str())
164 
165 #define ERR_POLICY_USED(policy, users) FMTSTR(2, _C("Unable to remove policy '%s', because it is used by the users:\n" \
166  "%s\n" \
167  "Modify these users not to use this policy."), policy.c_str(), users.c_str())
168 
169 #define ERR_INVALID_LIFETIME(name) FMTSTR(1, _C("Incorrect lifetime parameter '%s'. " \
170  "Should be in form: NNd (for days) or NNh (for hours) or NNm (for minutes)."), \
171  name)
172 
173 #define WARN_KRBPOLICY_NOT_FOUND(name) FMTSTR(2, _C("Kerberos policy '%s' not found. %s"), \
174  name.c_str(), WARN_POSSIBLE_INTEGRITY_ERROR)
175 
176 #define WARN_POLICY_EXISTS(policy) FMTSTR(1, _C("Kerberos policy '%s' already exists."), \
177  policy.c_str())
178 
179 #define WARN_KRBPOLICY_WITHOUT_OBJ(name) FMTSTR(2, _C("Kerberos policy '%s' exists. %s"), \
180  name.c_str(), WARN_POSSIBLE_INTEGRITY_ERROR)
181 
182 #define WARN_ALDKRBPOLICY_NOTEQUAL(name, info) FMTSTR(2, _C("Policy '%s' doesn't match in LDAP vs Kerberos.%s"), \
183  name.c_str(), (string(" ")+info).c_str())
184 
185 // messages for service manipulation
186 
187 #define ERR_SYSTEM_SERVICE(service) FMTSTR(1, _C("Service '%s' is a system or host service."), service.c_str())
188 
189 #define WARN_SYSTEM_SERVICE_RM(service) FMTSTR(1, _C("%s\nRemoving system services will lead to incorrect work of ALD.\n" \
190  "To remove 'host/', 'cifs/' and 'nfs/' services use 'host-rm' command.\n"), \
191  ERR_SYSTEM_SERVICE(service))
192 
193 // messages for service group manipulation
194 
195 #define ERR_MULTIPLE_SGROUPS(sgroup) FMTSTR(1, _C("Multiple service groups with the same name '%s'."), sgroup.c_str())
196 
197 #define WARN_SGROUP_RM _C("\nAll members of this service group will lose their membership, but will remain " \
198  "in the database. Delete them manually if needed.")
199 
200 // messages for administrators group manipulation
201 
202 #define ERR_MULTIPLE_AGROUPS FMTSTR(1, _C("Multiple groups of administrators. %s"), \
203  WARN_POSSIBLE_INTEGRITY_ERROR)
204 
205 // messages for domain log configuration manipulation
206 
207 #define ERR_MULTIPLE_LOG_CFGS FMTSTR(1, _C("Multiple domain log configurations. %s"), \
208  WARN_POSSIBLE_INTEGRITY_ERROR)
209 
210 #define MSG_LOG_TPL_ALTER(tpl) FMTSTR(1, _C("alter log template '%s'"), tpl.c_str())
211 #define MSG_LOG_DEST_ALTER(dest) FMTSTR(1, _C("alter log destination '%s'"), dest.c_str())
212 
213 // messages for host group manipulation
214 
215 #define ERR_MULTIPLE_HGROUPS(hgroup) FMTSTR(1, _C("Multiple host groups with the same name '%s'."), hgroup.c_str())
216 
217 #define WARN_HGROUP_RM _C("\nAll members of this host group will lose their membership, but will remain " \
218  "in the database. Delete them manually if needed.")
219 
220 // messages for host manipulation
221 
222 #define ERR_MULTIPLE_HOSTS(host) FMTSTR(1, _C("Multiple hosts with the same name '%s'."), host.c_str())
223 
224 // messages for document manipulation
225 
226 #define ERR_MULTIPLE_DOCS(doc) FMTSTR(1, _C("Multiple documents with the same name '%s'."), doc.c_str())
227 
228 // messages for domain manipulation
229 
230 #define ERR_MULTIPLE_DOMAINS(domain) FMTSTR(1, _C("Multiple domains with the same name '%s'."), domain.c_str())
231 
232 #define WARN_NO_LDAP_CONNECT _C("No connect to LDAP server or ALD database not initialized.")
233 
234 #define ERR_DB_NOT_INITIALIZED _C("Astra Linux Directory database is not initialized.\n" \
235  "Run 'ald-init init' command or restore from backup.")
236 
237 #define ERR_DB_HAS_DIFFERENT_DOMAIN(dom1, dom2) FMTSTR(2, _C("Astra Linux Directory database domain '%s' " \
238  "mismatches domain in 'ald.conf' file '%s'.\n" \
239  "Create new database with 'ald-init init' command " \
240  "or use 'backup-ldif' and 'restore-backup-ldif' commands to change domain."), \
241  dom1.c_str(), dom2.c_str())
242 
243 #define ERR_DB_INVALID_REALM(krb5realm, domain) FMTSTR(2, _C("Astra Linux Directory misconfigured. Kerberos realm '%s' " \
244  "doesn't correspond domain in 'ald.conf' file '%s'.\n" \
245  "Create new database with 'ald-init init' command " \
246  "or use 'backup-ldif' and 'restore-backup-ldif' commands to change domain."), \
247  krb5realm.c_str(), domain.c_str())
248 
249 #define ERR_INVALID_TASK_HISTORY(val) FMTSTR(1, _C("Invalid task history parameter '%s'.\n" \
250  "Task history parameter should be > 2 and < 2000."), val.c_str())
251 
252 #define ERR_INVALID_DOMAIN_PARAMETER(prm, val) FMTSTR(2, _C("Domain parameter '%s' has invalid value '%s'."), prm, \
253  val.c_str())
254 
255 #define ERR_INVALID_VERSION(clntver, srvver) FMTSTR(2, _C("Client version '%s' doesn't match server version '%s'."), \
256  clntver.c_str(), srvver.c_str())
257 
258 // messages for task
259 
260 #define ERR_MULTIPLE_TASKS(TaskID) FMTSTR(1, _C("Multiple tasks with the same ID '%s'."), TaskID.c_str())
261 
262 #define ERR_INVALID_TASK_ID(TaskID) FMTSTR(1, _C("Invalid task id '%s'."), TaskID.c_str())
263 
264 // messages for host
265 
266 #define ERR_BAD_HOST_NAME(name, desc) FMTSTR(2, _C("Incorrect host name '%s'.%s"), name.c_str(), desc)
267 
268 #define ERR_BAD_HOST_LOCALHOST _C("Host name 'localhost' is prohibited.")
269 
270 #define ERR_BAD_HOST_DOMAIN(host, domain) FMTSTR(2, _C("Incorrect domain in host name '%s'.\n" \
271  "A host name should be a short name or fully qualified name ending with " \
272  "'%s' domain"), host.c_str(), domain.c_str())
273 // messages for daemons
274 
275 #define MSG_SERVICE_MANAGE(svc, op) FMTSTR(2, _C("Manage service %s %s..."), svc.c_str(), op.c_str())
276 
277 #define MSG_SERVICE_STOP(svc) FMTSTR(1, _C("Stopping service %s..."), svc.c_str())
278 
279 #define MSG_SERVICE_START(svc) FMTSTR(1, _C("Starting service %s..."), svc.c_str())
280 
281 #define MSG_SERVICE_RESTART(svc) FMTSTR(1, _C("Restarting service %s..."), svc.c_str())
282 
283 #define MSG_SERVICE_RELOAD(svc) FMTSTR(1, _C("Reload service %s..."), svc.c_str())
284 
285 #define MSG_SERVICE_INSTALL(svc) FMTSTR(1, _C("Install System-V style init script links " \
286  "for service %s..."), svc.c_str())
287 
288 #define MSG_SERVICE_REMOVE(svc) FMTSTR(1, _C("Remove System-V style init script links " \
289  "for service %s..."), svc.c_str())
290 
291 #define WARN_SERVICE_MANAGE(svc) FMTSTR(2, _C("Script '/etc/init.d/%s' returned code %d."), \
292  svc.c_str())
293 
294 #define ERR_UNKNOWN_SERVICE_OPERATION _C("Unknown service management operation.")
295 
296 #define ERR_SERVICE_OPERATION(svc, op, err) FMTSTR(3, _C("Failed to %s service %s. " \
297  "Exit status %d."), op, svc.c_str(), err)
298 
299 #define ERR_SERVICE_INSTALL_OPERATION(svc, op, err) FMTSTR(3, _C("Failed to %s System-V style init script links " \
300  "for service %s. Exit status %d."), op, svc.c_str(), err)
301 
302 // common messages
303 
304 #define PROCEED _C("Proceed?")
305 #define WARN_PROCEED _C("Are you SURE to PROCEED?")
306 
307 #define ALL_CORRECT _C("All correct?")
308 
309 #define ERR_PATH_SYNTAX(path) FMTSTR(1, _C("Incorrect path '%s'.\n" \
310  "Should be an absolute path. Should not contain any exotic characters.\n" \
311  "Characters allowed: latin letters, digits, '-', '_'.\n" \
312  "Constructs like '..' and '//' are not allowed."), path.c_str())
313 
314 #define ERR_BAD_GECOS(gecos) FMTSTR(1, _C("Incorrect GECOS parameter '%s'.\n" \
315  "Format: user_full_name,[room_number],[phone],[home_phone][,other]\n" \
316  "Not allowed character : and !# at the end."), gecos.c_str())
317 
318 #define ERR_BAD_HOME_FS(homefs, fss) FMTSTR(2, _C("Incorrect home FS type '%s'.\n" \
319  "Supported FS: %s"), homefs.c_str(), fss.c_str())
320 
321 #define PROMPT_GECOS _C("Enter GECOS field (user_full_name,[room_number],[phone],[home_phone][,other])\n" \
322  "Allowed: letters, digits, space, -.+()_ characters.\n" \
323  "GECOS")
324 
325 #define ERR_MUTUAL_OPTIONS(opt1, opt2) FMTSTR(2, _C("Options '--%s' and '--%s' are mutual exclusive."), opt1, opt2)
326 
327 #define ERR_NEITHER_OPTIONS(opt1, opt2) FMTSTR(2, _C("Neither '--%s' nor '--%s' option is specified."), opt1, opt2)
328 
329 #define ERR_OPTION_NEEDED(opt) FMTSTR(1, _C("Option '--%s' is needed."), opt)
330 
331 #define WARN_NOTHING_TO_DO(cmd) FMTSTR(1, _C("Nothing to do for '%s' command."), cmd.c_str())
332 
333 #define ERR_ARG_OPT_CONFLICT(cmd) FMTSTR(1, _C("Argument conflicts with an option in '%s' command."), cmd.c_str())
334 
335 #define ERR_INVALID_OPTION_ARGUMENT(opt) FMTSTR(1, _C("Invalid argument format for option '%s'."), opt.c_str())
336 
337 #define WARN_POSSIBLE_INTEGRITY_ERROR _C("\nPossible integrity error.\n" \
338  "Invoke 'test-integrity' command " \
339  "and/or try to reinvoke the current command after fixing problems.")
340 
341 #define ERR_IN_PASSFILE(file, line) FMTSTR(2, _C("%s:%d: Parse error in password file.\n" \
342  "All lines should have format 'user:password'.\n" \
343  "'user' may have format of Kerberos principal (w/o realm), " \
344  "(e.g. 'admin/admin', 'K/M') or Unix user (lower case latin " \
345  "letters, numbers, '-', '_', should be less 32 chars). " \
346  "Should start with a letter."), file.c_str(), line)
347 
348 #define ERR_PASSFILE_PERM(file, perm) FMTSTR(2, _C("Password file '%s' has dangerous permissions (%o).\n" \
349  "This may be a security hole. Password file should have 0600 mode."), \
350  file.c_str(), perm)
351 
352 #define ERR_NO_PASSWORD(user) FMTSTR(1, _C("No password for user '%s' was found in password file " \
353  "or no --pass-file option was specified. In 'force' mode passwords should " \
354  "be transferred only via a password file."), user.c_str())
355 
356 #define ERR_DUP_PASSWORD(user) FMTSTR(1, _C("Password for user '%s' meet twice in password file."), user.c_str())
357 
358 #define ERR_CHANGE_PASSWORD(user) FMTSTR(1, _C("Failed to change password for user '%s'."), user.c_str())
359 
360 #define WARN_INSUFFICIENT_ACCESS _C("Insufficient access. The user should have administrator privilege.")
361 
362 #define ERR_INVALID_CONFIG_PARAMETER(prm, val) FMTSTR(2, _C("Configuration parameter '%s' has invalid value '%s'."), prm, \
363  val.c_str())
364 
365 #define ERR_INVALID_ATTRIBUTE_VALUE(obj, name, attr, val) FMTSTR(4, _C("Attribute '%s' of %s '%s' has invalid value '%s'."), \
366  attr, obj, name.c_str(), val.c_str())
367 
368 #define ERR_EMPTY_ARGUMENT FMTSTR(1, _C("Argument is empty for '%s'."), __FUNCTION__)
369 
370 #define ERR_INTERNAL_COMMAND(cmd) FMTSTR(1, _C("Command '%s' is for internal use only.\n" \
371  "Do not call it explicitly."), cmd.c_str())
372 
373 #define ERR_INVALID_USAGE(app) FMTSTR(1, _C("Invalid usage of %s."), app.c_str())
374 
375 #define WARN_NOT_ALL_CONDITION(cmd) FMTSTR(1, _C("Not all conditions are satisfied for %s"), cmd.c_str())
376 
377 #define INFO_EXEC_COMMAND(cmd) FMTSTR(1, _C("Executing '%s' command..."), cmd)
378 
379 #define ERR_UNKNOWN_COMMAND(cmd) FMTSTR(1, _C("Unknown command '%s'."), cmd)
380 
381 #define ERR_UNKNOWN_OPTION(opt) FMTSTR(1, _C("Unknown option '%s'."), opt)
382 
383 #define WARN_NOTHING_TO_UNINSTALL _C("Directory '/etc/ald' is not found.\n" \
384  "Astra Linux Directory is already uninstalled.")
385 
386 #define ERR_FAILED_TO_OPEN_DIR(dir) FMTSTR(1, _C("Failed to open directory '%s'."), dir.c_str())
387 
388 #define ERR_FAILED_TO_OPEN_FILE(filename) FMTSTR(1, _C("Failed to open file '%s'."), filename.c_str())
389 
390 #define ERR_FAILED_TO_CREATE_FILE(filename) FMTSTR(1, _C("Failed to create file '%s'."), filename.c_str())
391 
392 #define ERR_FILE_SAVE(filename) FMTSTR(1, _C("Failed to save file '%s'."), filename.c_str())
393 
394 #define ERR_NOT_IMPLEMENTED(feature) FMTSTR(1, _C("Feature '%s' is not inplemented."), feature)
395 
396 #define ERR_ALD_NOT_CONFIGURED(cfg) FMTSTR(1, _C("Astra Linux Directory is not configured.\n" \
397  "Fill config file '%s' correctly."), cfg.c_str())
398 
399 #define ERR_INVALID_HOST_TYPE(type) FMTSTR(1, _C("Invalid host type %d."), type)
400 
401 #define ERR_FILE_NOT_EXISTS(filename) FMTSTR(1, _C("File '%s' doesn't exists."), filename.c_str())
402 
403 #define ERR_ROLLING_BACK_TRANSACTION _C("ERROR occurred during complex transaction. Rolling back...")
404 
405 #define ERR_UNEXPECTED FMTSTR(4, _C("Unexpected error %d in %s:%u - %s()"), errno, ExtractFileName(__FILE__), __LINE__, __FUNCTION__)
406 
407 #define ERR_NAME_RESOLUTION(err) FMTSTR(1, _C("Incorrect setup of name resolution system.\n%s"), err)
408 
409 #define ERR_STAT(file) FMTSTR(1, _C("Error stat '%s':%m"), file.c_str())
410 
411 #define MSG_INTEGRITY_OK _C("ok")
412 #define MSG_INTEGRITY_ERR _C("error")
413 #define MSG_INTEGRITY_WARN _C("warning")
414 #define MSG_INTEGRITY_FIXED _C("fixed")
415 #define ERR_INTEGRITY(err) FMTSTR(1, _C("-- INTEGRITY ERROR:\n%s\n--"), err)
416 
417 #define ERR_INVALID_OBJECT _C("ALD object isn't valid.")
418 #define MSG_INSTALL_EXTENSION(ext) FMTSTR(1, _C("Installing ALD exstension: %s..."), ext)
419 
420 #define ERR_ALD_ABSTRACT_OBJECT _C("Invalid usage of the CALDObject. It is an abstract base class!")
421 
422 #define MSG_GROUP_MEMBER_ADD(member) FMTSTR(1, _C("adding member '%s'"), member.c_str())
423 #define MSG_GROUP_MEMBER_RM(member) FMTSTR(1, _C("removing member '%s'"), member.c_str())
424 
425 #define WARN_NOT_SUPPORTED_CM _C("This operation is not supported in the compatibility mode.")
426 
427 #define WARN_FILE_EXISTS(path) FMTSTR(1, _C("File %s already exists."), path.c_str())
428 
429 #define ERR_MODULE_LOADING _C("Module isn't loaded.")
430 
431 #define MSG_DISABLED _C("Disabled")
432 
433 #define MSG_TRUSTED_CHANGES _C("\nNOTE. Trusted relationships changes require reconfiguration on clients.\n" \
434  "This can be done by 'ald-client restart' command.")
435 
436 #define WARN_TRUSTED_REMOVING _C("\nRemoving trusted relationships requires changes on server " \
437  "and can be done in a minute by 'aldd' daemon.\n")
438 
439 #define WARN_KRB_ACL_CHANGES _C("Kerberos ACL may be changed. Don't forget invoke 'admin-apply' command.")
440 
441 #define ERR_RPC_INVALID_ARGUMENTS _C("Invalid arguments for RPC command.")
442 
443 #define ERR_RPC_PROTOCOL _C("RPC Protocol error.")
444 
445 #define ERR_FORK(reason) FMTSTR(1, _C("Failed to fork. %s"), reason)
446 
447 #define ERR_EMPTY_FIELD(field) FMTSTR(1, _C("Field '%s' can't be empty."), field)
448 
449 #define INFO_DC_DETECTED(domain, server) FMTSTR(2, _C("ALD server for domain '%s' detected on '%s'."), domain.c_str(), server.c_str())
450 #define WARN_DC_NOTDETECTED(domain) FMTSTR(1, _C("ALD server for domain '%s' not detected."), domain.c_str())
451 
452 #define WARN_RESTART _C("Also while executing this command - LDAP, Kerberos, NFS/Samba and some other services may be stopped and restarted.")
453 
454 #define INFO_STAT_OPTION _C(" --stat - displays operational info.")
455 
458 
459 } // ALD
460 
461 #endif // ALD_MSG_DEFINITIONS
Объявление вспомогательных типов и функций общего назначения