Mercurial > hg > orthanc
comparison OrthancServer/Sources/main.cpp @ 5785:b4e7a85cde80 find-refactoring
fix readonly init
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 17 Sep 2024 11:09:06 +0200 |
parents | 56352ae88120 |
children |
comparison
equal
deleted
inserted
replaced
5784:b0d778f1e66d | 5785:b4e7a85cde80 |
---|---|
1516 IStorageArea& storageArea, | 1516 IStorageArea& storageArea, |
1517 OrthancPlugins *plugins, | 1517 OrthancPlugins *plugins, |
1518 bool loadJobsFromDatabase) | 1518 bool loadJobsFromDatabase) |
1519 { | 1519 { |
1520 size_t maxCompletedJobs; | 1520 size_t maxCompletedJobs; |
1521 bool readOnly; | |
1521 | 1522 |
1522 { | 1523 { |
1523 OrthancConfiguration::ReaderLock lock; | 1524 OrthancConfiguration::ReaderLock lock; |
1524 | 1525 |
1525 // These configuration options must be set before creating the | 1526 // These configuration options must be set before creating the |
1543 if (maxCompletedJobs == 0) | 1544 if (maxCompletedJobs == 0) |
1544 { | 1545 { |
1545 LOG(WARNING) << "Setting option \"JobsHistorySize\" to zero is not recommended"; | 1546 LOG(WARNING) << "Setting option \"JobsHistorySize\" to zero is not recommended"; |
1546 } | 1547 } |
1547 | 1548 |
1549 // New option in Orthanc 1.12.5 | |
1550 readOnly = lock.GetConfiguration().GetBooleanParameter("ReadOnly", false); | |
1551 | |
1548 // Configuration of DICOM TLS for Orthanc SCU (since Orthanc 1.9.0) | 1552 // Configuration of DICOM TLS for Orthanc SCU (since Orthanc 1.9.0) |
1549 DicomAssociationParameters::SetDefaultOwnCertificatePath( | 1553 DicomAssociationParameters::SetDefaultOwnCertificatePath( |
1550 lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_PRIVATE_KEY, ""), | 1554 lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_PRIVATE_KEY, ""), |
1551 lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_CERTIFICATE, "")); | 1555 lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_CERTIFICATE, "")); |
1552 DicomAssociationParameters::SetDefaultTrustedCertificatesPath( | 1556 DicomAssociationParameters::SetDefaultTrustedCertificatesPath( |
1557 // New option in Orthanc 1.9.3 | 1561 // New option in Orthanc 1.9.3 |
1558 DicomAssociationParameters::SetDefaultRemoteCertificateRequired( | 1562 DicomAssociationParameters::SetDefaultRemoteCertificateRequired( |
1559 lock.GetConfiguration().GetBooleanParameter(KEY_DICOM_TLS_REMOTE_CERTIFICATE_REQUIRED, true)); | 1563 lock.GetConfiguration().GetBooleanParameter(KEY_DICOM_TLS_REMOTE_CERTIFICATE_REQUIRED, true)); |
1560 } | 1564 } |
1561 | 1565 |
1562 ServerContext context(database, storageArea, false /* not running unit tests */, maxCompletedJobs); | 1566 ServerContext context(database, storageArea, false /* not running unit tests */, maxCompletedJobs, readOnly); |
1563 | 1567 |
1564 { | 1568 { |
1565 OrthancConfiguration::ReaderLock lock; | 1569 OrthancConfiguration::ReaderLock lock; |
1566 | |
1567 // New option in Orthanc 1.12.5 | |
1568 context.SetReadOnly(lock.GetConfiguration().GetBooleanParameter("ReadOnly", false)); | |
1569 | 1570 |
1570 if (context.IsReadOnly()) | 1571 if (context.IsReadOnly()) |
1571 { | 1572 { |
1572 LOG(WARNING) << "READ-ONLY SYSTEM: ignoring these configurations: StorageCompression, StoreMD5ForAttachments, OverwriteInstances, MaximumPatientCount, MaximumStorageSize, MaximumStorageMode"; | 1573 LOG(WARNING) << "READ-ONLY SYSTEM: ignoring these configurations: StorageCompression, StoreMD5ForAttachments, OverwriteInstances, MaximumPatientCount, MaximumStorageSize, MaximumStorageMode"; |
1573 | 1574 |
1970 | 1971 |
1971 { | 1972 { |
1972 SQLiteDatabaseWrapper inMemoryDatabase; | 1973 SQLiteDatabaseWrapper inMemoryDatabase; |
1973 inMemoryDatabase.Open(); | 1974 inMemoryDatabase.Open(); |
1974 MemoryStorageArea inMemoryStorage; | 1975 MemoryStorageArea inMemoryStorage; |
1975 ServerContext context(inMemoryDatabase, inMemoryStorage, true /* unit testing */, 0 /* max completed jobs */); | 1976 ServerContext context(inMemoryDatabase, inMemoryStorage, true /* unit testing */, 0 /* max completed jobs */, false /* readonly */); |
1976 OrthancRestApi restApi(context, false /* no Orthanc Explorer */); | 1977 OrthancRestApi restApi(context, false /* no Orthanc Explorer */); |
1977 restApi.GenerateOpenApiDocumentation(openapi); | 1978 restApi.GenerateOpenApiDocumentation(openapi); |
1978 context.Stop(); | 1979 context.Stop(); |
1979 } | 1980 } |
1980 | 1981 |
2021 | 2022 |
2022 { | 2023 { |
2023 SQLiteDatabaseWrapper inMemoryDatabase; | 2024 SQLiteDatabaseWrapper inMemoryDatabase; |
2024 inMemoryDatabase.Open(); | 2025 inMemoryDatabase.Open(); |
2025 MemoryStorageArea inMemoryStorage; | 2026 MemoryStorageArea inMemoryStorage; |
2026 ServerContext context(inMemoryDatabase, inMemoryStorage, true /* unit testing */, 0 /* max completed jobs */); | 2027 ServerContext context(inMemoryDatabase, inMemoryStorage, true /* unit testing */, 0 /* max completed jobs */, false /* readonly */); |
2027 OrthancRestApi restApi(context, false /* no Orthanc Explorer */); | 2028 OrthancRestApi restApi(context, false /* no Orthanc Explorer */); |
2028 restApi.GenerateReStructuredTextCheatSheet(cheatsheet, "https://orthanc.uclouvain.be/api/index.html"); | 2029 restApi.GenerateReStructuredTextCheatSheet(cheatsheet, "https://orthanc.uclouvain.be/api/index.html"); |
2029 context.Stop(); | 2030 context.Stop(); |
2030 } | 2031 } |
2031 | 2032 |