Uploaded image for project: 'JOC - JobScheduler Operations Center'
  1. JOC - JobScheduler Operations Center
  2. JOC-1712

Offer Git operations for a number of parallel accounts

    XMLWordPrintable

Details

    Description

      Current Situation

      • JOC Cockpit offers Integration with Git repositories.
      • A Git repository can be accessed from a single Git account only. If more than one JOC Cockpit account is used then they have to use the same Git account.

      Desired Behavior

      • Any number of JOC Cockpit accounts can be used and can be mapped to related Git accounts. Use of Git accounts works independently from the JOC Cockpit security level.
      • Each JOC Cockpit user account's profile can hold an individual Git account.
      • Git operations performed by JOC Cockpit on the command line using a Git Client
        • create an individual .gitconfig Git file in a temporary directory,
          • The .gitconfig Git file is created like this:
            mkdir /tmp/.gitconfig$$
            git config --file /tmp/.gitconfig$$/.gitconfig --add core.sshCommand "ssh -o StrictHostKeyChecking=no -i /var/sos-berlin.com/js7/joc/resources/joc/repositories/private/sos-community2_rsa"
            git config --file /tmp/.gitconfig$$/.gitconfig user.email monitor@sos-berlin.com
            git config --file /tmp/.gitconfig$$/.gitconfig user.name sos-community2
            git config --file /tmp/.gitconfig$$/.gitconfig --add safe.directory /var/sos-berlin.com/js7/joc/resources/joc/repositories/rollout/sp-js7-demo-rollout-test
            
          • The temporary directory and Git file are created per API request related to Git operations and to operations reading and writing files from/to the local repository.
        • copy the individual Git .gitconfig file to the global $HOME/.gitconfig file. This operation is performed before each execution of the Git Client.
      • Git operations are performed in transactions per Git repository:
        • Any number of parallel Git operations can be performed as long as the same Git repository is not used in parallel.
        • Access to the same Git repository is serialized in a way that makes Git operations wait for completion of a parallel operation. A timeout of 60s is applied to wait for a parallel transaction to complete. If the timeout is exceeded then the user receives an error message and can restart the Git operation.

      Attachments

        Activity

          People

            oh Oliver Haufe
            ap Andreas Püschel
            Andreas Püschel Andreas Püschel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: