mif_CfgRep Class Reference
[Management Interface]

#include <mif_cfgrep.h>

Collaboration diagram for mif_CfgRep:

Collaboration graph
[legend]

List of all members.


Detailed Description

Definition at line 56 of file mif_cfgrep.h.


Public Member Functions

 mif_CfgRep (mif_ObjectTypeTable_e a_type, string a_name)
virtual ~mif_CfgRep ()
UInt32_t ShowRevisions ()
mif_ObjectTypeTable_e GetType () const
UInt32_t LastRev ()
void SetPath ()
string GenerateFilename (UInt32_t a_revision=0)
void SetLastRevNum ()
UInt32_t Upload (pf_File &a_cfgFile)
void RemoveCfg ()
cmn_File GetCfg (UInt32_t a_revision)

Static Public Member Functions

static void ReplaceVersion (pf_File &parsedFile)
static void ReplaceDate (pf_File &parsedFile)
static void ReplaceUser (pf_File &parsedFile, const string &uadString)
static void ReplaceClients (pf_File &a_parsedFile)
static void ReplaceHosts (pf_File &a_parsedFile)
static void ParseToFile (pf_File &a_pfFile, const i_DataBlock_t &a_cfgFile, string a_fileType, string a_user)

Protected Attributes

mif_ObjectTypeTable_e m_type
string m_name
cmn_Path m_repPath
UInt32_t m_lastRevision

Private Attributes

 log_CLASSID_m

Constructor & Destructor Documentation

mif_CfgRep::mif_CfgRep ( mif_ObjectTypeTable_e  a_type,
string  a_name 
)

Definition at line 41 of file mif_cfgrep.cpp.

References cmn_CreatePath(), dbg_NORM, log_DBG_m, log_FUNC_A_m, m_lastRevision, m_name, m_repPath, SetLastRevNum(), and SetPath().

00043         : m_type(a_type),
00044           m_name(a_name){
00045     log_FUNC_A_m(mif_CfgRep, "a_type" << a_type <<
00046                                 " m_name" << m_name);
00047     SetPath();
00048     log_DBG_m(dbg_NORM, "m_repPath: " << m_repPath);
00049     SetLastRevNum();
00050     if (m_lastRevision == 0)
00051         cmn_CreatePath(m_repPath);
00052 
00053 } // mif_CfgRep::mif_CfgRep

Here is the call graph for this function:

virtual mif_CfgRep::~mif_CfgRep (  )  [inline, virtual]

Definition at line 64 of file mif_cfgrep.h.

00064 {};


Member Function Documentation

UInt32_t mif_CfgRep::ShowRevisions (  ) 

mif_ObjectTypeTable_e mif_CfgRep::GetType (  )  const [inline]

Definition at line 80 of file mif_cfgrep.h.

References m_type.

Referenced by SetPath().

00080                                             {
00081                                 return m_type;
00082                             };

Here is the caller graph for this function:

UInt32_t mif_CfgRep::LastRev (  )  [inline]

void mif_CfgRep::ReplaceVersion ( pf_File parsedFile  )  [static]

Definition at line 252 of file mif_cfgrep.cpp.

References pf_ValueList::Add(), pf_ValueList::At(), cfg_BASE_HEADER_FILEVERSION, cmn_Num2Str(), dbg_NORM, log_DBG_m, log_FUNC_m, pf_File::m_header, pf_ValueList::m_vec, MIF_IVD_VERSION, pf_Value::simple, pf_ValueList::size(), and pf_Elem::val.

Referenced by ParseToFile().

00252                                                      {
00253     log_FUNC_m(ReplaceVersion);
00254 
00255 
00256     string version = cmn_Num2Str(MIF_IVD_VERSION);
00257     bool lineFound(false);
00258 
00259     for (UInt32_t ct=0; ct<a_parsedFile.m_header.size(); ct++) {
00260 
00261         if (a_parsedFile.m_header.m_vec[ct].name == string(cfg_BASE_HEADER_FILEVERSION)) {
00262             const_cast<string &>(a_parsedFile.m_header.At(ct).simple.val) = version;        
00263             log_DBG_m(dbg_NORM, 
00264                 "MIF: Version value successfully replaced by actual one.");
00265             lineFound = true;
00266             break;
00267         }
00268     }
00269 
00270     if (!lineFound) {
00271 
00272         pf_Value pfValue(string(cfg_BASE_HEADER_FILEVERSION), version, 2);
00273         a_parsedFile.m_header.Add(pfValue);
00274     }
00275 
00276 } // mif_CfgRep::CheckInsertVersion

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::ReplaceDate ( pf_File parsedFile  )  [static]

Definition at line 281 of file mif_cfgrep.cpp.

References pf_ValueList::Add(), pf_ValueList::At(), cfg_BASE_HEADER_FILEDATE, dbg_NORM, log_DBG_m, log_FUNC_m, log_WRN_m, pf_File::m_header, pf_ValueList::m_vec, pf_Value::simple, pf_ValueList::size(), cmn_Time::Time2YMDhms(), and pf_Elem::val.

Referenced by ParseToFile().

00281                                                   {
00282     log_FUNC_m(ReplaceDate);
00283 
00284     
00285     cmn_Time dateTime;
00286     bool lineFound(false);
00287 
00288     for (UInt32_t ct=0; ct<a_parsedFile.m_header.size(); ct++) {
00289 
00290         if (a_parsedFile.m_header.m_vec[ct].name == string(cfg_BASE_HEADER_FILEDATE)) {
00291             const_cast<string &>(a_parsedFile.m_header.At(ct).simple.val) = dateTime.Time2YMDhms();        
00292             //a_parsedFile.m_header.At(ct).simple.val = dateTime.Time2YMDhms();        
00293             log_DBG_m(dbg_NORM, 
00294                 "MIF: DateTime value successfully replaced by current one.");
00295             lineFound = true;
00296             break;
00297         }
00298     }
00299 
00300     if (!lineFound) {
00301         pf_Value pfValue(string(cfg_BASE_HEADER_FILEDATE), dateTime.Time2YMDhms(), 3);
00302         a_parsedFile.m_header.Add(pfValue);
00303         log_WRN_m("MIF: Configuration file seems to have incomplete header (missing Date line).");
00304     }
00305 
00306 } // mif_CfgRep::ReplaceDate

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::ReplaceUser ( pf_File parsedFile,
const string &  uadString 
) [static]

Definition at line 311 of file mif_cfgrep.cpp.

References pf_ValueList::Add(), pf_ValueList::At(), cfg_BASE_HEADER_FILEUSER, dbg_NORM, log_DBG_m, log_FUNC_m, pf_File::m_header, pf_ValueList::m_vec, pf_Value::simple, pf_ValueList::size(), and pf_Elem::val.

Referenced by ParseToFile().

00312                                                          {
00313     log_FUNC_m(ReplaceUser);
00314     bool lineFound(false);
00315     for (UInt32_t ct=0; ct<a_parsedFile.m_header.size(); ct++) {
00316 
00317         if (a_parsedFile.m_header.m_vec[ct].name == string(cfg_BASE_HEADER_FILEUSER)) {
00318             const_cast<string &>(a_parsedFile.m_header.At(ct).simple.val) = a_uadLine;        
00319             log_DBG_m(dbg_NORM, 
00320                 "MIF: User value successfully replaced by actual one.");
00321             lineFound = true;
00322             break;
00323         }
00324     }
00325 
00326     if (!lineFound) {
00327         pf_Value pfValue(string(cfg_BASE_HEADER_FILEUSER), a_uadLine, 4);
00328         a_parsedFile.m_header.Add(pfValue);
00329         
00330 //         log_ERR_m("MIF: This configuration file seems to have incomplete header (missing User line).");
00331 //         throw ivd_Error(ie_MIF_CFG_HEADER_ERROR, "\"User\" line is missing.");
00332     }
00333     
00334 } // mif_CfgRep::ReplaceUser

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::ReplaceClients ( pf_File a_parsedFile  )  [static]

Definition at line 401 of file mif_cfgrep.cpp.

References cfg_FILE_VAR_CLIENT, log_FUNC_m, pf_File::m_common, pf_File::m_sections, pf_SectionList::m_vec, pf_ValueList::m_vec, mif_ResolveHostToFQDN(), PF_GROUP, and PF_SIMPLE.

Referenced by i_ManagementInterface_i::AddPartition(), and i_ManagementInterface_i::UpdatePartition().

00401                                                      {
00402     log_FUNC_m(ReplaceClients);
00403 
00404     string hostFqdn;
00405 
00406     // replace in Common section.
00407     for (UInt32_t ct=0; ct < a_parsedFile.m_common.m_vec.size() ; ct++) {
00408 
00409         if (a_parsedFile.m_common.m_vec[ct].type == PF_SIMPLE) {
00410             if (a_parsedFile.m_common.m_vec[ct].simple.val.compare(cfg_FILE_VAR_CLIENT) == 0) {
00411                 mif_ResolveHostToFQDN(a_parsedFile.m_common.m_vec[ct].simple.val);
00412              }
00413         }
00414         else if (a_parsedFile.m_common.m_vec[ct].type == PF_GROUP) {
00415             if (a_parsedFile.m_common.m_vec[ct].group->grpType.compare(cfg_FILE_VAR_CLIENT) == 0){
00416                 mif_ResolveHostToFQDN(a_parsedFile.m_common.m_vec[ct].name);
00417             }
00418         }
00419     }
00420 
00421     // replace in other sections.
00422     for (UInt32_t cts=0; cts < a_parsedFile.m_sections.m_vec.size(); cts++) {
00423 
00424         for (UInt32_t ctm=0; ctm < a_parsedFile.m_sections.m_vec[cts].size(); ctm++) {
00425 
00426             if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].type == PF_SIMPLE) {
00427                 if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].name.compare(cfg_FILE_VAR_CLIENT) == 0) {
00428                     mif_ResolveHostToFQDN(a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].simple.val);
00429                 }
00430 
00431             }
00432             else if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].type == PF_GROUP) {
00433                 if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].group->grpType.compare(cfg_FILE_VAR_CLIENT) == 0) {
00434                     mif_ResolveHostToFQDN(a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].name);
00435                 }
00436             }
00437         }
00438     }
00439 
00440 } // mif_CfgRep::ReplaceClients

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::ReplaceHosts ( pf_File a_parsedFile  )  [static]

Definition at line 358 of file mif_cfgrep.cpp.

References cfg_FILE_VAR_HOST, log_FUNC_m, pf_File::m_common, pf_File::m_sections, pf_SectionList::m_vec, pf_ValueList::m_vec, mif_ResolveHostToFQDN(), PF_GROUP, PF_SIMPLE, and strcasecmp.

Referenced by i_ManagementInterface_i::AddDrive(), i_ManagementInterface_i::AddLibrary(), i_ManagementInterface_i::UpdateDrive(), and i_ManagementInterface_i::UpdateLibrary().

00358                                                    {
00359     log_FUNC_m(ReplaceHosts);
00360 
00361     // replace in Common section.
00362     for (UInt32_t ct=0; ct < a_parsedFile.m_common.m_vec.size() ; ct++) {
00363 
00364         if (a_parsedFile.m_common.m_vec[ct].type == PF_SIMPLE) {
00365             
00366             if (a_parsedFile.m_common.m_vec[ct].name.compare(cfg_FILE_VAR_HOST) == 0){
00367                 mif_ResolveHostToFQDN(a_parsedFile.m_common.m_vec[ct].simple.val);
00368             }
00369         }
00370         else if (a_parsedFile.m_common.m_vec[ct].type == PF_GROUP) {
00371 
00372             if (a_parsedFile.m_common.m_vec[ct].group->grpType.compare(cfg_FILE_VAR_HOST) == 0) {
00373                 mif_ResolveHostToFQDN(a_parsedFile.m_common.m_vec[ct].name);
00374             }
00375         }
00376     }
00377 
00378     // replace in other sections.
00379     for (UInt32_t cts=0; cts < a_parsedFile.m_sections.m_vec.size(); cts++) {
00380 
00381         for (UInt32_t ctm=0; ctm < a_parsedFile.m_sections.m_vec[cts].size(); ctm++) {
00382 
00383             if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].type == PF_SIMPLE) {
00384 
00385                 if (strcasecmp(a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].name.c_str(),cfg_FILE_VAR_HOST) == 0) {
00386                     mif_ResolveHostToFQDN(a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].simple.val);
00387                 }
00388             }
00389             else if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].type == PF_GROUP) {
00390 
00391                 if (a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].group->grpType.compare(cfg_FILE_VAR_HOST) == 0) {
00392                     mif_ResolveHostToFQDN(a_parsedFile.m_sections.m_vec[cts].m_vec[ctm].name);
00393                 }
00394             }
00395         }
00396     }
00397 
00398 } // mif_CfgRep::ReplaceHosts

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::SetPath (  ) 

Definition at line 57 of file mif_cfgrep.cpp.

References ivd_Directories::cfgDrv, ivd_Directories::cfgLib, ivd_Directories::cfgPart, ivd_Directories::cfgPool, ivd_Directories::cfgSys, cmn_Global::dirs, g_cmn, GetType(), ie_UNKNOWN_TYPE, ivd_Error, log_FUNC_m, m_name, m_repPath, mif_DRIVE, mif_LIBRARY, mif_PARTITION, mif_POOL, and mif_SYSTEM.

Referenced by mif_CfgRep().

00057                          {
00058     log_FUNC_m(SetPath);
00059 
00060     switch (GetType()) {
00061         case(mif_LIBRARY): 
00062             m_repPath = g_cmn.dirs.cfgLib; break;
00063         case(mif_DRIVE):
00064             m_repPath = g_cmn.dirs.cfgDrv; break;
00065         case(mif_POOL):
00066             m_repPath = g_cmn.dirs.cfgPool; break;
00067         case(mif_SYSTEM):
00068             m_repPath = g_cmn.dirs.cfgSys; break;
00069         case(mif_PARTITION):
00070             m_repPath = g_cmn.dirs.cfgPart; break;
00071         default:
00072             throw ivd_Error(ie_UNKNOWN_TYPE);
00073     }
00074     m_repPath += m_name;
00075 
00076 } // mif_CfgRep::ComposePath

Here is the call graph for this function:

Here is the caller graph for this function:

string mif_CfgRep::GenerateFilename ( UInt32_t  a_revision = 0  ) 

Definition at line 81 of file mif_cfgrep.cpp.

References CFG_LINK_LATEST, cmn_Num2Str(), ie_MIF_CFG_REVISION_OUT_OF_RANGE, ivd_Error, log_FUNC_m, m_lastRevision, MIF_CFG_MAX_REVISIONS, and MIF_CFG_REV_WIDTH.

Referenced by GetCfg(), and Upload().

00081                                                        {
00082     log_FUNC_m(GenerateFilename);
00083 
00084     string revString;
00085     if (a_revision == 0)
00086         return CFG_LINK_LATEST;
00087     else {
00088         if (m_lastRevision < MIF_CFG_MAX_REVISIONS) {
00089             revString = cmn_Num2Str(a_revision);
00090             // add leading zeroes    
00091             while (revString.length() < MIF_CFG_REV_WIDTH)
00092                 revString.insert(0, "0");
00093             
00094             return revString;
00095         }
00096         else {
00097             // if a_revision exceeds highest revision number allowed...
00098             throw ivd_Error(ie_MIF_CFG_REVISION_OUT_OF_RANGE);
00099         }
00100     }
00101 } // mif_CfgRep::GenerateFilename

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::SetLastRevNum (  ) 

Definition at line 105 of file mif_cfgrep.cpp.

References CFG_LINK_LATEST, cmn_Str2Num(), dbg_DETAIL, dbg_NORM, log_DBG_m, log_FUNC_m, m_lastRevision, m_repPath, cmn_Path::OnlyFileName(), and cmn_File::ReadLink().

Referenced by mif_CfgRep(), and Upload().

00105                               {
00106     log_FUNC_m(SetLastRevNum);
00107 
00108     // read target name w/ ABSOLUTE FILENAME
00109     try {
00110         cmn_Path linkName(m_repPath + CFG_LINK_LATEST);
00111         cmn_Path fileName = cmn_File::ReadLink(linkName);
00112         fileName.OnlyFileName();
00113 
00114         log_DBG_m(dbg_DETAIL, "lastRevision:" << cmn_Str2Num(fileName) << 
00115                             " fileName:" << fileName);
00116         
00117         m_lastRevision = cmn_Str2Num(fileName);
00118     } 
00119     catch (ivd_Error& e){
00120         log_DBG_m(dbg_NORM, e)
00121             m_lastRevision = 0;
00122     } 
00123     catch (ivd_SysError& se){
00124         log_DBG_m(dbg_NORM, se)
00125         m_lastRevision = 0;
00126     }
00127 } // mif_CfgRep::SetLastRevNum

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::ParseToFile ( pf_File a_pfFile,
const i_DataBlock_t a_cfgFile,
string  a_fileType,
string  a_user 
) [static]

Definition at line 129 of file mif_cfgrep.cpp.

References dbg_DETAIL, dbg_NORM, pf_File::GetFileType(), ie_MIF_CFG_CONFIG_FILE_UNKNOWN, ivd_Error, log_DBG_m, log_FUNC_m, pf_File::Parse(), ReplaceDate(), ReplaceUser(), ReplaceVersion(), and strcasecmp.

Referenced by i_ManagementInterface_i::AddDrive(), i_ManagementInterface_i::AddLibrary(), i_ManagementInterface_i::AddPartition(), i_ManagementInterface_i::AddPool(), i_ManagementInterface_i::UpdateDrive(), i_ManagementInterface_i::UpdateLibrary(), i_ManagementInterface_i::UpdatePartition(), i_ManagementInterface_i::UpdatePool(), and i_ManagementInterface_i::UpdateSystemCfg().

00132                                               {
00133     log_FUNC_m(ParseToFile);
00134     try {
00135         //
00136         // parse config buffer
00137         log_DBG_m(dbg_DETAIL, "block:" << endl << *(a_cfgFile.get_buffer()));
00138         a_pfFile.Parse(reinterpret_cast<char *>(const_cast<CORBA::Octet *>(a_cfgFile.get_buffer())), a_cfgFile.length());
00139         log_DBG_m(dbg_DETAIL, "a_pfFile:" << endl << a_pfFile);
00140     }
00141     catch (ivd_Exception) {
00142         log_DBG_m(dbg_NORM, 
00143             "MIF: Syntax error encountered in configuration file.");
00144         throw;
00145     }
00146 
00147     //
00148     // check if type matches
00149     if (strcasecmp(a_pfFile.GetFileType().c_str(), a_fileType.c_str()) != 0) {
00150         throw ivd_Error(ie_MIF_CFG_CONFIG_FILE_UNKNOWN);
00151     }
00152     
00153     mif_CfgRep::ReplaceVersion(a_pfFile);
00154     mif_CfgRep::ReplaceDate(a_pfFile);
00155     mif_CfgRep::ReplaceUser(a_pfFile, a_user);
00156     
00157 }

Here is the call graph for this function:

Here is the caller graph for this function:

UInt32_t mif_CfgRep::Upload ( pf_File a_cfgFile  ) 

Definition at line 159 of file mif_cfgrep.cpp.

References CFG_LINK_LATEST, cmn_File::DeleteF(), GenerateFilename(), cmn_Path::GetAbsolutePathName(), cmn_Path::GetFileName(), ivd_BaseException::GetFriendly(), ie_MIF_CFG_TROUBLE_IN_REPOSITORY, ivd_Error, LastRev(), log_ERR_m, log_FUNC_m, m_lastRevision, m_repPath, SetLastRevNum(), and pf_File::WriteFile().

Referenced by i_ManagementInterface_i::AddLibrary(), i_ManagementInterface_i::AddPartition(), i_ManagementInterface_i::UpdatePartition(), and i_ManagementInterface_i::UpdateSystemCfg().

00159                                              {
00160 
00161     log_FUNC_m(Upload);
00162     // copy file to directory (buffer -> repositoryPath/fileName)
00163     try {
00164         cmn_Path fileName(m_repPath + GenerateFilename(LastRev() + 1));
00165         a_cfgFile.WriteFile(fileName);
00166         //delete symlink
00167         cmn_Path latest(m_repPath + CFG_LINK_LATEST);
00168         cmn_File latestFile(latest);
00169 
00170         try {
00171             latestFile.DeleteF();
00172         } catch (...){
00173             //ignore
00174         }
00175         //make new symlink
00176         // Windows SymLink requires full pathname, while on UNIX we 
00177         // preffer relative pathnames
00178 #if TGT_OS_windows
00179         cmn_File cfgFile(fileName.GetAbsolutePathName());
00180 #else
00181         cmn_File cfgFile(fileName.GetFileName());
00182 #endif
00183         cfgFile.SymLink(latest);
00184 
00185         SetLastRevNum();
00186     }
00187     catch (ivd_Error& e) {
00188         log_ERR_m("MIF: Creating file failed." << e);
00189         throw ivd_Error(ie_MIF_CFG_TROUBLE_IN_REPOSITORY, e.GetFriendly());
00190     }
00191     catch (ivd_SysError& se) {
00192         log_ERR_m("MIF: Creating file failed." << se);
00193         throw ivd_Error(ie_MIF_CFG_TROUBLE_IN_REPOSITORY, se.GetFriendly());
00194     }
00195     return m_lastRevision;
00196 
00197 } // mif_CfgRep::Upload

Here is the call graph for this function:

Here is the caller graph for this function:

void mif_CfgRep::RemoveCfg (  ) 

Definition at line 202 of file mif_cfgrep.cpp.

References cmn_CleanDir(), dbg_NORM, cmn_File::DeleteDir(), ivd_BaseException::GetFriendly(), ie_MIF_CFG_TROUBLE_IN_REPOSITORY, ivd_Error, log_DBG_m, log_ERR_m, log_FUNC_m, and m_repPath.

Referenced by i_ManagementInterface_i::RemoveLibrary(), i_ManagementInterface_i::RemovePartition(), and i_ManagementInterface_i::RemovePool().

00202                           {
00203     log_FUNC_m(RemoveCfg);
00204 
00205     try {
00206         cmn_CleanDir(m_repPath);
00207         log_DBG_m(dbg_NORM, 
00208             "MIF: CfgDB repository subdirectory successfully cleared.");
00209         cmn_File::DeleteDir(m_repPath);
00210         log_DBG_m(dbg_NORM, 
00211             "MIF: CfgDB repository subdirectory successfully removed.");
00212     }
00213     catch (ivd_Error& e) {
00214         log_ERR_m("CfgDB repository removal failed." << e);
00215         throw ivd_Error(ie_MIF_CFG_TROUBLE_IN_REPOSITORY, e.GetFriendly());
00216     }
00217     catch (ivd_SysError& se) {
00218         log_ERR_m("CfgDB repository removal failed." << se);
00219         throw ivd_Error(ie_MIF_CFG_TROUBLE_IN_REPOSITORY, se.GetFriendly());
00220     }
00221 
00222 } // mif_CfgRep::RemoveCfg

Here is the call graph for this function:

Here is the caller graph for this function:

cmn_File mif_CfgRep::GetCfg ( UInt32_t  a_revision  ) 

Definition at line 227 of file mif_cfgrep.cpp.

References GenerateFilename(), ivd_BaseException::GetError(), ivd_BaseException::GetFriendly(), ie_MIF_CFG_REVISION_NONEXISTENT, ie_MIF_CFG_TROUBLE_IN_REPOSITORY, ivd_Error, log_ERR_m, log_FUNC_m, m_repPath, and cmn_File::StatF().

Referenced by i_ManagementInterface_i::ShowDrive(), i_ManagementInterface_i::ShowLibrary(), i_ManagementInterface_i::ShowPartition(), i_ManagementInterface_i::ShowPool(), and i_ManagementInterface_i::ShowSystemCfg().

00227                                                {
00228     log_FUNC_m(GetCfg);
00229     try {
00230         cmn_File cfgFile(m_repPath + GenerateFilename(a_revision));
00231         ivd_FileInfo_t info;
00232         cfgFile.StatF(info);
00233         return cfgFile;
00234     }
00235     catch (ivd_Error& e) {
00236         log_ERR_m("CfgDB repository read failed." << e);
00237         throw ivd_Error(ie_MIF_CFG_TROUBLE_IN_REPOSITORY, e.GetFriendly());
00238     }
00239     catch (ivd_SysError& se) {
00240 #if TGT_OS_windows
00241         if (se.GetError() != ERROR_FILE_NOT_FOUND) {
00242 #else
00243         if (se.GetError() != ENOENT) {
00244 #endif
00245           log_ERR_m("Error accessing the configuration file " << m_repPath + GenerateFilename(a_revision) << ". " << se);
00246         }
00247         throw ivd_Error(ie_MIF_CFG_REVISION_NONEXISTENT);
00248     }
00249 } // mif_CfgRep::ReadConfigRevision

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 69 of file mif_cfgrep.h.

Referenced by GetType().

string mif_CfgRep::m_name [protected]

Definition at line 70 of file mif_cfgrep.h.

Referenced by mif_CfgRep(), and SetPath().

Definition at line 71 of file mif_cfgrep.h.

Referenced by GetCfg(), mif_CfgRep(), RemoveCfg(), SetLastRevNum(), SetPath(), and Upload().

Definition at line 72 of file mif_cfgrep.h.

Referenced by GenerateFilename(), LastRev(), mif_CfgRep(), SetLastRevNum(), and Upload().

Definition at line 75 of file mif_cfgrep.h.


The documentation for this class was generated from the following files:

Generated on Mon Feb 27 19:43:13 2012 for OPENARCHIVE by  doxygen 1.5.6