project BLF > class BXmlDaemon > 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
unused
program code (program/bxmldaemon.p)
<ANCESTOR-CODE>
for each t_sXmlDaemon where
t_sXmlDaemon.tc_ParentRowid = ictcRowid and
t_sXmlDaemon.XmlDaemonDirectory <> "" and
(t_sXmlDaemon.tc_Status = "N" or
t_sXmlDaemon.tc_Status = "C"),
first t_sfcDaemon where
t_sfcDaemon.tc_Rowid = t_sXmlDaemon.tc_ParentRowid:
if t_sXmlDaemon.tc_Status = "C"
then do:
find t_iXmlDaemon where
t_iXmlDaemon.tc_Rowid = t_sXmlDaemon.tc_Rowid
no-error.
if not available t_iXmlDaemon
then do:
<M-9 run SetMessage
(input trim(#T-6'Failed to create socket object.':255(998716605)t-6#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input ictcRowid (icRowid),
input 'BLF-235':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
assign oiReturnStatus = -3.
return.
end.
end.
assign vcDaemonAppServerURL = if t_sfcDaemon.DaemonAppserver = "" or
t_sfcDaemon.DaemonAppserver = ?
then "local"
else t_sfcDaemon.DaemonAppserver.
if t_sXmlDaemon.tc_Status = "N" or
t_sXmlDaemon.tc_Status = "C" and
t_sXmlDaemon.XmlDaemonDirectory <> t_iXmlDaemon.XmlDaemonDirectory
then do:
<M-6 run Main (input viSessionId (iiSessionId)) in TDaemonUtility>
<M-7 run GetFileType
(input {&XMLDAEMON} (icDaemonName),
input t_sXmlDaemon.XmlDaemonDirectory (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-8 run SetMessage
(input vcMessage (icMessage),
input '' (icArguments),
input 'tXmlDaemon.XmlDaemonDirectory' (icFieldName),
input t_sXmlDaemon.XmlDaemonDirectory (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input t_sXmlDaemon.tc_Rowid (icRowid),
input 'BLF-285':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
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-10 run SetMessage
(input trim(#T-7'The directory specified is not valid, would you like to create it?':255(998716602)T-7#) (icMessage),
input '' (icArguments),
input 'tXmlDaemon.XmlDaemonDirectory' (icFieldName),
input t_sXmlDaemon.XmlDaemonDirectory (icFieldValue),
input 'W' (icType),
input 4 (iiSeverity),
input t_sXmlDaemon.tc_Rowid (icRowid),
input 'BLF-236':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
create tDirectoryToCreate.
assign tDirectoryToCreate.tcDirectoryName = t_sXmlDaemon.XmlDaemonDirectory
tDirectoryToCreate.tcDaemonName = {&XMLDAEMON}
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-1'You do not have write permissions for this directory.':255(9365)T-1#) (icMessage),
input '' (icArguments),
input 'tXmlDaemon.XmlDaemonDirectory' (icFieldName),
input t_sXmlDaemon.XmlDaemonDirectory (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sXmlDaemon.tc_Rowid (icRowid),
input 'BLF-283':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
assign oiReturnStatus = -1.
end.
end.
end.