Loading...
Helix SwarmHelix Swarm
Loading...

p4_web_api

  • //
  • guest/
  • perforce_software/
  • helix-web-services/
  • main/
  • p4_web_api
  • Browse
  • Commits
  • Download .zip
Name Modified Size
..
clients
omnibus-p4_web_api
p4_web_api
Change User Description Committed
13972 tjuricek Removing old microservice implementations.

The system is now mostly a monolith. Eventua
...lly there will be a websocket service. «
10 years ago
13784 tjuricek Typo fix 10 years ago
13675 tjuricek Add notification_services initialization

Removing the 'online setup' mode in lieu of do
...ing things during the salt process. Mostly this removes the trigger setup from the main web application. «
10 years ago
13635 tjuricek Exploring modular web applications with Sinatra.

If the app has fairly unique content p
...er page, Sinatra works really well actually. (Mostly because it's a thin layer over Rack.) Sharing anything though, basically means implementing a module or base class and implementing it everywhere.

An added benefit is that these applications could be used in Rails apps as well. I'd probably think hard about this, because Rails tends to be a resource hog.

Here's an example config.ru I used for running against the dev system:

require 'pms'

app = Pms::App.new

Pms::Login.settings.p4_web_api_url = http://172.16.100.20/p4_web_api/v1
ProjectApp.settings.phoenix_services_url = http://172.16.100.20/p4_phoenix_services/v1

app.settings.static = :true
app.settings.public_folder = File.absolute_path('../../ui/pms', __FILE__)

puts "public_folder is #{app.settings.public_folder}"

run app
«
10 years ago
13612 tjuricek Update deployment guide, switch built documentation to asciidoc, remove unused packaging s...cript for p4_web_api « 10 years ago
13544 tjuricek Revise package and gem versioning.

Packages will use [gem]-[changelist] as their versio
...ns. Gems will use a standard Ruby MAJOR.MINOR.REVISION format.

P4WEBAPI-64
«
10 years ago
13535 tjuricek Add notification_services to deployment, and reconfigure build step to exec bash.

The e
...xecution bit doesn't seem to stay set on config/bash.sh

The notification_services service doesn't have advanced tests just yet.
«
10 years ago
13534 tjuricek Remove automatically generated license files and unused run.sh files. 10 years ago
13530 tjuricek Add p4_phoenix_services package and Salt configuration for deployment.

This uncovered a
... couple of issues from the C++ API during it's conversion to C++03.

So, in a nutshell, most operations, except for notifications, appear to be working (well, using Vagrant machines).
«
10 years ago
13528 tjuricek Moved rack and app server configuration to be managed via Salt.

Also, only using a sing
...le value "url" to configure how the p4_project_services instance references the p4_web_api.

And, removing the Docker setup, since that won't work for a production system.
«
10 years ago
13525 tjuricek Setup God to manage both the p4 web api and p4 project services processes.

Apparently,
... there can only be one true god per machine. «
10 years ago
13520 tjuricek Created a 'cluster' build procedure that creates an installer on build, and executes the i...nstall on a test instance.

The main change is to package all gem dependencies via 'vendor/cache' (using the 'bundle package' command).

Right now, there appears to be an issue with test data initialization, which may need a revised approach.
«
10 years ago
13515 tjuricek Initial configuration for the p4_project_services.

The tests haven't been run yet, so i
...t's likely missing some more configuration.

Using vagrant to even manage these environments may not be our realistic CD premise. I may end up moving some more responsibility into the Salt layer, which would make vSphere automation easier.
«
10 years ago
13514 tjuricek Revised some of the p4_web_api tests to work under the installed 'production' perforce sys...tem.

Notes on data resets:

    sudo p4dctl stop helix-evaluation
    sudo rm -rf /var/lib/perforce/p4d
    sudo /opt/perforce/sbin/configure-perforce-server.sh helix-evaluation -n -p 1666 -r /var/lib/perforce/p4d -u super -P 'superuser1A!' --unicode
    sudo su webservices
    /home/webservices/.rvm/wrappers/ruby-2.2.2@p4webapi/p4util init -p :1666 /home/vagrant/p4ws/p4init
«
10 years ago
13513 tjuricek Update several files that were missing from the last commit regarding a basic 'test' envir...onment « 10 years ago
13504 tjuricek The 'build-ubuntu12' seems to generate the appropriate debian packages for the distributio...n.

I had permissions issues (probably related to shared folder usage) with the dpkg tools. So I've removed them. If we happen to need them, we'll have to figure out a build process.

This environment probably shouldn't be used to test the packages, since omnibus likes to dirty everything up, leave files in the /opt/perforce directory owned by vagrant, etc.
«
10 years ago
13500 tjuricek Reorganizing Vagrant definitions.

Each platform should allow developers to launch envir
...onments for development, builds, or 'production', so the entire CD process can be evaluated by anyone wiht access to the source tree.

This may eventually bring up a transient vSphere machine up and down, which may be necessary for sandboxing Omnibus related builds.
«
10 years ago
13499 tjuricek Simple p4_web_api omnibus installer.

Successfully built using a test-kitchen VM for deb
...ian ubuntu 14.04. «
10 years ago
13496 tjuricek Complete and seed the setup of the p4webapi in a development mode.

This works against t
...he local development tree for dev environments. «
10 years ago
13491 tjuricek Minimal .deb installer package for the p4_web_api

The goal of this package is to provid
...e a way of distributing the web application source via deb instead of something like the workshop or git. There will definitely be some changes as a complete deployment workflow is defined.

This includes some vagrant machines for building the installer packages ('ubuntu') and testing out the environment ('salt').
«
11 years ago
13490 tjuricek Removing external_links configuration references from the p4_web_api.

P4WEBAPI-51
11 years ago
13489 tjuricek Add zookeeper service to cluster for development evaluation.

It's a little unclear exac
...tly what values need to be distributed via zk, since a lot of the configuration may end up being handled via ports. I wanted to at least provide a way to evaluate this.

P4WEBAPI-60
«
11 years ago
13488 tjuricek Added hsm:startworld and hsm:stopworld tasks to do global starts and stops.

This is not
... without apparent issues. It appears bundler or ruby is pausing before the nginx launch task happens. I'm not sure if there's some kind of resource issue first.

P4WEBAPI-49
«
11 years ago
13487 tjuricek Pushing host, port, and URL configuration into docker-compose.yml consistently.

All oth
...er configuration will be figured out by a separate system later.

P4WEBAPI-51
«
11 years ago
13481 tjuricek Tests for the p4 web api and p4 project services now pass against a development setup both... in and out of the docker cluster.

Note that configuration *has not* been finalized, so conventions to dealing with development vs production need to be organized a bit.
«
11 years ago
13478 tjuricek Added Docker configuration for notification services, and phoenix services, also, opened u...p most ports to the host by default.

The current configuration is now working first for a setup of "development mode" environments, anticipating that each service will use the private internal network for most services. That way, you can selectively run things, say, in your OS X environment, and other things in the docker cluster. It can make your debugging a little easier.

When more automation is available, we'll find a way to describe how to handle this in different ways.
«
11 years ago
13477 tjuricek More docker-compose configuration for projects in research for HSM.

Added a geminabox h
...ost for the cluster, which allows for quick rebuilds. Each cluster will cache the gems it needs, and publish as well. We may want to put the overwrite commands for all publish steps by default.

Note: referencing "external links" can only be done 'at runtime', so "bundle install" really needs to be run in the context of 'docker-compose up' not 'docker-compose build'. This was edited in all configured libraries so far.

Finally, added the p4_project_services projects to configuration, which is running under it's own puma instance.

The postgres instance is a little tricky to figure out the exact workflow. Right now I'm using the host rake db:migrate task and calling createdb manually, since we need to pass the password along.
«
11 years ago
13476 tjuricek Some initial concepts for 'hsm'

Using docker-machine and docker-compose for a basis is
... very useful, instructions are documented in hsm/hsm/README.md

Currently uses the installer for perforce, doesn't have to. We *very likely* want to consider a way to set up a Docker image with data. Probably should change the Docker image for perforce to use an internal 15.x release.

We may want to have all other web services just use the p4_web_api for auth, and alter our shared middleware approach.

It's likely that we'd want a library of 'docker images' for our components, since not every component will get touched frequently. This will save a lot of startup time, just download and go. This may be step #1 even of hsm.
«
11 years ago
13474 tjuricek Corrected regressions that broke the API and Project services specs. 11 years ago
13470 tjuricek Phoenix notification services, client API, including new phoenix_updater

This is an int
...erim commit containing a first pass implementation of the phoenix_updater. Notably missing parts:

- The Qt API doesn't yet actually interact with the phoenix_updater
- The phoenix_services web service doesn't filter out notifications

I *may* end up creating another web application *just* to filter out notifications, since this may end up taking up a lot of background workers.
«
11 years ago
13458 tjuricek Revising P4 Web API docbook documentation to become the Perforce Web Services guide.

Ri
...ght now this is just focused on the Qt SDK. The remaining protocol documentation, etc, will happen eventually. «
11 years ago
13439 tjuricek Added a *very trivial* logIn implementation.

This just makes the *current* POST request
... to /p4_phoenix_services/v1/sessions, which *does not* include the ability to create a host locked P4 ticket for the user. So it's not quite usable yet. But, I've made several tweaks to the API which should be stablizing. «
11 years ago
13420 tjuricek Setup the main directory to launch specs in subprojects and a unicorn-based daemon via rak...e.

See rake -T for details, but this should allow for CI builds to collect output.
«
11 years ago
13419 tjuricek The p4_project_services specs now run that provide basic create-read ability. 11 years ago
13418 tjuricek Added p4_project_services to development config.ru, and reconfigured p4 web api client tes...ts to use the new paths. « 11 years ago
13417 tjuricek Added a 'rake work/config.ru' task, that creates a local rack configuration.

This now i
...ncludes the project services, which is not yet mounted. The p4 web api tests still pass though. «
11 years ago
13416 tjuricek Set up the p4_web_api related projects to be loaded by the parent Gemfile to make it a lit...tle easier to launch a test p4d with different seed data.

Also fixed a couple of minor issues related to the client api.

You'll notice that the 'rake api_reset api_init' task sets up a p4d for the p4_web_api tests, where the 'rake proj_reset proj_init' tasks set up p4d for project services testing.

An example p4_web_api.ru that can be used for launching just the p4_web_api:

require 'p4_web_api'

# Do *not* let your development environment variables pollute how the p4 web api runs!
ENV.keys.select { |k| k =~ /^P4/ }.each { |k| ENV.delete(k) }

api = P4WebAPI::App.new
puts 'changing paths'
api.settings.token_path = '/Users/tjuricek/dev/p4ws/work/tokens'
api.settings.workspace_folder = '/Users/tjuricek/dev/p4ws/work/workspaces'
api.settings.p4 = {'port' => 'localhost:1666', 'charset' => 'auto'}

run api
«
11 years ago
13412 tjuricek Initial version of the web-services mainline.

This is a collection of several projects,
... that will likely often get released together, though many of them may not always be relevant.

See the README for more information.
«
11 years ago