| Index: tools/telemetry/third_party/gsutilz/third_party/oauth2client/oauth2client/file.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/oauth2client/oauth2client/file.py b/tools/telemetry/third_party/gsutilz/third_party/oauth2client/oauth2client/file.py
|
| deleted file mode 100644
|
| index 9d0ae7fabf2f52df552973f17b1ec39cf3cb5ee7..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/oauth2client/oauth2client/file.py
|
| +++ /dev/null
|
| @@ -1,122 +0,0 @@
|
| -# Copyright 2014 Google Inc. All rights reserved.
|
| -#
|
| -# Licensed under the Apache License, Version 2.0 (the "License");
|
| -# you may not use this file except in compliance with the License.
|
| -# You may obtain a copy of the License at
|
| -#
|
| -# http://www.apache.org/licenses/LICENSE-2.0
|
| -#
|
| -# Unless required by applicable law or agreed to in writing, software
|
| -# distributed under the License is distributed on an "AS IS" BASIS,
|
| -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -# See the License for the specific language governing permissions and
|
| -# limitations under the License.
|
| -
|
| -"""Utilities for OAuth.
|
| -
|
| -Utilities for making it easier to work with OAuth 2.0
|
| -credentials.
|
| -"""
|
| -
|
| -__author__ = 'jcgregorio@google.com (Joe Gregorio)'
|
| -
|
| -import os
|
| -import threading
|
| -
|
| -from oauth2client.client import Credentials
|
| -from oauth2client.client import Storage as BaseStorage
|
| -
|
| -
|
| -class CredentialsFileSymbolicLinkError(Exception):
|
| - """Credentials files must not be symbolic links."""
|
| -
|
| -
|
| -class Storage(BaseStorage):
|
| - """Store and retrieve a single credential to and from a file."""
|
| -
|
| - def __init__(self, filename):
|
| - self._filename = filename
|
| - self._lock = threading.Lock()
|
| -
|
| - def _validate_file(self):
|
| - if os.path.islink(self._filename):
|
| - raise CredentialsFileSymbolicLinkError(
|
| - 'File: %s is a symbolic link.' % self._filename)
|
| -
|
| - def acquire_lock(self):
|
| - """Acquires any lock necessary to access this Storage.
|
| -
|
| - This lock is not reentrant."""
|
| - self._lock.acquire()
|
| -
|
| - def release_lock(self):
|
| - """Release the Storage lock.
|
| -
|
| - Trying to release a lock that isn't held will result in a
|
| - RuntimeError.
|
| - """
|
| - self._lock.release()
|
| -
|
| - def locked_get(self):
|
| - """Retrieve Credential from file.
|
| -
|
| - Returns:
|
| - oauth2client.client.Credentials
|
| -
|
| - Raises:
|
| - CredentialsFileSymbolicLinkError if the file is a symbolic link.
|
| - """
|
| - credentials = None
|
| - self._validate_file()
|
| - try:
|
| - f = open(self._filename, 'rb')
|
| - content = f.read()
|
| - f.close()
|
| - except IOError:
|
| - return credentials
|
| -
|
| - try:
|
| - credentials = Credentials.new_from_json(content)
|
| - credentials.set_store(self)
|
| - except ValueError:
|
| - pass
|
| -
|
| - return credentials
|
| -
|
| - def _create_file_if_needed(self):
|
| - """Create an empty file if necessary.
|
| -
|
| - This method will not initialize the file. Instead it implements a
|
| - simple version of "touch" to ensure the file has been created.
|
| - """
|
| - if not os.path.exists(self._filename):
|
| - old_umask = os.umask(0o177)
|
| - try:
|
| - open(self._filename, 'a+b').close()
|
| - finally:
|
| - os.umask(old_umask)
|
| -
|
| - def locked_put(self, credentials):
|
| - """Write Credentials to file.
|
| -
|
| - Args:
|
| - credentials: Credentials, the credentials to store.
|
| -
|
| - Raises:
|
| - CredentialsFileSymbolicLinkError if the file is a symbolic link.
|
| - """
|
| -
|
| - self._create_file_if_needed()
|
| - self._validate_file()
|
| - f = open(self._filename, 'w')
|
| - f.write(credentials.to_json())
|
| - f.close()
|
| -
|
| - def locked_delete(self):
|
| - """Delete Credentials file.
|
| -
|
| - Args:
|
| - credentials: Credentials, the credentials to store.
|
| - """
|
| -
|
| - os.unlink(self._filename)
|
|
|