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

Side by Side Diff: third_party/gsutil/gslib/commands/enablelogging.py

Issue 2280023003: depot_tools: Remove third_party/gsutil (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2011 Google Inc. All Rights Reserved.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 from gslib.command import Command
16 from gslib.command import COMMAND_NAME
17 from gslib.command import COMMAND_NAME_ALIASES
18 from gslib.command import CONFIG_REQUIRED
19 from gslib.command import FILE_URIS_OK
20 from gslib.command import MAX_ARGS
21 from gslib.command import MIN_ARGS
22 from gslib.command import PROVIDER_URIS_OK
23 from gslib.command import SUPPORTED_SUB_ARGS
24 from gslib.command import URIS_START_ARG
25 from gslib.exception import CommandException
26 from gslib.help_provider import HELP_NAME
27 from gslib.help_provider import HELP_NAME_ALIASES
28 from gslib.help_provider import HELP_ONE_LINE_SUMMARY
29 from gslib.help_provider import HELP_TEXT
30 from gslib.help_provider import HelpType
31 from gslib.help_provider import HELP_TYPE
32 from gslib.util import NO_MAX
33
34 _detailed_help_text = ("""
35 <B>SYNOPSIS</B>
36 gsutil enablelogging -b logging_bucket [-o log_object_prefix] uri...
37
38
39 <B>DESCRIPTION</B>
40 Google Cloud Storage offers access logs and storage data in the form of
41 CSV files that you can download and view. Access logs provide information
42 for all of the requests made on a specified bucket in the last 24 hours,
43 while the storage logs provide information about the storage consumption of
44 that bucket for the last 24 hour period. The logs and storage data files
45 are automatically created as new objects in a bucket that you specify, in
46 24 hour intervals.
47
48 The gsutil enablelogging command will enable access logging of the
49 buckets named by the specified uris, outputting log files in the specified
50 logging_bucket. logging_bucket must already exist, and all URIs must name
51 buckets (e.g., gs://bucket). For example, the command:
52
53 gsutil enablelogging -b gs://my_logging_bucket -o AccessLog \\
54 gs://my_bucket1 gs://my_bucket2
55
56 will cause all read and write activity to objects in gs://mybucket1 and
57 gs://mybucket2 to be logged to objects prefixed with the name "AccessLog",
58 with those log objects written to the bucket gs://my_logging_bucket.
59
60 Note that log data may contain sensitive information, so you should make
61 sure to set an appropriate default bucket ACL to protect that data. (See
62 "gsutil help setdefacl".)
63
64 You can check logging status using the gsutil getlogging command. For log
65 format details see "gsutil help getlogging".
66
67
68 <B>OPTIONS</B>
69 -b bucket Specifies the log bucket.
70
71 -o prefix Specifies the prefix for log object names. Default value
72 is the bucket name.
73 """)
74
75
76 class EnableLoggingCommand(Command):
77 """Implementation of gsutil enablelogging command."""
78
79 # Command specification (processed by parent class).
80 command_spec = {
81 # Name of command.
82 COMMAND_NAME : 'enablelogging',
83 # List of command name aliases.
84 COMMAND_NAME_ALIASES : [],
85 # Min number of args required by this command.
86 MIN_ARGS : 1,
87 # Max number of args required by this command, or NO_MAX.
88 MAX_ARGS : NO_MAX,
89 # Getopt-style string specifying acceptable sub args.
90 SUPPORTED_SUB_ARGS : 'b:o:',
91 # True if file URIs acceptable for this command.
92 FILE_URIS_OK : False,
93 # True if provider-only URIs acceptable for this command.
94 PROVIDER_URIS_OK : False,
95 # Index in args of first URI arg.
96 URIS_START_ARG : 0,
97 # True if must configure gsutil before running command.
98 CONFIG_REQUIRED : True,
99 }
100 help_spec = {
101 # Name of command or auxiliary help info for which this help applies.
102 HELP_NAME : 'enablelogging',
103 # List of help name aliases.
104 HELP_NAME_ALIASES : ['logging', 'logs', 'log'],
105 # Type of help:
106 HELP_TYPE : HelpType.COMMAND_HELP,
107 # One line summary of this help.
108 HELP_ONE_LINE_SUMMARY : 'Enable logging on buckets',
109 # The full help text.
110 HELP_TEXT : _detailed_help_text,
111 }
112
113 # Command entry point.
114 def RunCommand(self):
115 # Disallow multi-provider enablelogging calls, because the schemas
116 # differ.
117 storage_uri = self.UrisAreForSingleProvider(self.args)
118 if not storage_uri:
119 raise CommandException('enablelogging command spanning providers not '
120 'allowed.')
121 target_bucket_uri = None
122 target_prefix = None
123 for opt, opt_arg in self.sub_opts:
124 if opt == '-b':
125 target_bucket_uri = self.suri_builder.StorageUri(opt_arg)
126 if opt == '-o':
127 target_prefix = opt_arg
128
129 if not target_bucket_uri:
130 raise CommandException('enablelogging requires \'-b <log_bucket>\' '
131 'option')
132 if not target_bucket_uri.names_bucket():
133 raise CommandException('-b option must specify a bucket uri')
134
135 did_some_work = False
136 for uri_str in self.args:
137 for uri in self.WildcardIterator(uri_str).IterUris():
138 if uri.names_object():
139 raise CommandException('enablelogging cannot be applied to objects')
140 did_some_work = True
141 print 'Enabling logging on %s...' % uri
142 self.proj_id_handler.FillInProjectHeaderIfNeeded(
143 'enablelogging', storage_uri, self.headers)
144 uri.enable_logging(target_bucket_uri.bucket_name, target_prefix, False,
145 self.headers)
146 if not did_some_work:
147 raise CommandException('No URIs matched')
148
149 return 0
OLDNEW
« no previous file with comments | « third_party/gsutil/gslib/commands/disablelogging.py ('k') | third_party/gsutil/gslib/commands/getacl.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698