@@ -32,21 +32,56 @@ def set_retention_policy(bucket_name, retention_period):
32
32
# [END storage_set_retention_policy]
33
33
34
34
35
+ def remove_retention_policy (bucket_name ):
36
+ """Defines a retention policy on a given bucket"""
37
+ # [START storage_remove_retention_policy]
38
+ storage_client = storage .Client ()
39
+ bucket = storage_client .bucket (bucket_name )
40
+
41
+ bucket .retention_period = None
42
+ print ('Bucket {} retention period set for {} seconds' .format (
43
+ bucket .name ,
44
+ bucket .retention_period ))
45
+ # [END storage_remove_retention_policy]
46
+
47
+
35
48
def lock_retention_policy (bucket_name ):
36
49
# [START storage_lock_retention_policy]
37
50
storage_client = storage .Client ()
38
51
bucket = storage_client .bucket (bucket_name )
39
52
40
53
# Warning: Once a retention policy is locked it cannot be unlocked
41
54
# and retention period can only be increased.
42
- bucket .lock_retention_policy ()
55
+ bucket .retention_policy_locked = True
43
56
44
57
print ('Retention policy for {} is now locked' .format (bucket_name ))
45
58
print ('Retention policy Effective as of {}' .format (
46
- bucket .retention_effective_at ))
59
+ bucket .retention_policy_effective_time ))
47
60
# [END storage_lock_retention_policy]
48
61
49
62
63
+ def set_temporary_hold (bucket_name , blob_name ):
64
+ # [START storage_set_temporary_hold]
65
+ storage_client = storage .Client ()
66
+ bucket = storage_client .bucket (bucket_name )
67
+ blob = bucket .blob (blob_name )
68
+
69
+ blob .temporary_hold = True
70
+ print ("Temporary hold was set for #{blob_name}" )
71
+ # [END storage_set_temporary_hold]
72
+
73
+
74
+ def release_temporary_hold (bucket_name , blob_name ):
75
+ # [START storage_release_temporary_hold]
76
+ storage_client = storage .Client ()
77
+ bucket = storage_client .bucket (bucket_name )
78
+ blob = bucket .blob (blob_name )
79
+
80
+ blob .temporary_hold = False
81
+ print ("Temporary hold was release for #{blob_name}" )
82
+ # [END storage_release_temporary_hold]
83
+
84
+
50
85
def enable_default_event_based_hold (bucket_name ):
51
86
# [START storage_enable_default_event_based_hold]
52
87
storage_client = storage .Client ()
@@ -58,6 +93,17 @@ def enable_default_event_based_hold(bucket_name):
58
93
# [END storage_enable_default_event_based_hold]
59
94
60
95
96
+ def disable_default_event_based_hold (bucket_name ):
97
+ # [START storage_disable_default_event_based_hold]
98
+ storage_client = storage .Client ()
99
+ bucket = storage_client .bucket (bucket_name )
100
+
101
+ bucket .default_event_based_hold = False
102
+
103
+ print ("Default event based hold was disabled for {}" .format (bucket_name ))
104
+ # [END storage_disable_default_event_based_hold]
105
+
106
+
61
107
if __name__ == '__main__' :
62
108
63
109
parser = argparse .ArgumentParser (
@@ -70,20 +116,48 @@ def enable_default_event_based_hold(bucket_name):
70
116
set_retention_policy_parser .add_argument ('bucket_name' )
71
117
set_retention_policy_parser .add_argument ('retention_period' )
72
118
119
+ remove_retention_policy_parser = subparsers .add_parser (
120
+ 'remove-retention-policy' , help = remove_retention_policy .__doc__ )
121
+ remove_retention_policy_parser .add_argument ('bucket_name' )
122
+ remove_retention_policy_parser .add_argument ('retention_period' )
123
+
73
124
lock_retention_policy_parser = subparsers .add_parser (
74
125
'lock-retention-policy' , help = lock_retention_policy .__doc__ )
75
126
lock_retention_policy_parser .add_argument ('bucket_name' )
76
127
128
+ set_temporary_hold_parser = subparsers .add_parser (
129
+ 'set-temporary-hold' , help = set_temporary_hold .__doc__ )
130
+ set_temporary_hold_parser .add_argument ('bucket_name' )
131
+ set_temporary_hold_parser .add_argument ('retention_period' )
132
+
133
+ release_temporary_hold_parser = subparsers .add_parser (
134
+ 'release-temporary-hold' , help = release_temporary_hold .__doc__ )
135
+ release_temporary_hold_parser .add_argument ('bucket_name' )
136
+ release_temporary_hold_parser .add_argument ('retention_period' )
137
+
77
138
enable_default_event_based_hold_parser = subparsers .add_parser (
78
139
'enable-default-event-based-hold' ,
79
140
help = enable_default_event_based_hold .__doc__ )
80
141
enable_default_event_based_hold_parser .add_argument ('bucket_name' )
81
142
143
+ disable_default_event_based_hold_parser = subparsers .add_parser (
144
+ 'disable-default-event-based-hold' ,
145
+ help = disable_default_event_based_hold .__doc__ )
146
+ disable_default_event_based_hold_parser .add_argument ('bucket_name' )
147
+
82
148
args = parser .parse_args ()
83
149
84
150
if args .command == 'set-retention-policy' :
85
151
set_retention_policy (args .bucket_name , args .retention_period )
152
+ elif args .command == 'remove-retention-policy' :
153
+ remove_retention_policy (args .bucket_name )
86
154
elif args .command == 'lock-retention-policy' :
87
155
lock_retention_policy (args .bucket_name )
156
+ elif args .command == 'set-temporary-hold' :
157
+ set_temporary_hold (args .bucket_name )
158
+ elif args .command == 'release-temporary-hold' :
159
+ release_temporary_hold (args .bucket_name )
88
160
elif args .command == 'enable-default-event-based-hold' :
89
161
enable_default_event_based_hold (args .bucket_name )
162
+ elif args .command == 'disable-default-event-based-hold' :
163
+ disable_default_event_based_hold (args .bucket_name )
0 commit comments