summaryrefslogtreecommitdiff
path: root/ironic_python_agent
diff options
context:
space:
mode:
authorJosh Gachnang <josh@pcsforeducation.com>2014-03-19 16:19:52 -0700
committerJosh Gachnang <josh@pcsforeducation.com>2014-03-19 16:19:52 -0700
commit5914e36b30d429648d626ee37f8969bfbf450186 (patch)
treef935a37dc9175f4016fdb73a616b7341ec9d6f05 /ironic_python_agent
parentb30d345c2e8ec77935558f75080f734daa3ca4f0 (diff)
downloadironic-python-agent-5914e36b30d429648d626ee37f8969bfbf450186.tar.gz
Replacing teeth/overlord with ipa/ironic
Diffstat (limited to 'ironic_python_agent')
-rw-r--r--ironic_python_agent/agent.py47
-rw-r--r--ironic_python_agent/api/app.py2
-rw-r--r--ironic_python_agent/api/config.py4
-rw-r--r--ironic_python_agent/api/controllers/root.py6
-rw-r--r--ironic_python_agent/api/controllers/v1/__init__.py8
-rw-r--r--ironic_python_agent/api/controllers/v1/command.py2
-rw-r--r--ironic_python_agent/api/controllers/v1/link.py2
-rw-r--r--ironic_python_agent/api/controllers/v1/status.py2
-rw-r--r--ironic_python_agent/base.py6
-rw-r--r--ironic_python_agent/cmd/agent.py6
-rw-r--r--ironic_python_agent/configdrive.py4
-rw-r--r--ironic_python_agent/decom.py2
-rw-r--r--ironic_python_agent/decorators.py2
-rw-r--r--ironic_python_agent/errors.py16
-rw-r--r--ironic_python_agent/hardware.py14
-rw-r--r--ironic_python_agent/ironic_api_client.py (renamed from ironic_python_agent/overlord_agent_api.py)4
-rw-r--r--ironic_python_agent/openstack/common/gettextutils.py14
-rw-r--r--ironic_python_agent/openstack/common/importutils.py2
-rw-r--r--ironic_python_agent/openstack/common/jsonutils.py6
-rw-r--r--ironic_python_agent/openstack/common/log.py10
-rwxr-xr-xironic_python_agent/shell/copy_configdrive_to_disk.sh2
-rw-r--r--ironic_python_agent/standby.py12
-rw-r--r--ironic_python_agent/tests/agent.py29
-rw-r--r--ironic_python_agent/tests/api.py17
-rw-r--r--ironic_python_agent/tests/configdrive.py12
-rw-r--r--ironic_python_agent/tests/decom.py2
-rw-r--r--ironic_python_agent/tests/hardware.py2
-rw-r--r--ironic_python_agent/tests/ironic_api_client.py (renamed from ironic_python_agent/tests/overlord_agent_api.py)12
-rw-r--r--ironic_python_agent/tests/standby.py26
29 files changed, 141 insertions, 132 deletions
diff --git a/ironic_python_agent/agent.py b/ironic_python_agent/agent.py
index 261a4877..82b8792f 100644
--- a/ironic_python_agent/agent.py
+++ b/ironic_python_agent/agent.py
@@ -18,26 +18,26 @@ import random
import threading
import time
+from ironic_python_agent.api import app
+from ironic_python_agent import base
+from ironic_python_agent import encoding
+from ironic_python_agent import errors
+from ironic_python_agent import hardware
+from ironic_python_agent import ironic_api_client
+from ironic_python_agent.openstack.common import log
+from ironic_python_agent import utils
+
import pkg_resources
from stevedore import driver
from wsgiref import simple_server
-from teeth_agent.api import app
-from teeth_agent import base
-from teeth_agent import encoding
-from teeth_agent import errors
-from teeth_agent import hardware
-from teeth_agent.openstack.common import log
-from teeth_agent import overlord_agent_api
-from teeth_agent import utils
-
def _time():
"""Wraps time.time() for simpler testing."""
return time.time()
-class TeethAgentStatus(encoding.Serializable):
+class IronicPythonAgentStatus(encoding.Serializable):
def __init__(self, mode, started_at, version):
self.mode = mode
self.started_at = started_at
@@ -52,7 +52,7 @@ class TeethAgentStatus(encoding.Serializable):
])
-class TeethAgentHeartbeater(threading.Thread):
+class IronicPythonAgentHeartbeater(threading.Thread):
# If we could wait at most N seconds between heartbeats (or in case of an
# error) we will instead wait r x N seconds, where r is a random value
# between these multipliers.
@@ -67,10 +67,10 @@ class TeethAgentHeartbeater(threading.Thread):
backoff_factor = 2.7
def __init__(self, agent):
- super(TeethAgentHeartbeater, self).__init__()
+ super(IronicPythonAgentHeartbeater, self).__init__()
self.agent = agent
self.hardware = hardware.get_manager()
- self.api = overlord_agent_api.APIClient(agent.api_url)
+ self.api = ironic_api_client.APIClient(agent.api_url)
self.log = log.getLogger(__name__)
self.stop_event = threading.Event()
self.error_delay = self.initial_delay
@@ -111,17 +111,18 @@ class TeethAgentHeartbeater(threading.Thread):
return self.join()
-class TeethAgent(object):
+class IronicPythonAgent(object):
def __init__(self, api_url, advertise_address, listen_address):
self.api_url = api_url
- self.api_client = overlord_agent_api.APIClient(self.api_url)
+ self.api_client = ironic_api_client.APIClient(self.api_url)
self.listen_address = listen_address
self.advertise_address = advertise_address
self.mode_implementation = None
- self.version = pkg_resources.get_distribution('teeth-agent').version
+ self.version = pkg_resources.get_distribution('ironic-python-agent')\
+ .version
self.api = app.VersionSelectorApplication(self)
self.command_results = utils.get_ordereddict()
- self.heartbeater = TeethAgentHeartbeater(self)
+ self.heartbeater = IronicPythonAgentHeartbeater(self)
self.hardware = hardware.get_manager()
self.command_lock = threading.Lock()
self.log = log.getLogger(__name__)
@@ -136,7 +137,7 @@ class TeethAgent(object):
def get_status(self):
"""Retrieve a serializable status."""
- return TeethAgentStatus(
+ return IronicPythonAgentStatus(
mode=self.get_mode_name(),
started_at=self.started_at,
version=self.version
@@ -209,7 +210,7 @@ class TeethAgent(object):
return result
def run(self):
- """Run the Teeth Agent."""
+ """Run the Ironic Python Agent."""
self.started_at = _time()
# Get the UUID so we can heartbeat to Ironic
self.node = self.api_client.lookup_node(
@@ -232,7 +233,7 @@ class TeethAgent(object):
def _load_mode_implementation(mode_name):
mgr = driver.DriverManager(
- namespace='teeth_agent.modes',
+ namespace='ironic_python_agent.modes',
name=mode_name.lower(),
invoke_on_load=True,
invoke_args=[],
@@ -246,6 +247,6 @@ def build_agent(api_url,
listen_host,
listen_port):
- return TeethAgent(api_url,
- (advertise_host, advertise_port),
- (listen_host, listen_port))
+ return IronicPythonAgent(api_url,
+ (advertise_host, advertise_port),
+ (listen_host, listen_port))
diff --git a/ironic_python_agent/api/app.py b/ironic_python_agent/api/app.py
index 247001d4..a45307d9 100644
--- a/ironic_python_agent/api/app.py
+++ b/ironic_python_agent/api/app.py
@@ -17,7 +17,7 @@ limitations under the License.
import pecan
from pecan import hooks
-from teeth_agent.api import config
+from ironic_python_agent.api import config
class AgentHook(hooks.PecanHook):
diff --git a/ironic_python_agent/api/config.py b/ironic_python_agent/api/config.py
index 8814a1c1..938af6a0 100644
--- a/ironic_python_agent/api/config.py
+++ b/ironic_python_agent/api/config.py
@@ -24,8 +24,8 @@ server = {
# Pecan Application Configurations
# See https://pecan.readthedocs.org/en/latest/configuration.html#application-configuration # noqa
app = {
- 'root': 'teeth_agent.api.controllers.root.RootController',
- 'modules': ['teeth_agent.api'],
+ 'root': 'ironic_python_agent.api.controllers.root.RootController',
+ 'modules': ['ironic_python_agent.api'],
'static_root': '%(confdir)s/public',
'debug': False,
'enable_acl': True,
diff --git a/ironic_python_agent/api/controllers/root.py b/ironic_python_agent/api/controllers/root.py
index 4552e731..46caaad0 100644
--- a/ironic_python_agent/api/controllers/root.py
+++ b/ironic_python_agent/api/controllers/root.py
@@ -18,9 +18,9 @@ from pecan import rest
from wsme import types as wtypes
import wsmeext.pecan as wsme_pecan
-from teeth_agent.api.controllers import v1
-from teeth_agent.api.controllers.v1 import base
-from teeth_agent.api.controllers.v1 import link
+from ironic_python_agent.api.controllers import v1
+from ironic_python_agent.api.controllers.v1 import base
+from ironic_python_agent.api.controllers.v1 import link
class Version(base.APIBase):
diff --git a/ironic_python_agent/api/controllers/v1/__init__.py b/ironic_python_agent/api/controllers/v1/__init__.py
index a2bc16c7..726a0bf4 100644
--- a/ironic_python_agent/api/controllers/v1/__init__.py
+++ b/ironic_python_agent/api/controllers/v1/__init__.py
@@ -22,10 +22,10 @@ from pecan import rest
from wsme import types as wtypes
import wsmeext.pecan as wsme_pecan
-from teeth_agent.api.controllers.v1 import base
-from teeth_agent.api.controllers.v1 import command
-from teeth_agent.api.controllers.v1 import link
-from teeth_agent.api.controllers.v1 import status
+from ironic_python_agent.api.controllers.v1 import base
+from ironic_python_agent.api.controllers.v1 import command
+from ironic_python_agent.api.controllers.v1 import link
+from ironic_python_agent.api.controllers.v1 import status
class MediaType(base.APIBase):
diff --git a/ironic_python_agent/api/controllers/v1/command.py b/ironic_python_agent/api/controllers/v1/command.py
index 81100000..5815c4fa 100644
--- a/ironic_python_agent/api/controllers/v1/command.py
+++ b/ironic_python_agent/api/controllers/v1/command.py
@@ -18,7 +18,7 @@ from pecan import rest
from wsme import types
from wsmeext import pecan as wsme_pecan
-from teeth_agent.api.controllers.v1 import base
+from ironic_python_agent.api.controllers.v1 import base
class CommandResult(base.APIBase):
diff --git a/ironic_python_agent/api/controllers/v1/link.py b/ironic_python_agent/api/controllers/v1/link.py
index 987eb386..7fa7f982 100644
--- a/ironic_python_agent/api/controllers/v1/link.py
+++ b/ironic_python_agent/api/controllers/v1/link.py
@@ -15,7 +15,7 @@
from wsme import types as wtypes
-from teeth_agent.api.controllers.v1 import base
+from ironic_python_agent.api.controllers.v1 import base
class Link(base.APIBase):
diff --git a/ironic_python_agent/api/controllers/v1/status.py b/ironic_python_agent/api/controllers/v1/status.py
index c631ee59..7916f09c 100644
--- a/ironic_python_agent/api/controllers/v1/status.py
+++ b/ironic_python_agent/api/controllers/v1/status.py
@@ -18,7 +18,7 @@ from pecan import rest
from wsme import types
from wsmeext import pecan as wsme_pecan
-from teeth_agent.api.controllers.v1 import base
+from ironic_python_agent.api.controllers.v1 import base
class AgentStatus(base.APIBase):
diff --git a/ironic_python_agent/base.py b/ironic_python_agent/base.py
index 2e432f78..473c0444 100644
--- a/ironic_python_agent/base.py
+++ b/ironic_python_agent/base.py
@@ -18,9 +18,9 @@ import threading
import uuid
-from teeth_agent import encoding
-from teeth_agent import errors
-from teeth_agent.openstack.common import log
+from ironic_python_agent import encoding
+from ironic_python_agent import errors
+from ironic_python_agent.openstack.common import log
class AgentCommandStatus(object):
diff --git a/ironic_python_agent/cmd/agent.py b/ironic_python_agent/cmd/agent.py
index a30b8a9c..e12d37d0 100644
--- a/ironic_python_agent/cmd/agent.py
+++ b/ironic_python_agent/cmd/agent.py
@@ -16,17 +16,17 @@ limitations under the License.
import argparse
-from teeth_agent import agent
+from ironic_python_agent import agent
def run():
parser = argparse.ArgumentParser(
description=('An agent that handles decomissioning and provisioning'
- ' on behalf of teeth-overlord.'))
+ ' on behalf of Ironic.'))
parser.add_argument('--api-url',
required=True,
- help='URL of the Teeth agent API')
+ help='URL of the Ironic API')
parser.add_argument('--listen-host',
default='0.0.0.0',
diff --git a/ironic_python_agent/configdrive.py b/ironic_python_agent/configdrive.py
index d4bec9b0..d581c661 100644
--- a/ironic_python_agent/configdrive.py
+++ b/ironic_python_agent/configdrive.py
@@ -15,9 +15,11 @@ limitations under the License.
"""
import base64
+
+from ironic_python_agent import utils
+
import json
import os
-from teeth_agent import utils
class ConfigDriveWriter(object):
diff --git a/ironic_python_agent/decom.py b/ironic_python_agent/decom.py
index b1fe1f10..ac841ae1 100644
--- a/ironic_python_agent/decom.py
+++ b/ironic_python_agent/decom.py
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
-from teeth_agent import base
+from ironic_python_agent import base
class DecomMode(base.BaseAgentMode):
diff --git a/ironic_python_agent/decorators.py b/ironic_python_agent/decorators.py
index 01cd5d7d..99213c9f 100644
--- a/ironic_python_agent/decorators.py
+++ b/ironic_python_agent/decorators.py
@@ -15,7 +15,7 @@ limitations under the License.
"""
import functools
-from teeth_agent import base
+from ironic_python_agent import base
def async_command(validator=None):
diff --git a/ironic_python_agent/errors.py b/ironic_python_agent/errors.py
index 6ba45316..ff4960dc 100644
--- a/ironic_python_agent/errors.py
+++ b/ironic_python_agent/errors.py
@@ -14,12 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
-from teeth_agent import encoding
-from teeth_agent import utils
+from ironic_python_agent import encoding
+from ironic_python_agent import utils
class RESTError(Exception, encoding.Serializable):
- """Base class for errors generated in teeth."""
+ """Base class for errors generated in ironic-python-client."""
message = 'An error occurred'
details = 'An unexpected error occurred. Please try back later.'
status_code = 500
@@ -91,17 +91,17 @@ class RequestedObjectNotFoundError(NotFound):
self.details = details
-class OverlordAPIError(RESTError):
+class IronicAPIError(RESTError):
"""Error raised when a call to the agent API fails."""
- message = 'Error in call to teeth-agent-api.'
+ message = 'Error in call to ironic-api.'
def __init__(self, details):
- super(OverlordAPIError, self).__init__(details)
+ super(IronicAPIError, self).__init__(details)
self.details = details
-class HeartbeatError(OverlordAPIError):
+class HeartbeatError(IronicAPIError):
"""Error raised when a heartbeat to the agent API fails."""
message = 'Error heartbeating to agent API.'
@@ -110,7 +110,7 @@ class HeartbeatError(OverlordAPIError):
super(HeartbeatError, self).__init__(details)
-class LookupNodeError(OverlordAPIError):
+class LookupNodeError(IronicAPIError):
"""Error raised when the node configuration lookup to the Ironic API
fails.
"""
diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py
index d6ed9d5d..f41e306d 100644
--- a/ironic_python_agent/hardware.py
+++ b/ironic_python_agent/hardware.py
@@ -20,9 +20,9 @@ import subprocess
import stevedore
-from teeth_agent import encoding
-from teeth_agent.openstack.common import log
-from teeth_agent import utils
+from ironic_python_agent import encoding
+from ironic_python_agent.openstack.common import log
+from ironic_python_agent import utils
_global_manager = None
@@ -30,9 +30,9 @@ _global_manager = None
class HardwareSupport(object):
"""These are just guidelines to suggest values that might be returned by
calls to `evaluate_hardware_support`. No HardwareManager in mainline
- teeth-agent will ever offer a value greater than `MAINLINE`. Service
- Providers should feel free to return values greater than SERVICE_PROVIDER
- to distinguish between additional levels of support.
+ ironic-python-agent will ever offer a value greater than `MAINLINE`.
+ Service Providers should feel free to return values greater than
+ SERVICE_PROVIDER to distinguish between additional levels of support.
"""
NONE = 0
GENERIC = 1
@@ -164,7 +164,7 @@ def get_manager():
if not _global_manager:
LOG = log.getLogger()
extension_manager = stevedore.ExtensionManager(
- namespace='teeth_agent.hardware_managers',
+ namespace='ironic_python_agent.hardware_managers',
invoke_on_load=True)
# There will always be at least one extension available (the
diff --git a/ironic_python_agent/overlord_agent_api.py b/ironic_python_agent/ironic_api_client.py
index fda86b22..a3f06dee 100644
--- a/ironic_python_agent/overlord_agent_api.py
+++ b/ironic_python_agent/ironic_api_client.py
@@ -18,8 +18,8 @@ import json
import requests
-from teeth_agent import encoding
-from teeth_agent import errors
+from ironic_python_agent import encoding
+from ironic_python_agent import errors
class APIClient(object):
diff --git a/ironic_python_agent/openstack/common/gettextutils.py b/ironic_python_agent/openstack/common/gettextutils.py
index edcf14c1..9c13e80a 100644
--- a/ironic_python_agent/openstack/common/gettextutils.py
+++ b/ironic_python_agent/openstack/common/gettextutils.py
@@ -19,7 +19,7 @@ gettext for openstack-common modules.
Usual usage in an openstack.common module:
- from teeth_agent.openstack.common.gettextutils import _
+ from ironic_python_agent.openstack.common.gettextutils import _
"""
import copy
@@ -32,15 +32,15 @@ import os
from babel import localedata
import six
-_localedir = os.environ.get('teeth_agent'.upper() + '_LOCALEDIR')
-_t = gettext.translation('teeth_agent', localedir=_localedir, fallback=True)
+_localedir = os.environ.get('ironic_python_agent'.upper() + '_LOCALEDIR')
+_t = gettext.translation('ironic_python_agent', localedir=_localedir, fallback=True)
# We use separate translation catalogs for each log level, so set up a
# mapping between the log level name and the translator. The domain
# for the log level is project_name + "-log-" + log_level so messages
# for each level end up in their own catalog.
_t_log_levels = dict(
- (level, gettext.translation('teeth_agent' + '-log-' + level,
+ (level, gettext.translation('ironic_python_agent' + '-log-' + level,
localedir=_localedir,
fallback=True))
for level in ['info', 'warning', 'error', 'critical']
@@ -64,7 +64,7 @@ def enable_lazy():
def _(msg):
if USE_LAZY:
- return Message(msg, domain='teeth_agent')
+ return Message(msg, domain='ironic_python_agent')
else:
if six.PY3:
return _t.gettext(msg)
@@ -75,7 +75,7 @@ def _log_translation(msg, level):
"""Build a single translation of a log message
"""
if USE_LAZY:
- return Message(msg, domain='teeth_agent' + '-log-' + level)
+ return Message(msg, domain='ironic_python_agent' + '-log-' + level)
else:
translator = _t_log_levels[level]
if six.PY3:
@@ -152,7 +152,7 @@ class Message(six.text_type):
"""
def __new__(cls, msgid, msgtext=None, params=None,
- domain='teeth_agent', *args):
+ domain='ironic_python_agent', *args):
"""Create a new Message object.
In order for translation to work gettext requires a message ID, this
diff --git a/ironic_python_agent/openstack/common/importutils.py b/ironic_python_agent/openstack/common/importutils.py
index 42b36f67..d1590fb2 100644
--- a/ironic_python_agent/openstack/common/importutils.py
+++ b/ironic_python_agent/openstack/common/importutils.py
@@ -59,7 +59,7 @@ def import_module(import_str):
def import_versioned_module(version, submodule=None):
- module = 'teeth_agent.v%s' % version
+ module = 'ironic_python_agent.v%s' % version
if submodule:
module = '.'.join((module, submodule))
return import_module(module)
diff --git a/ironic_python_agent/openstack/common/jsonutils.py b/ironic_python_agent/openstack/common/jsonutils.py
index bbc83368..fca59345 100644
--- a/ironic_python_agent/openstack/common/jsonutils.py
+++ b/ironic_python_agent/openstack/common/jsonutils.py
@@ -40,9 +40,9 @@ import json
import six
import six.moves.xmlrpc_client as xmlrpclib
-from teeth_agent.openstack.common import gettextutils
-from teeth_agent.openstack.common import importutils
-from teeth_agent.openstack.common import timeutils
+from ironic_python_agent.openstack.common import gettextutils
+from ironic_python_agent.openstack.common import importutils
+from ironic_python_agent.openstack.common import timeutils
netaddr = importutils.try_import("netaddr")
diff --git a/ironic_python_agent/openstack/common/log.py b/ironic_python_agent/openstack/common/log.py
index 20f4ca96..45a3ec56 100644
--- a/ironic_python_agent/openstack/common/log.py
+++ b/ironic_python_agent/openstack/common/log.py
@@ -41,10 +41,10 @@ from oslo.config import cfg
import six
from six import moves
-from teeth_agent.openstack.common.gettextutils import _
-from teeth_agent.openstack.common import importutils
-from teeth_agent.openstack.common import jsonutils
-from teeth_agent.openstack.common import local
+from ironic_python_agent.openstack.common.gettextutils import _
+from ironic_python_agent.openstack.common import importutils
+from ironic_python_agent.openstack.common import jsonutils
+from ironic_python_agent.openstack.common import local
_DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
@@ -537,7 +537,7 @@ def _setup_logging_from_conf(project, version):
if CONF.publish_errors:
handler = importutils.import_object(
- "teeth_agent.openstack.common.log_handler.PublishErrorsHandler",
+ "ironic_python_agent.openstack.common.log_handler.PublishErrorsHandler",
logging.ERROR)
log_root.addHandler(handler)
diff --git a/ironic_python_agent/shell/copy_configdrive_to_disk.sh b/ironic_python_agent/shell/copy_configdrive_to_disk.sh
index daeae1d7..2a67389f 100755
--- a/ironic_python_agent/shell/copy_configdrive_to_disk.sh
+++ b/ironic_python_agent/shell/copy_configdrive_to_disk.sh
@@ -37,7 +37,7 @@ genisoimage \
-allow-lowercase \
-allow-multidot \
-l \
- -publisher "teeth" \
+ -publisher "ironic" \
-J \
-r \
-V 'config-2' \
diff --git a/ironic_python_agent/standby.py b/ironic_python_agent/standby.py
index 3e10f16a..c19c0393 100644
--- a/ironic_python_agent/standby.py
+++ b/ironic_python_agent/standby.py
@@ -20,12 +20,12 @@ import requests
import subprocess
import time
-from teeth_agent import base
-from teeth_agent import configdrive
-from teeth_agent import decorators
-from teeth_agent import errors
-from teeth_agent import hardware
-from teeth_agent.openstack.common import log
+from ironic_python_agent import base
+from ironic_python_agent import configdrive
+from ironic_python_agent import decorators
+from ironic_python_agent import errors
+from ironic_python_agent import hardware
+from ironic_python_agent.openstack.common import log
LOG = log.getLogger(__name__)
diff --git a/ironic_python_agent/tests/agent.py b/ironic_python_agent/tests/agent.py
index 8f90e7a6..4fc5d082 100644
--- a/ironic_python_agent/tests/agent.py
+++ b/ironic_python_agent/tests/agent.py
@@ -18,17 +18,16 @@ import json
import time
import unittest
+from ironic_python_agent import agent
+from ironic_python_agent import base
+from ironic_python_agent import encoding
+from ironic_python_agent import errors
+from ironic_python_agent import hardware
+
import mock
import pkg_resources
from wsgiref import simple_server
-
-from teeth_agent import agent
-from teeth_agent import base
-from teeth_agent import encoding
-from teeth_agent import errors
-from teeth_agent import hardware
-
EXPECTED_ERROR = RuntimeError('command execution failed')
@@ -47,13 +46,13 @@ class FakeMode(base.BaseAgentMode):
class TestHeartbeater(unittest.TestCase):
def setUp(self):
self.mock_agent = mock.Mock()
- self.heartbeater = agent.TeethAgentHeartbeater(self.mock_agent)
+ self.heartbeater = agent.IronicPythonAgentHeartbeater(self.mock_agent)
self.heartbeater.api = mock.Mock()
self.heartbeater.hardware = mock.create_autospec(
hardware.HardwareManager)
self.heartbeater.stop_event = mock.Mock()
- @mock.patch('teeth_agent.agent._time')
+ @mock.patch('ironic_python_agent.agent._time')
@mock.patch('random.uniform')
def test_heartbeat(self, mocked_uniform, mocked_time):
time_responses = []
@@ -119,9 +118,10 @@ class TestHeartbeater(unittest.TestCase):
class TestBaseAgent(unittest.TestCase):
def setUp(self):
self.encoder = encoding.RESTJSONEncoder(indent=4)
- self.agent = agent.TeethAgent('https://fake_api.example.org:8081/',
- ('203.0.113.1', 9990),
- ('192.0.2.1', 9999))
+ self.agent = agent.IronicPythonAgent('https://fake_api.example.'
+ 'org:8081/',
+ ('203.0.113.1', 9990),
+ ('192.0.2.1', 9999))
def assertEqualEncoded(self, a, b):
# Evidently JSONEncoder.default() can't handle None (??) so we have to
@@ -136,10 +136,11 @@ class TestBaseAgent(unittest.TestCase):
self.agent.started_at = started_at
status = self.agent.get_status()
- self.assertTrue(isinstance(status, agent.TeethAgentStatus))
+ self.assertTrue(isinstance(status, agent.IronicPythonAgentStatus))
self.assertEqual(status.started_at, started_at)
self.assertEqual(status.version,
- pkg_resources.get_distribution('teeth-agent').version)
+ pkg_resources.get_distribution('ironic-python-agent')
+ .version)
def test_execute_command(self):
do_something_impl = mock.Mock()
diff --git a/ironic_python_agent/tests/api.py b/ironic_python_agent/tests/api.py
index c1fc622e..08f9b0fc 100644
--- a/ironic_python_agent/tests/api.py
+++ b/ironic_python_agent/tests/api.py
@@ -21,17 +21,17 @@ import unittest
import pecan
import pecan.testing
-from teeth_agent import agent
-from teeth_agent import base
+from ironic_python_agent import agent
+from ironic_python_agent import base
PATH_PREFIX = '/v1'
-class TestTeethAPI(unittest.TestCase):
+class TestIronicAPI(unittest.TestCase):
def setUp(self):
- super(TestTeethAPI, self).setUp()
+ super(TestIronicAPI, self).setUp()
self.mock_agent = mock.MagicMock()
self.app = self._make_app(self.mock_agent)
@@ -41,8 +41,9 @@ class TestTeethAPI(unittest.TestCase):
def _make_app(self, enable_acl=False):
self.config = {
'app': {
- 'root': 'teeth_agent.api.controllers.root.RootController',
- 'modules': ['teeth_agent.api'],
+ 'root': 'ironic_python_agent.api.controllers.root.'
+ 'RootController',
+ 'modules': ['ironic_python_agent.api'],
'static_root': '',
'debug': True,
},
@@ -165,7 +166,9 @@ class TestTeethAPI(unittest.TestCase):
self.assertTrue('commands' in data.keys())
def test_get_agent_status(self):
- status = agent.TeethAgentStatus('TEST_MODE', time.time(), 'v72ac9')
+ status = agent.IronicPythonAgentStatus('TEST_MODE',
+ time.time(),
+ 'v72ac9')
self.mock_agent.get_status.return_value = status
response = self.get_json('/status')
diff --git a/ironic_python_agent/tests/configdrive.py b/ironic_python_agent/tests/configdrive.py
index 915d939a..fffedbeb 100644
--- a/ironic_python_agent/tests/configdrive.py
+++ b/ironic_python_agent/tests/configdrive.py
@@ -21,8 +21,8 @@ import json
import mock
import unittest
-from teeth_agent import configdrive
-from teeth_agent import utils
+from ironic_python_agent import configdrive
+from ironic_python_agent import utils
class ConfigDriveWriterTestCase(unittest.TestCase):
@@ -45,7 +45,7 @@ class ConfigDriveWriterTestCase(unittest.TestCase):
def test_write_no_files(self, open_mock, makedirs_mock):
metadata = {'admin_pass': 'password', 'hostname': 'test'}
json_metadata = json.dumps(metadata)
- metadata_path = '/lol/teeth/latest/meta_data.json'
+ metadata_path = '/lol/ironic/latest/meta_data.json'
for k, v in metadata.iteritems():
self.writer.add_metadata(k, v)
@@ -53,12 +53,12 @@ class ConfigDriveWriterTestCase(unittest.TestCase):
open_mock.return_value.__exit__ = mock.Mock()
write_mock = open_mock.return_value.write
- self.writer.write('/lol', prefix='teeth', version='latest')
+ self.writer.write('/lol', prefix='ironic', version='latest')
open_mock.assert_called_once_with(metadata_path, 'wb')
write_mock.assert_called_once_with(json_metadata)
makedirs_calls = [
- mock.call('/lol/teeth/latest'),
- mock.call('/lol/teeth/content')
+ mock.call('/lol/ironic/latest'),
+ mock.call('/lol/ironic/content')
]
self.assertEqual(makedirs_calls, makedirs_mock.call_args_list)
diff --git a/ironic_python_agent/tests/decom.py b/ironic_python_agent/tests/decom.py
index 920f2b97..d5590971 100644
--- a/ironic_python_agent/tests/decom.py
+++ b/ironic_python_agent/tests/decom.py
@@ -16,7 +16,7 @@ limitations under the License.
import unittest
-from teeth_agent import decom
+from ironic_python_agent import decom
class TestDecomMode(unittest.TestCase):
diff --git a/ironic_python_agent/tests/hardware.py b/ironic_python_agent/tests/hardware.py
index 8e4a75d6..4db844cf 100644
--- a/ironic_python_agent/tests/hardware.py
+++ b/ironic_python_agent/tests/hardware.py
@@ -17,7 +17,7 @@ limitations under the License.
import mock
import unittest
-from teeth_agent import hardware
+from ironic_python_agent import hardware
class TestGenericHardwareManager(unittest.TestCase):
diff --git a/ironic_python_agent/tests/overlord_agent_api.py b/ironic_python_agent/tests/ironic_api_client.py
index 20f92ad7..8dd4dfb2 100644
--- a/ironic_python_agent/tests/overlord_agent_api.py
+++ b/ironic_python_agent/tests/ironic_api_client.py
@@ -20,16 +20,16 @@ import mock
import time
import unittest
-from teeth_agent import errors
-from teeth_agent import hardware
-from teeth_agent import overlord_agent_api
+from ironic_python_agent import errors
+from ironic_python_agent import hardware
+from ironic_python_agent import ironic_api_client
-API_URL = 'http://agent-api.overlord.example.org/'
+API_URL = 'http://agent-api.ironic.example.org/'
-class TestBaseTeethAgent(unittest.TestCase):
+class TestBaseIronicPythonAgent(unittest.TestCase):
def setUp(self):
- self.api_client = overlord_agent_api.APIClient(API_URL)
+ self.api_client = ironic_api_client.APIClient(API_URL)
self.hardware_info = [
hardware.HardwareInfo(hardware.HardwareType.MAC_ADDRESS,
'aa:bb:cc:dd:ee:ff'),
diff --git a/ironic_python_agent/tests/standby.py b/ironic_python_agent/tests/standby.py
index f5f11626..bfaa896c 100644
--- a/ironic_python_agent/tests/standby.py
+++ b/ironic_python_agent/tests/standby.py
@@ -17,8 +17,8 @@ limitations under the License.
import mock
import unittest
-from teeth_agent import errors
-from teeth_agent import standby
+from ironic_python_agent import errors
+from ironic_python_agent import standby
class TestStandbyMode(unittest.TestCase):
@@ -177,7 +177,7 @@ class TestStandbyMode(unittest.TestCase):
standby._download_image,
image_info)
- @mock.patch('teeth_agent.standby._verify_image', autospec=True)
+ @mock.patch('ironic_python_agent.standby._verify_image', autospec=True)
@mock.patch('__builtin__.open', autospec=True)
@mock.patch('requests.get', autospec=True)
def test_download_image_verify_fails(self, requests_mock, open_mock,
@@ -218,9 +218,9 @@ class TestStandbyMode(unittest.TestCase):
self.assertFalse(verified)
self.assertEqual(md5_mock.call_count, 1)
- @mock.patch('teeth_agent.hardware.get_manager', autospec=True)
- @mock.patch('teeth_agent.standby._write_image', autospec=True)
- @mock.patch('teeth_agent.standby._download_image', autospec=True)
+ @mock.patch('ironic_python_agent.hardware.get_manager', autospec=True)
+ @mock.patch('ironic_python_agent.standby._write_image', autospec=True)
+ @mock.patch('ironic_python_agent.standby._download_image', autospec=True)
def test_cache_image(self, download_mock, write_mock, hardware_mock):
image_info = self._build_fake_image_info()
download_mock.return_value = None
@@ -236,13 +236,15 @@ class TestStandbyMode(unittest.TestCase):
self.assertEqual('SUCCEEDED', async_result.command_status)
self.assertEqual(None, async_result.command_result)
- @mock.patch('teeth_agent.standby._copy_configdrive_to_disk', autospec=True)
- @mock.patch('teeth_agent.standby.configdrive.write_configdrive',
+ @mock.patch('ironic_python_agent.standby._copy_configdrive_to_disk',
+ autospec=True)
+ @mock.patch('ironic_python_agent.standby.configdrive.write_configdrive',
+ autospec=True)
+ @mock.patch('ironic_python_agent.hardware.get_manager', autospec=True)
+ @mock.patch('ironic_python_agent.standby._write_image', autospec=True)
+ @mock.patch('ironic_python_agent.standby._download_image', autospec=True)
+ @mock.patch('ironic_python_agent.standby._configdrive_location',
autospec=True)
- @mock.patch('teeth_agent.hardware.get_manager', autospec=True)
- @mock.patch('teeth_agent.standby._write_image', autospec=True)
- @mock.patch('teeth_agent.standby._download_image', autospec=True)
- @mock.patch('teeth_agent.standby._configdrive_location', autospec=True)
def test_prepare_image(self,
location_mock,
download_mock,