p4_util.rb #2

  • //
  • guest/
  • perforce_software/
  • helix-web-services/
  • candidate/
  • source/
  • helix_web_services/
  • lib/
  • p4_util.rb
  • Commits
# Change User Description Committed
#2 16345 tjuricek Removing candidate branch
#1 16342 tjuricek Create candidate branch.

This branch is mostly here to start work on our release infrastructure.
//guest/perforce_software/helix-web-services/main/source/helix_web_services/lib/p4_util.rb
#8 16167 tjuricek Use the '-x' flag on a specific client to obtain a "lock" before submitting files.

Also using the lock on typically generated temporary clients just in case.
#7 15969 tjuricek Add support for repo creation/update and deletion, same for SSH keys.

Add util module for supporting methods, modify temp client to dissapear.

(Modified submit of review 15549 by @ptomiak)
#6 15873 tjuricek Added automatic calls to trust remote servers, if enabled in the system.

It's enabled by default, but can be disabled for admins that do not want it.

The p4trust file is moved somewhere writable by us.

Also, disabling the p4enviro cache.
#5 15822 tjuricek Revise techniqe to find both rsh: and jsh:

From what I can tell, there's only case insensitive string matching from the start of the string to the first colon character. There should be no way to include funky special characters. Unless there's some preliminary string cleanup in the P4API I haven't found yet.
#4 15794 tjuricek Widen the search for variations of rsh in P4PORT
#3 15790 tjuricek Do not allow rsh: P4PORT values to be set
#2 15698 tjuricek Added a /helix_versioning_engine/v[api]/login method

This is used by the Helix Sync client to differentiate the auth source of HWS from that of P4D (to be used for projects).
#1 15622 tjuricek Move source code to 'source/' subdirectory of branch.

build/ will remain where it is.
//guest/perforce_software/helix-web-services/main/helix_web_services/lib/p4_util.rb
#8 15240 tjuricek Set api level via request path on all Helix Versioning Engine methods.

This will allow migration of applications to different P4D versions. Our internal methods (like project API) should attempt to handle backward compatibility similarly.

P4WEBAPI-118
#7 15213 tjuricek Disable the use of ticket files by P4API usage of HWS.

If someone were to use, say, the p4 command line client to do some debugging on the same system account as HWS, you might get a ticket file in the default location. In which case the ticket that's used is the one stored, and not the one specified via the header (if the header happens to be incorrect). Which basically opens up access on that account via HWS.
#6 15147 tjuricek Enable submissions by files on stream clients

This obeys our earlier rules: notably the local client must not have any local files open for edit.
#5 15132 tjuricek Provde a basic submit -e mechanism on classic perforce workspaces.
#4 15114 tjuricek While I'm seeing ticket's files generated for the 'super' user, it's possible that this login in the test suite has 'enabled it's usage'.
#3 15113 tjuricek Set ticket_file to /dev/null to ensure the p4api doesn't try to use a local tickets file for auth
#2 15032 tjuricek Starting config and doc revisions.
System is now broken while revisions underway.

Configuration of the p4d connection is now done via a single HWSSettings middleware object injected into the Rack env.

The HWSP4Cleanup middleware now cleans up any p4 injected into the Rack env.

The Auth::App class now mostly just contains one method to generate a p4 ticket. /auth/v1/login.

Added yard documentation for the main project.

Yard docs have been reconfigured to dump into build/ directories. This should probably be done with each release. Hm...

The top level rake file contains a task, 'all:doc', to update our documentation. This should probably be run for each checkin. Hm...

Specs are now using Rack::Test on top of a 'live' p4d. I'd suggest you still use the p4util mechanism, which now dumps to a /tmp folder, so we can safely add P4IGNORE rules back into your local .p4config file.

Old 'perforce' application now called 'helix_versioning_engine'.

Removing cache data. Helix Sync may be slow. It may also get axed. We'll see.
#1 13799 tjuricek Start with branch specs hosting in a new monolithic 'helix web services' project.

Converting from a microservice to a monolithic architecture due to resource constraints at getting a deployable system running. Additionally, since it's not expected that people will upgrade often, the major benefit of microservices - being able to add services individually without affecting others - is not really a major benefit.

The Ruby SDK will be consolidated into a single 'helix web services client' project. It may end up being distributed via Rubygems.

This only runs branch specs at the moment. I want to get a CD pipeline setup for the monolithic server before revising more methods.