Skip to content

Commit

Permalink
Refactor logging support
Browse files Browse the repository at this point in the history
  • Loading branch information
xolox committed Sep 29, 2013
1 parent c46d1b5 commit 12f8282
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 59 deletions.
6 changes: 5 additions & 1 deletion redock/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# Semi-standard module versioning.
__version__ = '0.5.7'
__version__ = '0.5.8'

# Silence the logger of an external dependency.
import logging
logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARN)
9 changes: 5 additions & 4 deletions redock/api.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Main API for Redock, a human friendly wrapper around Docker.
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: July 16, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

"""
Expand All @@ -26,15 +26,16 @@
import docker
import humanfriendly
import update_dotdee
import verboselogs

# Initialize the logger.
from redock.logger import get_logger
# Modules included in our package.
from redock.base import BASE_IMAGE_NAME, find_base_image
from redock.utils import (PRIVATE_SSH_KEY, Config, RemoteTerminal,
find_local_ip_addresses, quote_command_line,
slug, summarize_id)

logger = get_logger(__name__)
# Initialize a logger for this module.
logger = verboselogs.VerboseLogger(__name__)

class Container(object):

Expand Down
8 changes: 4 additions & 4 deletions redock/base.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Initialization of the base image used by Redock.
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: July 15, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

"""
Expand All @@ -16,14 +16,14 @@

# External dependencies.
from humanfriendly import Timer
from verboselogs import VerboseLogger

# Modules included in our package.
from redock.logger import get_logger
from redock.utils import (RemoteTerminal, get_ssh_public_key,
select_ubuntu_mirror, summarize_id)

# The logger for this module.
logger = get_logger(__name__)
# Initialize a logger for this module.
logger = VerboseLogger(__name__)

# The repository and tag of Redock's base image.
BASE_IMAGE_REPO = 'redock'
Expand Down
7 changes: 4 additions & 3 deletions redock/bootstrap.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Minimal configuration management specialized to Ubuntu (Debian).
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: August 6, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

"""
Expand Down Expand Up @@ -47,14 +47,15 @@
# External dependencies.
from execnet import makegateway
from humanfriendly import Timer
from verboselogs import VerboseLogger

# Modules included in our package.
from redock.logger import get_logger
from redock.utils import quote_command_line

MIRROR_FILE = os.path.expanduser('~/.redock/ubuntu-mirror.txt')

logger = get_logger(__name__)
# Initialize a logger for this module.
logger = VerboseLogger(__name__)

class Bootstrap(object):

Expand Down
11 changes: 4 additions & 7 deletions redock/cli.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Command line interface for Redock, a human friendly wrapper around Docker.
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: August 6, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

# Standard library modules.
Expand All @@ -18,9 +18,9 @@

# Modules included in our package.
from redock.api import Container, Image
from redock.logger import get_logger, root_logger

logger = get_logger(__name__)
# Initialize a logger for this module.
logger = logging.getLogger(__name__)

def main():
"""
Expand All @@ -42,10 +42,7 @@ def main():
elif option in ('-m', '--message'):
message = value
elif option in ('-v', '--verbose'):
if root_logger.getEffectiveLevel() == logging.INFO:
root_logger.setLevel(logging.VERBOSE)
elif root_logger.getEffectiveLevel() == logging.VERBOSE:
root_logger.setLevel(logging.DEBUG)
coloredlogs.increase_verbosity()
elif option in ('-h', '--help'):
usage()
return
Expand Down
28 changes: 0 additions & 28 deletions redock/logger.py

This file was deleted.

5 changes: 2 additions & 3 deletions redock/tests.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Tests for Redock.
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: August 6, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

# Standard library modules.
Expand All @@ -15,13 +15,12 @@

# Modules included in our package.
from redock.api import Container, Image
from redock.logger import root_logger

class RedockTestCase(unittest.TestCase):

def setUp(self):
coloredlogs.install()
root_logger.setLevel(logging.DEBUG)
coloredlogs.set_level(logging.DEBUG)

def test_image_coercion(self):
image = Image.coerce('redock:test')
Expand Down
15 changes: 7 additions & 8 deletions redock/utils.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Utility functions for Redock.
#
# Author: Peter Odding <peter@peterodding.com>
# Last Change: July 16, 2013
# Last Change: September 30, 2013
# URL: https://github.com/xolox/python-redock

# Standard library modules.
Expand All @@ -16,13 +16,12 @@
import urllib

# External dependencies.
import netifaces
from netifaces import interfaces, ifaddresses
from humanfriendly import format_path
from verboselogs import VerboseLogger

# Modules included in our package.
from redock.logger import get_logger

logger = get_logger(__name__)
# Initialize a logger for this module.
logger = VerboseLogger(__name__)

# Directory on the host system with files generated by Redock.
REDOCK_CONFIG_DIR = os.path.expanduser('~/.redock')
Expand Down Expand Up @@ -212,8 +211,8 @@ def find_local_ip_addresses():
interfaces.
"""
ip_addresses = set()
for name in sorted(netifaces.interfaces(), key=str.lower):
for addresses in netifaces.ifaddresses(name).values():
for name in sorted(interfaces(), key=str.lower):
for addresses in ifaddresses(name).values():
for properties in addresses:
address = properties.get('addr')
# As mentioned above we're specifically *not* interested in loop back interfaces.
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
coloredlogs >= 0.4.3
coloredlogs >= 0.4.7
docker-py == 0.2.0
execnet == 1.1
humanfriendly >= 1.5
Expand Down

0 comments on commit 12f8282

Please sign in to comment.