mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
|
# Copyright 2017 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.
|
||
|
|
||
|
"""Helper functions to upload data to logdog."""
|
||
|
|
||
|
import logging
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
from pylib import constants
|
||
|
from pylib.utils import decorators
|
||
|
|
||
|
sys.path.insert(0, os.path.abspath(os.path.join(
|
||
|
constants.DIR_SOURCE_ROOT, 'tools', 'swarming_client')))
|
||
|
from libs.logdog import bootstrap # pylint: disable=import-error
|
||
|
|
||
|
|
||
|
@decorators.NoRaiseException(default_return_value='',
|
||
|
exception_message=('Ignore this exception. '
|
||
|
'crbug.com/675666'))
|
||
|
def text(name, data, content_type=None):
|
||
|
"""Uploads text to logdog.
|
||
|
|
||
|
Args:
|
||
|
name: Name of the logdog stream.
|
||
|
data: String with data you want to upload.
|
||
|
content_type: The optional content type of the stream. If None, a
|
||
|
default content type will be chosen.
|
||
|
|
||
|
Returns:
|
||
|
Link to view uploaded text in logdog viewer.
|
||
|
"""
|
||
|
logging.info('Writing text to logdog stream, %s', name)
|
||
|
with get_logdog_client().text(name, content_type=content_type) as stream:
|
||
|
stream.write(data)
|
||
|
return stream.get_viewer_url()
|
||
|
|
||
|
|
||
|
@decorators.NoRaiseException(default_return_value=None,
|
||
|
exception_message=('Ignore this exception. '
|
||
|
'crbug.com/675666'))
|
||
|
def open_text(name):
|
||
|
"""Returns a file like object which you can write to.
|
||
|
|
||
|
Args:
|
||
|
name: Name of the logdog stream.
|
||
|
|
||
|
Returns:
|
||
|
A file like object. close() file when done.
|
||
|
"""
|
||
|
logging.info('Opening text logdog stream, %s', name)
|
||
|
return get_logdog_client().open_text(name)
|
||
|
|
||
|
|
||
|
@decorators.NoRaiseException(default_return_value='',
|
||
|
exception_message=('Ignore this exception. '
|
||
|
'crbug.com/675666'))
|
||
|
def binary(name, binary_path):
|
||
|
"""Uploads binary to logdog.
|
||
|
|
||
|
Args:
|
||
|
name: Name of the logdog stream.
|
||
|
binary_path: Path to binary you want to upload.
|
||
|
|
||
|
Returns:
|
||
|
Link to view uploaded binary in logdog viewer.
|
||
|
"""
|
||
|
logging.info('Writing binary to logdog stream, %s', name)
|
||
|
with get_logdog_client().binary(name) as stream:
|
||
|
with open(binary_path, 'r') as f:
|
||
|
stream.write(f.read())
|
||
|
return stream.get_viewer_url()
|
||
|
|
||
|
|
||
|
@decorators.NoRaiseException(default_return_value='',
|
||
|
exception_message=('Ignore this exception. '
|
||
|
'crbug.com/675666'))
|
||
|
def get_viewer_url(name):
|
||
|
"""Get Logdog viewer URL.
|
||
|
|
||
|
Args:
|
||
|
name: Name of the logdog stream.
|
||
|
|
||
|
Returns:
|
||
|
Link to view uploaded binary in logdog viewer.
|
||
|
"""
|
||
|
return get_logdog_client().get_viewer_url(name)
|
||
|
|
||
|
|
||
|
@decorators.Memoize
|
||
|
def get_logdog_client():
|
||
|
logging.info('Getting logdog client.')
|
||
|
return bootstrap.ButlerBootstrap.probe().stream_client()
|