HomePhabricator

Give AlmanacServices a service type

Authored by epriestley.

Description

Give AlmanacServices a service type

Summary:
Ref T5833. This allows services to be typed, to distinguish between different kinds of services. This makes a few things easier:

  • It's easier for clients to select the services they're interested in (see note in T5873 about Phacility). This isn't a full-power solution, but gets is some of the way there.
  • It's easier to set appropriate permissions around when modifications to the Phabricator cluster are allowed. These service nodes need to be demarcated as special in some way no matter what (see T6741). This also defines a new policy for users who are permitted to create services.
  • It's easier to browse/review/understand services.
  • Future diffs will allow ServiceTypes to specify more service structure (for example, default properties) to make it easier to configure services correctly. Instead of a free-for-all, you'll get a useful list of things that consumers of the service expect to read.

The "custom" service type allows unstructured/freeform services to be created.

Test Plan:

  • Created a new service (and hit error cases).
  • Edited an existing service.
  • Saw service types on list and detail views.
  • Poked around new permission stuff.
  • Ran almanac.queryservices with service class specification.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5833

Differential Revision: https://secure.phabricator.com/D10995

Details

Committed
epriestleyDec 17 2014, 7:10 PM
Pushed
epriestleyDec 17 2014, 7:10 PM
Reviewer
btrahan
Differential Revision
D10995: Give AlmanacServices a service type
Parents
rP7d9bda59a6bf: Prevent worker queue leases from exceeding 64 characters
Branches
Unknown
Tags
Unknown
Tasks
T5833: Build "Almanac", a service/host/device directory