Skip to content

fix(pelican): auto-create db/maps dirs and offer full image variant#356

Merged
fank merged 2 commits intomainfrom
fix/pelican-startup-crash
Mar 23, 2026
Merged

fix(pelican): auto-create db/maps dirs and offer full image variant#356
fank merged 2 commits intomainfrom
fix/pelican-startup-crash

Conversation

@fank
Copy link
Member

@fank fank commented Mar 23, 2026

Summary

  • Fix startup crash: the app only auto-created the data/ directory but not the DB parent dir (db/) or maps/. When the Pelican install script's directories didn't persist, the server crashed with unable to open database file: no such file or directory.
  • Add full image variant: Pelican egg now offers both "Full (with map tools)" and "Slim" images, defaulting to full.

Test plan

  • Import egg into Pelican, verify server starts without pre-existing db/ or maps/ directories
  • Verify both image options appear in Pelican admin dropdown
  • go test ./internal/server/

The app only auto-created the data directory, so when the Pelican
install script's directories didn't persist, the server crashed on
startup with "unable to open database file: no such file or directory".

- Auto-create parent directory for DB file and maps directory on startup
- Add full image variant (with map tools) to Pelican egg, default to it
- Use human-readable names in docker_images dropdown
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses critical startup stability by ensuring necessary data directories are automatically provisioned, preventing crashes related to missing database or map storage. Additionally, it enhances deployment flexibility by offering distinct "Full" and "Slim" Docker image options within the Pelican egg configuration, allowing users to choose the appropriate variant for their needs.

Highlights

  • Startup Crash Fix: Resolved an issue where the application would crash on startup due to missing db/ and maps/ directories, by ensuring these are automatically created.
  • Image Variant Support: Introduced "Full (with map tools)" and "Slim" Docker image variants for the Pelican egg, with the full variant set as the default.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses a startup crash by ensuring necessary directories are created on startup, and also introduces different Docker image variants. The core logic for creating directories is sound. I've provided a couple of suggestions to improve maintainability and test clarity, ensuring test reliability by explicitly verifying directory creation as per repository rules.

@github-actions
Copy link

Merging this branch will decrease overall coverage

Impacted Packages Coverage Δ 🤖
github.com/OCAP2/web/internal/server 94.36% (-0.15%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/OCAP2/web/internal/server/setting.go 90.77% (-2.67%) 65 (+4) 59 (+2) 6 (+2) 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/OCAP2/web/internal/server/setting_test.go

@fank fank merged commit 325956a into main Mar 23, 2026
2 checks passed
@fank fank deleted the fix/pelican-startup-crash branch March 23, 2026 20:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant