project BLF > class BBaseDaemon > method ValidateDirectories
Description
This method validates all directories defined in the daemon configuration. If the daemon is configured to run on an appserver, directory validation will be done on that appserver.
Parameters
| ictcRowid | input | character | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/bbasedaemon.p)
find bsdaemon where
bsdaemon.tc_Rowid = ictcRowid
no-error.
if available bsdaemon
then do:
if bsdaemon.tc_Status = "C"
then do:
find t_ifcDaemon where
t_ifcDaemon.tc_Rowid = ictcRowid
no-error.
if not available t_ifcDaemon
then do:
<M-22 run SetMessage
(input trim(#T-16'Internal error: no initial record found for modified fcDaemon record.':255(998716597)T-16#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input ictcRowid (icRowid),
input 'BLF-230':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
assign oiReturnStatus = -3.
return.
end.
end.
assign vcDaemonAppServerURL = if bsdaemon.DaemonAppserver = "" or
bsdaemon.DaemonAppserver = ?
then "local"
else bsdaemon.DaemonAppserver.
/* Validate Start Directory */
if bsdaemon.DaemonStartDirectory <> "" and
(bsdaemon.tc_Status = "N" or
bsdaemon.tc_Status = "C" and
bsdaemon.DaemonStartDirectory <> t_ifcDaemon.DaemonStartDirectory)
then do:
<M-16 run Main (input viSessionId (iiSessionId)) in TDaemonUtility>
<M-17 run GetFileType
(input vcFcDaemonName (icDaemonName),
input bsDaemon.DaemonStartDirectory (icFileName),
input vcDaemonAppServerURL (icDaemonAppserverUrl),
output vcFileType (ocFileType),
output vcMessage (ocMessage),
output viFcReturnSuper (oiReturnStatus)) in TDaemonUtility>
run gipr_DeleteProcedure in vhFcComponent.
delete procedure vhFcComponent.
assign vhFcComponent = ?.
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if vcMessage <> ""
then do:
<M-21 run SetMessage
(input vcMessage (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonStartDirectory' (icFieldName),
input bsdaemon.DaemonStartDirectory (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-34':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
end.
if oiReturnStatus < 0
then return.
if vcFileType = ?
then assign vcFileType = "".
/* Check if it really is a directory */
if index(vcFileType, "D") = 0
then do:
<M-23 run SetMessage
(input trim(#T-24'The directory specified is not valid, would you like to create it?':255(998716602)T-24#) (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonStartDirectory' (icFieldName),
input bsdaemon.DaemonStartDirectory (icFieldValue),
input 'W':U (icType),
input 4 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-733744164':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
create tDirectoryToCreate.
assign tDirectoryToCreate.tcDirectoryName = bsdaemon.DaemonStartDirectory
tDirectoryToCreate.tcDaemonName = bsdaemon.DaemonName
tDirectoryToCreate.tcDaemonAppserver = vcDaemonAppServerURL
oiReturnStatus = 1.
end.
else
/* Check if you can write to the directory */
if index(vcFileType, "W") = 0
then do:
<M-2 run SetMessage
(input trim(#T-12'You do not have write permissions for this directory.':255(9365)T-12#) (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonStartDirectory' (icFieldName),
input bsdaemon.DaemonStartDirectory (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-29':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
assign oiReturnStatus = -1.
end.
end.
if bsdaemon.DaemonLogFile <> "" and
(bsdaemon.tc_Status = "N" or
bsdaemon.tc_Status = "C" and
bsdaemon.DaemonLogFile <> t_ifcDaemon.DaemonStartDirectory)
then do:
/* Separate folder from filename */
run adecomm/_osprefx.p
(input bsdaemon.DaemonLogFile,
output vcLogDir,
output vcDummy).
<M-18 run Main (input viSessionId (iiSessionId)) in TDaemonUtility>
<M-19 run GetFileType
(input vcFcDaemonName (icDaemonName),
input vcLogDir (icFileName),
input vcDaemonAppServerURL (icDaemonAppserverUrl),
output vcFileType (ocFileType),
output vcMessage (ocMessage),
output viFcReturnSuper (oiReturnStatus)) in TDaemonUtility>
run gipr_DeleteProcedure in vhFcComponent.
delete procedure vhFcComponent.
assign vhFcComponent = ?.
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if vcMessage <> ""
then do:
<M-20 run SetMessage
(input vcMessage (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonLogFile' (icFieldName),
input bsdaemon.DaemonLogFile (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-33':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
end.
if oiReturnStatus < 0
then return.
if vcFileType = ?
then assign vcFileType = "".
/* Check if it really is a directory */
if index(vcFileType, "D") = 0
then do:
<M-25 run SetMessage
(input trim(#T-26'The directory specified is not valid, would you like to create it?':255(998716602)T-26#) (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonLogFile' (icFieldName),
input vcLogDir (icFieldValue),
input 'W':U (icType),
input 4 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-73465552':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
create tDirectoryToCreate.
assign tDirectoryToCreate.tcDirectoryName = vcLogDir
tDirectoryToCreate.tcDaemonName = bsdaemon.DaemonName
tDirectoryToCreate.tcDaemonAppserver = vcDaemonAppServerURL
oiReturnStatus = 1.
end.
else
/* Check if you can write to the directory */
if index(vcFileType, "W") = 0
then do:
<M-7 run SetMessage
(input trim(#T-14'You do not have write permissions for this log file.':100(5198)T-14#) (icMessage),
input '' (icArguments),
input 'tfcDaemon.DaemonLogFile' (icFieldName),
input bsdaemon.DaemonLogFile (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input bsdaemon.tc_Rowid (icRowid),
input 'BLF-31':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBaseDaemon>
assign oiReturnStatus = -1.
end.
end.
end.