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