Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Unified Diff: go/src/infra/tools/cipd/acl.go

Issue 1129043003: cipd: Refactor client to make it more readable. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | go/src/infra/tools/cipd/apps/cipd/main.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: go/src/infra/tools/cipd/acl.go
diff --git a/go/src/infra/tools/cipd/acl.go b/go/src/infra/tools/cipd/acl.go
deleted file mode 100644
index 382132c417614ed474a5bd5ace19d0f2702e21b0..0000000000000000000000000000000000000000
--- a/go/src/infra/tools/cipd/acl.go
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package cipd
-
-import (
- "net/http"
- "time"
-
- "infra/libs/logging"
-)
-
-// PackageACLChangeAction defines a flavor of PackageACLChange.
-type PackageACLChangeAction string
-
-const (
- // GrantRole is used in PackageACLChange to request a role to be granted.
- GrantRole PackageACLChangeAction = "GRANT"
- // RevokeRole is used in PackageACLChange to request a role to be revoked.
- RevokeRole PackageACLChangeAction = "REVOKE"
-)
-
-// PackageACL is per package path per role access control list that is a part of
-// larger overall ACL: ACL for package "a/b/c" is a union of PackageACLs for "a"
-// "a/b" and "a/b/c".
-type PackageACL struct {
- // PackagePath is a package subpath this ACL is defined for.
- PackagePath string
- // Role is a role that listed users have, e.g. 'READER', 'WRITER', ...
- Role string
- // Principals list users and groups granted the role.
- Principals []string
- // ModifiedBy specifies who modified the list the last time.
- ModifiedBy string
- // ModifiedTs is a timestamp when the list was modified the last time.
- ModifiedTs time.Time
-}
-
-// ACLOptions contains parameters shared by FetchACL and ModifyACL functions.
-type ACLOptions struct {
- // ServiceURL is root URL of the backend service, or "" to use default service.
- ServiceURL string
- // Client is http.Client to use to make requests, default is http.DefaultClient.
- Client *http.Client
- // Log is a logger to use for logs, default is logging.DefaultLogger.
- Log logging.Logger
- // PackagePath is a package subpath to fetch or modify ACLs for.
- PackagePath string
-}
-
-// FetchACLOptions contains parameters for FetchACL function.
-type FetchACLOptions struct {
- ACLOptions
-}
-
-// FetchACL returns a list of PackageACL objects (parent paths first) that
-// together define access control list for given package subpath.
-func FetchACL(options FetchACLOptions) ([]PackageACL, error) {
- // Fill in default options.
- if options.ServiceURL == "" {
- options.ServiceURL = DefaultServiceURL()
- }
- if options.Client == nil {
- options.Client = http.DefaultClient
- }
- if options.Log == nil {
- options.Log = logging.DefaultLogger
- }
- remote := newRemoteService(options.Client, options.ServiceURL, options.Log)
- return remote.fetchACL(options.PackagePath)
-}
-
-// PackageACLChange is a mutation to some package ACL.
-type PackageACLChange struct {
- // Action defines what action to perform: GrantRole or RevokeRole.
- Action PackageACLChangeAction
- // Role to grant or revoke to a user or group.
- Role string
- // Principal is a user or a group to grant or revoke a role for.
- Principal string
-}
-
-// ModifyACLOptions contains parameters for ModifyACL function.
-type ModifyACLOptions struct {
- ACLOptions
-
- // Changes defines changes to apply.
- Changes []PackageACLChange
-}
-
-// ModifyACL applies a set of PackageACLChanges to a package path.
-func ModifyACL(options ModifyACLOptions) error {
- // Fill in default options.
- if options.ServiceURL == "" {
- options.ServiceURL = DefaultServiceURL()
- }
- if options.Client == nil {
- options.Client = http.DefaultClient
- }
- if options.Log == nil {
- options.Log = logging.DefaultLogger
- }
- remote := newRemoteService(options.Client, options.ServiceURL, options.Log)
- return remote.modifyACL(options.PackagePath, options.Changes)
-}
« no previous file with comments | « no previous file | go/src/infra/tools/cipd/apps/cipd/main.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698