Skip to content

Commit

Permalink
Adhere to code style
Browse files Browse the repository at this point in the history
  • Loading branch information
ofek committed Apr 7, 2019
1 parent fc7ccf1 commit c2a8590
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,4 @@
# Licensed under a 3-clause BSD style license (see LICENSE)
from .__about__ import __version__

__all__ = [
'__version__',
]
__all__ = ['__version__']
30 changes: 13 additions & 17 deletions datadog_checks_downloader/datadog_checks/downloader/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,12 @@
import argparse
import re

# 2nd party.
from .download import TUFDownloader
from .exceptions import (
NonCanonicalVersion,
NonDatadogPackage,
NoSuchDatadogPackageOrVersion,
)

# 3rd party.
from tuf.exceptions import UnknownTargetError

# 2nd party.
from .download import TUFDownloader
from .exceptions import NonCanonicalVersion, NonDatadogPackage, NoSuchDatadogPackageOrVersion

# Private module functions.

Expand All @@ -42,14 +37,15 @@ def __get_wheel_distribution_name(standard_distribution_name):
def download():
parser = argparse.ArgumentParser()

parser.add_argument('standard_distribution_name', type=str,
help='Standard distribution name of the desired Datadog check.')
parser.add_argument(
'standard_distribution_name', type=str, help='Standard distribution name of the desired Datadog check.'
)

parser.add_argument('--version', type=str, default=None,
help='The version number of the desired Datadog check.')
parser.add_argument('--version', type=str, default=None, help='The version number of the desired Datadog check.')

parser.add_argument('-v', '--verbose', action='count', default=0,
help='Show verbose information about TUF and in-toto.')
parser.add_argument(
'-v', '--verbose', action='count', default=0, help='Show verbose information about TUF and in-toto.'
)

args = parser.parse_args()
standard_distribution_name = args.standard_distribution_name
Expand All @@ -68,9 +64,9 @@ def download():
if not __is_canonical(version):
raise NonCanonicalVersion(version)

target_relpath = 'simple/{}/{}-{}-py2.py3-none-any.whl'\
.format(standard_distribution_name,
wheel_distribution_name, version)
target_relpath = 'simple/{}/{}-{}-py2.py3-none-any.whl'.format(
standard_distribution_name, wheel_distribution_name, version
)

try:
target_abspath = tuf_downloader.download(target_relpath)
Expand Down
54 changes: 22 additions & 32 deletions datadog_checks_downloader/datadog_checks/downloader/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,29 @@
import tempfile

import tuf.settings
# Turn off TUF file logging.
tuf.settings.ENABLE_FILE_LOGGING = False
# Increase requests timeout.
tuf.settings.SOCKET_TIMEOUT = 60

# Import what we need from TUF.
from tuf.client.updater import Updater
from tuf.exceptions import UnknownTargetError

# Import what we need from in-toto.
from in_toto import verifylib
from in_toto.models.metadata import Metablock
from in_toto.util import import_public_keys_from_files_as_dict

# After we import everything we neeed, shut off all existing loggers.
logging.config.dictConfig({
'disable_existing_loggers': True,
'version': 1,
})

# Other 3rd-party imports.
# NOTE: We assume that setuptools is installed by default.
from pkg_resources import parse_version

# Import what we need from TUF.
from tuf.client.updater import Updater
from tuf.exceptions import UnknownTargetError

# Exceptions.
from .exceptions import (
InconsistentSimpleIndex,
MissingVersions,
NoInTotoLinkMetadataFound,
NoInTotoRootLayoutPublicKeysFound,
NoSuchDatadogPackage,
)

# NOTE: A module with a function that substitutes parameters for
# in-toto inspections. The function is expected to be called
# 'substitute', and takes one parameter, target_relpath, that specifies
Expand All @@ -46,14 +45,14 @@
# The module is expected to live here.
from .parameters import substitute

# Exceptions.
from .exceptions import (
InconsistentSimpleIndex,
MissingVersions,
NoInTotoLinkMetadataFound,
NoInTotoRootLayoutPublicKeysFound,
NoSuchDatadogPackage,
)
# Turn off TUF file logging.
tuf.settings.ENABLE_FILE_LOGGING = False
# Increase requests timeout.
tuf.settings.SOCKET_TIMEOUT = 60


# After we import everything we neeed, shut off all existing loggers.
logging.config.dictConfig({'disable_existing_loggers': True, 'version': 1})


# CONSTANTS.
Expand All @@ -66,7 +65,7 @@
'url_prefix': 'https://dd-integrations-core-wheels-build-stable.datadoghq.com',
'metadata_path': 'metadata.staged',
'targets_path': 'targets',
'confined_target_dirs': ['']
'confined_target_dirs': [''],
}
}

Expand All @@ -76,8 +75,6 @@


class TUFDownloader:


def __init__(self, verbose=0):
# 0 => 60 (effectively /dev/null)
# 1 => 50 (CRITICAL)
Expand Down Expand Up @@ -110,7 +107,6 @@ def __init__(self, verbose=0):
# we use the same consistent snapshot to download targets.
self.__updater.refresh()


def __download_in_toto_metadata(self, target):
# A list to collect where in-toto metadata targets live.
target_relpaths = []
Expand Down Expand Up @@ -145,7 +141,6 @@ def __download_in_toto_metadata(self, target):
# Return list of where in-toto metadata files live.
return target_relpaths


def __update_in_toto_layout_pubkeys(self):
'''
NOTE: We assume that all the public keys needed to verify any in-toto
Expand All @@ -171,7 +166,6 @@ def __update_in_toto_layout_pubkeys(self):

return target_relpaths


def __verify_in_toto_metadata(self, target_relpath, in_toto_inspection_packet):
# Make a temporary directory in a parent directory we control.
tempdir = tempfile.mkdtemp(dir=REPOSITORIES_DIR)
Expand Down Expand Up @@ -207,7 +201,6 @@ def __verify_in_toto_metadata(self, target_relpath, in_toto_inspection_packet):
# Delete temp dir.
shutil.rmtree(tempdir)


def __download_and_verify_in_toto_metadata(self, target, target_relpath):
in_toto_metadata_relpaths = self.__download_in_toto_metadata(target)

Expand All @@ -227,7 +220,6 @@ def __download_and_verify_in_toto_metadata(self, target, target_relpath):
in_toto_inspection_packet = [target_relpath] + in_toto_metadata_relpaths + pubkey_relpaths
self.__verify_in_toto_metadata(target_relpath, in_toto_inspection_packet)


def __get_target(self, target_relpath, download_in_toto_metadata=True):
target = self.__updater.get_one_valid_targetinfo(target_relpath)
updated_targets = self.__updater.updated_targets((target,), self.__targets_dir)
Expand Down Expand Up @@ -258,7 +250,6 @@ def __get_target(self, target_relpath, download_in_toto_metadata=True):
target_path = os.path.join(self.__targets_dir, target_relpath)
return target_path


def download(self, target_relpath, download_in_toto_metadata=True):
'''
Returns:
Expand All @@ -267,7 +258,6 @@ def download(self, target_relpath, download_in_toto_metadata=True):
'''
return self.__get_target(target_relpath, download_in_toto_metadata=download_in_toto_metadata)


def get_latest_version(self, standard_distribution_name, wheel_distribution_name):
'''
Returns:
Expand Down
25 changes: 0 additions & 25 deletions datadog_checks_downloader/datadog_checks/downloader/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,68 +7,50 @@


class CLIError(Exception):


def __init__(self, standard_distribution_name):
self.standard_distribution_name = standard_distribution_name


def __str__(self):
return 'Unexpected CLI error for {}!'.format(self.standard_distribution_name)


class InconsistentSimpleIndex(CLIError):


def __init__(self, href, text):
self.href = href
self.text = text


def __str__(self):
return '{} != {}'.format(self.href, self.text)


class MissingVersions(CLIError):


def __str__(self):
return 'No version found for {} !'.format(self.standard_distribution_name)


class NonCanonicalVersion(CLIError):


def __init__(self, version):
self.version = version


def __str__(self):
return '{} is not a valid PEP 440 version!'.format(self.version)


class NonDatadogPackage(CLIError):


def __str__(self):
return '{} is not a Datadog package!'.format(self.standard_distribution_name)


class NoSuchDatadogPackage(CLIError):


def __str__(self):
return 'Could not find the {} package!'.format(self.standard_distribution_name)


class NoSuchDatadogPackageOrVersion(CLIError):


def __init__(self, standard_distribution_name, version):
super(NoSuchDatadogPackageOrVersion, self).__init__(standard_distribution_name)
self.version = version


def __str__(self):
return 'Either no {} package, or {} version!'.format(self.standard_distribution_name, self.version)

Expand All @@ -77,25 +59,18 @@ def __str__(self):


class TUFInTotoError(Exception):


def __init__(self, target_relpath):
self.target_relpath = target_relpath


def __str__(self):
return 'Unexpected tuf-in-toto error for {}!'.format(self.target_relpath)


class NoInTotoLinkMetadataFound(TUFInTotoError):


def __str__(self):
return 'in-toto link metadata expected, but not found for {}!'.format(self.target_relpath)


class NoInTotoRootLayoutPublicKeysFound(TUFInTotoError):


def __str__(self):
return 'in-toto root layout public keys expected, but not found for {}!'.format(self.target_relpath)
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,7 @@
# NOTE: We assume that setuptools is installed by default.
from pkg_resources import safe_name


EXCEPTIONS = {
'datadog_checks_base',
'datadog_checks_dev',
'datadog_checks_downloader',
}
EXCEPTIONS = {'datadog_checks_base', 'datadog_checks_dev', 'datadog_checks_downloader'}


def substitute(target_relpath):
Expand Down Expand Up @@ -43,5 +38,5 @@ def substitute(target_relpath):
'wheel_distribution_name': wheel_distribution_name,
'package_version': package_version,
'package_github_dir': package_github_dir,
'standard_distribution_name': standard_distribution_name
'standard_distribution_name': standard_distribution_name,
}
12 changes: 2 additions & 10 deletions datadog_checks_downloader/setup.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# (C) Datadog, Inc. 2019
# All rights reserved
# Licensed under a 3-clause BSD style license (see LICENSE)
from setuptools import setup
from codecs import open # To use a consistent encoding
from os import path

from setuptools import setup

HERE = path.abspath(path.dirname(__file__))

Expand All @@ -26,7 +26,6 @@ def get_requirements(fpath):
setup(
# Version should always match one from an agent release
version=ABOUT["__version__"],

name='datadog_checks_downloader',
description='The Datadog Checks Downloader',
long_description=LONG_DESC,
Expand All @@ -36,7 +35,6 @@ def get_requirements(fpath):
author='Datadog',
author_email='[email protected]',
license='BSD',

# See https://pypi.org/classifiers
classifiers=[
'Development Status :: 5 - Production/Stable',
Expand All @@ -49,7 +47,6 @@ def get_requirements(fpath):
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
],

packages=['datadog_checks.downloader'],
# NOTE: Copy over TUF directories, and root metadata.
package_data={
Expand All @@ -61,10 +58,5 @@ def get_requirements(fpath):
]
},
include_package_data=True,

entry_points={
'console_scripts': [
'datadog-checks-downloader=datadog_checks.downloader.cli:download'
],
},
entry_points={'console_scripts': ['datadog-checks-downloader=datadog_checks.downloader.cli:download']},
)
12 changes: 1 addition & 11 deletions datadog_checks_downloader/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ minversion = 2.0
skip_missing_interpreters = true
envlist =
py{27,37}
flake8

[testenv]
dd_check_style = true
usedevelop = true
deps =
-e../datadog_checks_base[deps]
Expand All @@ -14,13 +14,3 @@ commands =
pip install -r requirements.in
pytest -vs --log-cli-level=debug


[testenv:flake8]
skip_install = true
deps = flake8
commands = flake8 .

[flake8]
ignore = E303, E402, E722
exclude = .eggs,.tox,build
max-line-length = 120

0 comments on commit c2a8590

Please sign in to comment.