Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • nomad-FAIR nomad-FAIR
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 215
    • Issues 215
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 27
    • Merge requests 27
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • nomad-labnomad-lab
  • nomad-FAIRnomad-FAIR
  • Merge requests
  • !880

Allow creating archives from inside another archive's normalizer

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged David Sikter requested to merge 1118-creating-archives-from-inside-another-archive-s-normalizer into develop Oct 12, 2022
  • Overview 6
  • Commits 3
  • Pipelines 5
  • Changes 9

Closes #1118 (closed). Two methods are added to the ServerContext class:

  • raw_path_exists, for determining if a file already exists
  • process_updated_raw_file, which tells the processing framework that a file has been added or updated. This will cause the new/update file to be matched and processed (if a parser matches it). This method is intended to be used from the normalize or parse method.

Modifying existing files is allowed, but discouraged, as care needs to be taken so that we don't get infinite loops with files modifying each other. This is why I also added the raw_path_exists method, to make it easier to check this.

Technically, the solution works by allowing child processes to be non-blocking (this is to make it possible to modify existing files. An existing file might already be processing when the processing of another file causes it to be updated. What happens then is that the modified entry will be scheduled for reprocessing, and this time it should be guaranteed to see the modified version of the mainfile. This requires the child process to be non-blocking.).

I also changed the code of a failing gui test, and it seems to have fixed the annoying problem we've had lately with seeing two "Save entry" buttons on the OverviewView page (though not entirely clear why the code fixes it).

Edited Oct 13, 2022 by David Sikter
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: 1118-creating-archives-from-inside-another-archive-s-normalizer