Unverified Commit b121db54 authored by Nate Coraor's avatar Nate Coraor Committed by GitHub
Browse files

Merge pull request #18256 from mvdbeek/server_external_hgweb

[23.1] Minor fix to enable external hgweb process
parents dc9e0788 410ccb9a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -15,6 +15,10 @@ tool_shed:
  # installation directory.
  #hgweb_config_dir: null

  # Default URL prefix for repositories served via hgweb. If running an
  # external hgweb server you should set this to an empty string.
  #hgweb_repo_prefix: repos/

  # Where Tool Shed repositories are stored.
  #file_path: database/community_files

+8 −0
Original line number Diff line number Diff line
@@ -31,6 +31,14 @@ mapping:
          Where the hgweb.config file is stored.
          The default is the Galaxy installation directory.

      hgweb_repo_prefix:
        type: str
        required: false
        default: repos/
        desc: |
          Default URL prefix for repositories served via hgweb.
          If running an external hgweb server you should set this to an empty string.

      file_path:
        type: str
        default: database/community_files
+5 −6
Original line number Diff line number Diff line
@@ -19,11 +19,11 @@ class HgWebConfigManager:
    def __init__(self):
        self.hgweb_config_dir = None
        self.in_memory_config = None
        self.lock = threading.Lock()

    def add_entry(self, lhs, rhs):
        """Add an entry in the hgweb.config file for a new repository."""
        lock = threading.Lock()
        lock.acquire(True)
        self.lock.acquire(True)
        try:
            # Since we're changing the config, make sure the latest is loaded into memory.
            self.read_config(force_read=True)
@@ -38,12 +38,11 @@ class HgWebConfigManager:
        except Exception as e:
            log.debug("Exception in HgWebConfigManager.add_entry(): %s", unicodify(e))
        finally:
            lock.release()
            self.lock.release()

    def change_entry(self, old_lhs, new_lhs, new_rhs):
        """Change an entry in the hgweb.config file for a repository - this only happens when the owner changes the name of the repository."""
        lock = threading.Lock()
        lock.acquire(True)
        self.lock.acquire(True)
        try:
            self.make_backup()
            # Remove the old entry.
@@ -55,7 +54,7 @@ class HgWebConfigManager:
        except Exception as e:
            log.debug("Exception in HgWebConfigManager.change_entry(): %s", unicodify(e))
        finally:
            lock.release()
            self.lock.release()

    def get_entry(self, lhs):
        """Return an entry in the hgweb.config file for a repository"""
+1 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ def create_repository(
    # Create the local repository.
    init_repository(repo_path=repository_path)
    # Add an entry in the hgweb.config file for the local repository.
    lhs = f"repos/{repository.user.username}/{repository.name}"
    lhs = f"{app.config.hgweb_repo_prefix}{repository.user.username}/{repository.name}"
    app.hgweb_config_manager.add_entry(lhs, repository_path)
    # Create a .hg/hgrc file for the local repository.
    create_hgrc_file(app, repository)