Skip to content

Commit

Permalink
Allow UUID_CACHE_DIR overriding via env variable.
Browse files Browse the repository at this point in the history
This is declared as NOVACLIENT_UUID_CACHE_DIR.
Resolves bug 932468 , defaulting to previous behaviour.
Added myself to AUTHORS

Change-Id: I154500517d7c882a4a090588a95f4b3bfee70595
  • Loading branch information
Dave Walker (Daviey) authored and Dave Walker (Daviey) committed Feb 15, 2012
1 parent 7601bef commit 1ee77c7
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 24 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -11,6 +11,7 @@ Christopher MacGown <ignoti+github@gmail.com>
Cole Robinson <crobinso@redhat.com>
Dan Prince <dan.prince@rackspace.com>
Dan Wendlandt <dan@nicira.com>
Dave Walker <Dave.Walker@canonical.com>
Dean Troyer <dtroyer@gmail.com>
Ed Leafe <ed@leafe.com>
Edouard Thuleau <edouard1.thuleau@orange.com>
Expand Down
3 changes: 2 additions & 1 deletion novaclient/base.py
Expand Up @@ -26,7 +26,8 @@
from novaclient import utils


UUID_CACHE_DIR = "~/.novaclient"
UUID_CACHE_DIR = utils.env('NOVACLIENT_UUID_CACHE_DIR',
default="~/.novaclient")


# Python 2.4 compat
Expand Down
34 changes: 11 additions & 23 deletions novaclient/shell.py
Expand Up @@ -40,18 +40,6 @@
logger = logging.getLogger(__name__)


def env(*vars, **kwargs):
"""
returns the first environment variable set
if none are non-empty, defaults to '' or keyword arg default
"""
for v in vars:
value = os.environ.get(v, None)
if value:
return value
return kwargs.get('default', '')


class NovaClientArgumentParser(argparse.ArgumentParser):

def __init__(self, *args, **kwargs):
Expand Down Expand Up @@ -95,37 +83,37 @@ def get_base_parser(self):
help="Print debugging output")

parser.add_argument('--username',
default=env('OS_USERNAME', 'NOVA_USERNAME'),
default=utils.env('OS_USERNAME', 'NOVA_USERNAME'),
help='Defaults to env[OS_USERNAME].')

parser.add_argument('--password',
default=env('OS_PASSWORD', 'NOVA_PASSWORD'),
default=utils.env('OS_PASSWORD', 'NOVA_PASSWORD'),
help='Defaults to env[OS_PASSWORD].')

parser.add_argument('--tenant_name',
default=env('OS_TENANT_NAME', 'NOVA_PROJECT_ID'),
default=utils.env('OS_TENANT_NAME', 'NOVA_PROJECT_ID'),
help='Defaults to env[OS_TENANT_NAME].')

parser.add_argument('--auth_url',
default=env('OS_AUTH_URL', 'NOVA_URL'),
default=utils.env('OS_AUTH_URL', 'NOVA_URL'),
help='Defaults to env[OS_AUTH_URL].')

parser.add_argument('--region_name',
default=env('OS_REGION_NAME', 'NOVA_REGION_NAME'),
default=utils.env('OS_REGION_NAME', 'NOVA_REGION_NAME'),
help='Defaults to env[OS_REGION_NAME].')

parser.add_argument('--service_name',
default=env('NOVA_SERVICE_NAME'),
default=utils.env('NOVA_SERVICE_NAME'),
help='Defaults to env[NOVA_SERVICE_NAME]')

parser.add_argument('--endpoint_type',
default=env('NOVA_ENDPOINT_TYPE',
default=utils.env('NOVA_ENDPOINT_TYPE',
default=DEFAULT_NOVA_ENDPOINT_TYPE),
help='Defaults to env[NOVA_ENDPOINT_TYPE] or '
+ DEFAULT_NOVA_ENDPOINT_TYPE + '.')

parser.add_argument('--version',
default=env('NOVA_VERSION', default=DEFAULT_NOVA_VERSION),
default=utils.env('NOVA_VERSION', default=DEFAULT_NOVA_VERSION),
help='Accepts 1.1, defaults to env[NOVA_VERSION].')

parser.add_argument('--insecure',
Expand All @@ -135,17 +123,17 @@ def get_base_parser(self):

# alias for --password, left in for backwards compatibility
parser.add_argument('--apikey',
default=env('NOVA_API_KEY'),
default=utils.env('NOVA_API_KEY'),
help=argparse.SUPPRESS)

# alias for --tenant_name, left in for backward compatibility
parser.add_argument('--projectid',
default=env('NOVA_PROJECT_ID'),
default=utils.env('NOVA_PROJECT_ID'),
help=argparse.SUPPRESS)

# alias for --auth_url, left in for backward compatibility
parser.add_argument('--url',
default=env('NOVA_URL'),
default=utils.env('NOVA_URL'),
help=argparse.SUPPRESS)

return parser
Expand Down
13 changes: 13 additions & 0 deletions novaclient/utils.py
@@ -1,3 +1,4 @@
import os
import prettytable
import sys
import uuid
Expand All @@ -13,6 +14,18 @@ def _decorator(func):
return _decorator


def env(*vars, **kwargs):
"""
returns the first environment variable set
if none are non-empty, defaults to '' or keyword arg default
"""
for v in vars:
value = os.environ.get(v, None)
if value:
return value
return kwargs.get('default', '')


def add_arg(f, *args, **kwargs):
"""Bind CLI arguments to a shell.py `do_foo` function."""

Expand Down

0 comments on commit 1ee77c7

Please sign in to comment.