Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / platform / DARWIN / AFSPreference / AFSPropertyManager.h
CommitLineData
805e021f
CE
1//
2// AFSPropertyManager.h
3// AFSCommander
4//
5// Created by Claudio Bisegni on 21/05/07.
6// Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
7//
8
9#import <Cocoa/Cocoa.h>
10#import "DBCellElement.h"
11#import "FileUtil.h"
12
13
14#define AFS_DAEMON_STARTUPSCRIPT "/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.rc"
15#define AFS_DAEMON_PATH "/Library/LaunchDaemons/org.openafs.filesystems.afs.plist"
16#define AFS_FS_MOUNT "AFS"
17#define AFS_LAUNCHCTL_GREP_STR "org.openafs.filesystems.afs"
18/*!
19 @class AFSPropertyManager
20 @abstract AFS Manage Class
21 @discussion This class manage the openafs param for celldbserv, cache param, group creation, get and release token
22*/
23
24@interface AFSPropertyManager : NSObject {
25 NSString *installationPath;
26 NSString *cellName;
27 NSMutableArray *cellList;
28 NSArray *userDefaultCellArray;
29 NSString *afsRootMountPoint;
30 int statCacheEntry;
31 int dCacheDim;
32 int cacheDimension;
33 int daemonNumber;
34 int nVolEntry;
35 bool dynRoot;
36 bool afsDB;
37 bool verbose;
38
39 //-------------------
40 FileUtil *futil;
41 BOOL useAfsdConfVersion;
42}
43
44/*!
45 @method
46 @abstract (brief description)
47 @discussion (comprehensive description)
48*/
49-(id) init;
50
51/*!
52@function initWithAfsPath
53 @abstract (description)
54 @discussion (description)
55 @param path Path di installazione afs
56 @result Istanza della classe di gestione delle propieta' afs
57 */
58- (id)initWithAfsPath:(NSString*)path;
59
60/*!
61 @method
62 @abstract (brief description)
63 @discussion (comprehensive description)
64*/
65-(void) dealloc;
66/*!
67 @method
68 @abstract (brief description)
69 @discussion (comprehensive description)
70 */
71-(NSMutableArray*) getCellList;
72
73
74/*!
75 @method
76 @abstract (brief description)
77 @discussion (comprehensive description)
78 */
79-(NSArray*) getAllCellsName;
80/*!
81 @method
82 @abstract (brief description)
83 @discussion (comprehensive description)
84 */
85-(NSArray*) getUserDefaultForTokenCells;
86/*!
87 @method
88 @abstract (brief description)
89 @discussion (comprehensive description)
90 */
91-(NSArray*) getDefaultForTokenCellsName;
92/*!
93 @method
94 @abstract (brief description)
95 @discussion (comprehensive description)
96 */
97-(NSString*) getDefaultCellName;
98
99/*!
100 @method setDefaultCellByName
101 @abstract set the cell named "name" to be se user default
102 @discussion first clean the last one selected as default and then set the cell named "name" as default user cell
103 */
104-(void) setDefaultCellByName:(NSString*)name;
105
106/*!
107 @method
108 @abstract (brief description)
109 @discussion (comprehensive description)
110 */- (void) setCellName:(NSString*)cell;
111
112/*!
113 @method setPath
114 @abstract Imposta Path
115 @discussion Imposta il path dove e' installato afs, in modo da leggere e scrivere le configurazioni
116*/
117-(void) setPath:(NSString*)path;
118
119/*!
120 @method path
121 @abstract Return the afs base
122 @discussion Return the Afs base installation path
123*/
124-(NSString*) path;
125
126/*!
127 @function statCacheEntry
128 @abstract get the afs number of state cache entry
129 @discussion
130 @result Number of stat cache entry
131 */
132-(int) statCacheEntry;
133
134
135/*!
136 @function setStatCacheEntry
137 @abstract Set the afs number of state cache entry
138 @discussion
139 @result Number of stat cache entry
140 */
141-(void) setStatCacheEntry:(int)statEntry;
142
143/*!
144@function dCacheDim
145@abstract return the dCacheDim param value for cache manager
146@result dCacheDim value
147*/
148-(int) dCacheDim;
149
150/*!
151 @function setDCacheDim
152 @abstract set the setDCacheDim value for cache manager param
153 @discussion <#(description)#>
154 @param dcacheDim cache param value
155 */
156-(void) setDCacheDim:(int)dcacheDim;
157
158/*!
159 @function cacheDimension
160 @abstract return the max size of the cache
161 @result Cache dimension
162 */
163-(int) cacheDimension;
164
165/*!
166 @function setCacheDimension
167 @abstract Set the max cache dimension
168 @discussion
169 @param cacheDim MAx Chace dimension
170 */
171-(void) setCacheDimension:(int)cacheDim;
172
173/*!
174 @function daemonNumber
175 @abstract Return the number of daemon for the cache manager
176 @result Number of daemon
177 */
178-(int) daemonNumber;
179
180/*!
181 @function setDaemonNumber
182 @abstract Set the daemon numbero for the cache manager
183 @param dNumber number of daemon
184 */
185-(void) setDaemonNumber:(int)dNumber;
186
187/*!
188 @function afsRootMountPoint
189 @abstract Return the path where afs root volume will be mounted
190 @result AFS mount point
191 */
192-(NSString*) afsRootMountPoint;
193
194/*!
195 @function setAfsRootMountPoint
196 @abstract Set the AFS mount point
197 @param mountPoint AFS mount point
198 */
199-(void) setAfsRootMountPoint:(NSString*)mountPoint;
200
201/*!
202 @function nVolEntry
203 @abstract Return the nVolEntry for cache manager
204 @result value for nVolEntry cache parameter
205 */
206-(int) nVolEntry;
207
208/*!
209 @function setNVolEntry
210 @abstract Set the nVolEntry parameter for cache manager
211 @param entry value for nVolEntry cache manager parameter
212 */
213-(void) setNVolEntry:(int)entry;
214
215/*!
216 @function dynRoot
217 @abstract Return the DynRoot parametr for cache manager
218 @result dynRoot parameter value
219 */
220-(bool) dynRoot;
221
222/*!
223 @function setDynRoot
224 @abstract Set the DynRoot flag value for cache manager
225 @param flag dynRoot state (enable/disable)
226 */
227-(void) setDynRoot:(bool)flag;
228/*!
229 @function afsDB
230 @abstract Get the afsdb flag value for cache manager
231 @result Return the value of the flag
232 */
233-(bool) afsDB;
234
235/*!
236 @function setAfsDB
237 @abstract Set the flag value for afsdb cache manager
238 @param flag AfsDB state (enable/disable)
239 */
240-(void) setAfsDB:(bool)flag;
241/*!
242 @function verbose
243 */
244-(bool) verbose;
245
246/*!
247 @function setVerbose
248 */
249-(void) setVerbose:(bool)flag;
250/*!
251 @function readCacheInfo
252 @abstract Read the cache info
253 @discussion The cache info is read from the file pointed by filePath param
254 @param filePath file location for the CacheInfo
255 */
256-(int) readCacheInfo:(NSString*)filePath;
257
258/*!
259 @function writeCacheInfo
260 @abstract Write the cache info down the file
261 @param filePath where to write the CacheInfo
262 @result return the execution error
263 */
264-(int) writeCacheInfo:(NSString*)filePath;
265
266/*!
267 @function readAfsdOption
268 @abstract Read the afs option
269 @discussion Read the afs option checking firt the afs version so it can read the old afsd.option or afs.conf file. If any error accour an NSException wil be trown
270 @param filePath file where the parameter are store for default afsd.option or afs.conf
271 */
272-(void) readAfsdOption:(NSString*)filePath;
273
274/*!
275 @function readOldAfsdOption
276 @abstract Read the afsd.option file
277 @discussion Read the old afsd.option style afsd option file. If any error accour an NSException wil be trown22
278 @param filePath file path to afsd.option like file
279 @result <#(description)#>
280 */
281-(int) readOldAfsdOption:(NSString*)filePath;
282/*!
283 @function readAFSDParamLineContent
284 @abstract Try to decode one line of afsd.option or afs.conf
285 @param paramLine one line of file afsd.option(the only one that is present) os afs.conf
286 */
287-(int) readAFSDParamLineContent:(NSString*)paramLine;
288/*!
289 @function readNewAfsdOption
290 @abstract Read the new afs.conf file format
291 @discussion Scann every line f the afs.conf file ad for each one call the readAFSDParamLineContent with it's content
292 @param filePath path of the new file with afs.conf file format
293 */
294-(int) readNewAfsdOption:(NSString*)filePath;
295/*!
296 @function writeAfsdOption
297 @abstract <#(description)#>
298 @discussion <#(description)#>
299 @param <#(name) (description)#>
300 @result <#(description)#>
301 */
302-(int) writeAfsdOption:(NSString*)filePath;
303/*!
304 @function writeOldAfsdOption
305 @abstract Write the cache manager parameter to file
306 @discussion First chech the version of afs installed then choice to save old o new file version(afsd.option or afs.conf)
307 @param filePath file path for file to write into
308 @result <#(description)#>
309 */
310-(int) writeOldAfsdOption:(NSString*)filePath;
311/*!
312 @function writeNewAfsdOption
313 @abstract Write the cache parameter to a file with the new format
314 @param filePath file path where write into
315 */
316-(int) writeNewAfsdOption:(NSString*)filePath;
317/*!
318 @function getAfsVersion
319 @abstract Return the string representing the afs version
320 @result The Enteir string returned from the call of fs -version
321 */
322-(NSString*) getAfsVersion;
323/*!
324 @function getAfsMajorVersionVersion
325 @abstract Return the major version of afs Major.x.x
326 @result
327 */
328-(int) getAfsMajorVersionVersion;
329/*!
330 @function getAfsMinorVersionVersion
331 @abstract Return the major version of afs x.Minor.x
332 @result
333 */
334-(int) getAfsMinorVersionVersion;
335
336/*!
337 @function getAfsPatchVersionVersion
338 @abstract Return the major version of afs x.x.Patch
339 @result
340 */
341-(int) getAfsPatchVersionVersion;
342
343/*!
344 @method clearConfiguration
345 @abstract Clear all structure or array that contain value for afs client setting(cells cache param etch)
346 @discussion
347 */
348-(void) clearConfiguration;
349
350/*!
351 @function exceptionOnInvalidPath
352 @abstract Check the validity of afs path
353 @discussion If the installationPath variable don't point to a valid path, will be fired an NSException
354 */
355-(void) exceptionOnInvalidPath;
356
357/*!
358 @method loadConfiguration
359 @abstract load the all afs configuration (ThisCell & CellServDB & cache parameter)
360*/
361-(void) loadConfiguration;
362
363/*!
364 @method readCellInfo
365 @abstract Read the Main Cell Name
366*/
367-(void) readCellInfo:(NSString*) configFile;
368/*!
369 @method readCellDB
370 @abstract Read the CellServDB File
371 @discussion Read the file of all cellservbd ad make the NSArray containing a DBCellElement for aech cell found
372*/
373-(void) readCellDB:(NSString*) configFile;
374/*!
375 @function readTheseCell
376 @abstract Read the "These Cell"
377 @discussion Read the "These Cell" file that contains all the cell from which the user want to get the token
378 @param configFile TheseCell file path
379 @result NSAray with the cells name
380*/
381-(NSArray*) readTheseCell:(NSString*) configFile;
382/*!
383 @method shutdown
384 @abstract Stop The AFS
385*/
386-(void) shutdown;
387-(void) startup;
388-(void) scanIpForCell:(DBCellElement*) cellElement allIP:(NSString*)allIP;
389-(void) backupConfigurationFiles;
390-(void) backupFile:(NSString*)localAfsFilePath;
391-(void) saveConfigurationFiles:(BOOL) makeBackup;
392-(void) saveCacheConfigurationFiles:(BOOL) makeBackup;
393-(void) installConfigurationFile:(NSString*)srcConfFile destPath:(NSString*) destPath;
394-(NSArray*) getTokenList;
395-(BOOL) checkAfsStatus;
396-(BOOL) checkAfsStatusForStartup;
397-(void) klog:(NSString*)uName uPwd:(NSString*)uPwd cell:(NSString*)theCell;
398-(void) aklog:(NSString*)theCell noKerberosCall:(BOOL)krb5CallEnable;
399-(void) getTokens:(BOOL)klogAklogFlag usr:(NSString*)usr pwd:(NSString*)pwd;
400-(void) unlog:(NSString*)cell;
401-(NSString*) makeChaceParamString;
402-(BOOL) useAfsdConfConfigFile;
403@end