diff --git a/akanda/__init__.py b/akanda/__init__.py deleted file mode 100644 index 5566347d..00000000 --- a/akanda/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2014 DreamHost, LLC -# -# Author: DreamHost, LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - - -# Copyright 2014 DreamHost, LLC -# -# Author: DreamHost, LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - - -__import__('pkg_resources').declare_namespace(__name__) diff --git a/akanda/rug b/akanda/rug deleted file mode 120000 index 41e5cfdc..00000000 --- a/akanda/rug +++ /dev/null @@ -1 +0,0 @@ -../astara \ No newline at end of file diff --git a/astara/api/akanda_client.py b/astara/api/astara_client.py similarity index 88% rename from astara/api/akanda_client.py rename to astara/api/astara_client.py index 727cb267..883813a5 100644 --- a/astara/api/akanda_client.py +++ b/astara/api/astara_client.py @@ -21,9 +21,9 @@ from oslo_config import cfg from oslo_log import log as logging from oslo_serialization import jsonutils -AKANDA_ULA_PREFIX = 'fdca:3ba5:a17a:acda::/64' -AKANDA_MGT_SERVICE_PORT = 5000 -AKANDA_BASE_PATH = '/v1/' +ASTARA_ULA_PREFIX = 'fdca:3ba5:a17a:acda::/64' +ASTARA_MGT_SERVICE_PORT = 5000 +ASTARA_BASE_PATH = '/v1/' LOG = logging.getLogger(__name__) CONF = cfg.CONF @@ -49,7 +49,7 @@ def _get_proxyless_session(): def is_alive(host, port): - path = AKANDA_BASE_PATH + 'firewall/rules' + path = ASTARA_BASE_PATH + 'firewall/rules' try: s = _get_proxyless_session() r = s.get(_mgt_url(host, port, path), timeout=cfg.CONF.alive_timeout) @@ -61,14 +61,14 @@ def is_alive(host, port): def get_interfaces(host, port): - path = AKANDA_BASE_PATH + 'system/interfaces' + path = ASTARA_BASE_PATH + 'system/interfaces' s = _get_proxyless_session() r = s.get(_mgt_url(host, port, path), timeout=30) return r.json().get('interfaces', []) def update_config(host, port, config_dict): - path = AKANDA_BASE_PATH + 'system/config' + path = ASTARA_BASE_PATH + 'system/config' headers = {'Content-type': 'application/json'} s = _get_proxyless_session() @@ -85,7 +85,7 @@ def update_config(host, port, config_dict): def read_labels(host, port): - path = AKANDA_BASE_PATH + 'firewall/labels' + path = ASTARA_BASE_PATH + 'firewall/labels' s = _get_proxyless_session() r = s.post(_mgt_url(host, port, path), timeout=30) return r.json().get('labels', []) diff --git a/astara/api/config/common.py b/astara/api/config/common.py index 13799717..f4f5f5a3 100644 --- a/astara/api/config/common.py +++ b/astara/api/config/common.py @@ -73,7 +73,7 @@ def _allocation_config(ports, subnets_dict): allocations = [] for port in ports: - if port.name.startswith('AKANDA:VRRP:'): + if port.name.startswith('ASTARA:VRRP:'): continue addrs = { diff --git a/astara/api/config/loadbalancer.py b/astara/api/config/loadbalancer.py index 818420b8..95df2a93 100644 --- a/astara/api/config/loadbalancer.py +++ b/astara/api/config/loadbalancer.py @@ -16,7 +16,7 @@ from oslo_log import log as logging -from akanda.rug.api.config import common +from astara.api.config import common LOG = logging.getLogger(__name__) diff --git a/astara/api/config/router.py b/astara/api/config/router.py index 45cc21f8..7decd215 100644 --- a/astara/api/config/router.py +++ b/astara/api/config/router.py @@ -21,8 +21,8 @@ from oslo_config import cfg from oslo_log import log as logging from oslo_serialization import jsonutils -from akanda.rug.common.i18n import _LI, _LW -from akanda.rug.api.config import common +from astara.common.i18n import _LI, _LW +from astara.api.config import common LOG = logging.getLogger(__name__) diff --git a/astara/api/neutron.py b/astara/api/neutron.py index 96839ac7..df29a37c 100644 --- a/astara/api/neutron.py +++ b/astara/api/neutron.py @@ -31,10 +31,10 @@ from oslo_context import context from oslo_log import log as logging from oslo_utils import importutils -from akanda.rug.common.i18n import _, _LI, _LW -from akanda.rug.common.linux import ip_lib -from akanda.rug.api import keystone -from akanda.rug.common import rpc +from astara.common.i18n import _, _LI, _LW +from astara.common.linux import ip_lib +from astara.api import keystone +from astara.common import rpc LOG = logging.getLogger(__name__) CONF = cfg.CONF @@ -47,11 +47,15 @@ neutron_opts = [ cfg.StrOpt('external_subnet_id'), cfg.StrOpt('management_prefix', default='fdca:3ba5:a17a:acda::/64'), cfg.StrOpt('external_prefix', default='172.16.77.0/24'), - cfg.IntOpt('akanda_mgt_service_port', default=5000), + cfg.IntOpt('astara_mgt_service_port', default=5000), cfg.StrOpt('default_instance_flavor', default=1), cfg.StrOpt('interface_driver'), cfg.BoolOpt('neutron_port_security_extension_enabled', default=True), + # legacy_fallback option is deprecated and will be removed in the N-release + cfg.BoolOpt('legacy_fallback_mode', default=True, + help=_('Check for resources using the Liberty naming scheme ' + 'when the modern name does not exist.')) ] CONF.register_opts(neutron_opts) @@ -61,7 +65,7 @@ DEVICE_OWNER_ROUTER_MGT = "network:router_management" DEVICE_OWNER_ROUTER_INT = "network:router_interface" DEVICE_OWNER_ROUTER_GW = "network:router_gateway" DEVICE_OWNER_FLOATINGIP = "network:floatingip" -DEVICE_OWNER_RUG = "network:akanda" +DEVICE_OWNER_RUG = "network:astara" PLUGIN_ROUTER_RPC_TOPIC = 'q-l3-plugin' @@ -461,8 +465,8 @@ class Member(DictModelBase): ) -class AkandaExtClientWrapper(client.Client): - """Add client support for Akanda Extensions. """ +class AstaraExtClientWrapper(client.Client): + """Add client support for Astara Extensions. """ routerstatus_path = '/dhrouterstatus' lbstatus_path = '/akloadbalancerstatus' @@ -515,7 +519,7 @@ class Neutron(object): def __init__(self, conf): self.conf = conf ks_session = keystone.KeystoneSession() - self.api_client = AkandaExtClientWrapper( + self.api_client = AstaraExtClientWrapper( session=ks_session.session, ) self.l3_rpc_client = L3PluginApi(PLUGIN_ROUTER_RPC_TOPIC, @@ -666,7 +670,7 @@ class Neutron(object): port_dict = dict( admin_state_up=True, network_id=network_id, - name='AKANDA:%s:%s' % (label, object_id), + name='ASTARA:%s:%s' % (label, object_id), security_groups=[] ) @@ -688,9 +692,16 @@ class Neutron(object): return port def delete_vrrp_port(self, object_id, label='VRRP'): - name = 'AKANDA:%s:%s' % (label, object_id) + name = 'ASTARA:%s:%s' % (label, object_id) response = self.api_client.list_ports(name=name) port_data = response.get('ports') + + if not port_data and self.conf.legacy_fallback_mode: + name = name.replace('ASTARA', 'AKANDA') + LOG.info(_LI('Attempting legacy query for %s.'), name) + response = self.api_client.list_ports(name=name) + port_data = response.get('ports') + if not port_data: LOG.warning(_LW( 'Unable to find VRRP port to delete with name %s.'), name) @@ -761,7 +772,7 @@ class Neutron(object): host_id = str(uuid.uuid5(uuid.NAMESPACE_DNS, socket.gethostname())) - name = 'AKANDA:RUG:%s' % network_type.upper() + name = 'ASTARA:RUG:%s' % network_type.upper() query_dict = dict(device_owner=DEVICE_OWNER_RUG, device_id=host_id, @@ -770,7 +781,31 @@ class Neutron(object): ports = self.api_client.list_ports(**query_dict)['ports'] - if ports: + if not ports and self.conf.legacy_fallback_mode: + LOG.info(_LI('Attempting legacy query for %s.'), name) + query_dict.update({ + 'name': name.replace('ASTARA', 'AKANDA'), + 'device_owner': DEVICE_OWNER_RUG.replace('astara', 'akanda') + }) + ports = self.api_client.list_ports(**query_dict)['ports'] + + if ports and 'AKANDA' in ports[0]['name']: + port = Port.from_dict(ports[0]) + LOG.info( + _LI('migrating port to ASTARA for port %r and using local %s'), + port, + network_type + ) + self.api_client.update_port( + port.id, + { + 'port': { + 'name': port.name.replace('AKANDA', 'ASTARA'), + 'device_owner': DEVICE_OWNER_RUG + } + } + ) + elif ports: port = Port.from_dict(ports[0]) LOG.info(_LI('already have local %s port, using %r'), network_type, port) @@ -838,11 +873,18 @@ class Neutron(object): host_id = str(uuid.uuid5(uuid.NAMESPACE_DNS, socket.gethostname())) query_dict = dict( device_owner=DEVICE_OWNER_RUG, - name='AKANDA:RUG:MANAGEMENT', + name='ASTARA:RUG:MANAGEMENT', device_id=host_id ) ports = self.api_client.list_ports(**query_dict)['ports'] + if not ports and self.conf.legacy_fallback_mode: + query_dict.update({ + 'name': 'AKANDA:RUG:MANAGEMENT', + 'device_owner': DEVICE_OWNER_RUG.replace('astara', 'akanda') + }) + ports = self.api_client.list_ports(**query_dict)['ports'] + if ports: port = Port.from_dict(ports[0]) device_name = driver.get_device_name(port) diff --git a/astara/api/nova.py b/astara/api/nova.py index ad7cdd3b..f070eef8 100644 --- a/astara/api/nova.py +++ b/astara/api/nova.py @@ -23,11 +23,11 @@ from novaclient import exceptions as novaclient_exceptions from oslo_config import cfg from oslo_log import log as logging -from akanda.rug.common.i18n import _LW, _LE, _LI -from akanda.rug.api import keystone -from akanda.rug.api import neutron -from akanda.rug.common import config -from akanda.rug.pez import rpcapi as pez_api +from astara.common.i18n import _LW, _LE, _LI +from astara.api import keystone +from astara.api import neutron +from astara.common import config +from astara.pez import rpcapi as pez_api LOG = logging.getLogger(__name__) @@ -125,7 +125,7 @@ class InstanceProvider(object): class PezInstanceProvider(InstanceProvider): def __init__(self, client): super(PezInstanceProvider, self).__init__(client) - self.rpc_client = pez_api.AkandaPezAPI(rpc_topic='akanda-pez') + self.rpc_client = pez_api.AstaraPezAPI(rpc_topic='astara-pez') LOG.info(_LI( 'Initialized %s with rpc client %s'), self.__class__.__name__, self.rpc_client) diff --git a/astara/api/rug.py b/astara/api/rug.py index b391a87c..eecb7bbc 100644 --- a/astara/api/rug.py +++ b/astara/api/rug.py @@ -26,8 +26,8 @@ from oslo_config import cfg from oslo_log import log as logging from oslo_log import loggers -from akanda.rug.cli import app -from akanda.rug.common.i18n import _, _LE, _LI, _LW +from astara.cli import app +from astara.common.i18n import _, _LE, _LI, _LW LOG = logging.getLogger(__name__) diff --git a/astara/cli/app.py b/astara/cli/app.py index 066ed52a..2808c1c2 100644 --- a/astara/cli/app.py +++ b/astara/cli/app.py @@ -22,7 +22,7 @@ from cliff import commandmanager from oslo_config import cfg import pkg_resources -from akanda.rug.common import config +from astara.common import config class RugController(app.App): @@ -32,9 +32,9 @@ class RugController(app.App): def __init__(self): dist = pkg_resources.get_distribution('astara') super(RugController, self).__init__( - description='controller for the Akanda RUG service', + description='controller for the Astara Orchestrator service', version=dist.version, - command_manager=commandmanager.CommandManager('akanda.rug.cli'), + command_manager=commandmanager.CommandManager('astara.cli'), ) def initialize_app(self, argv): diff --git a/astara/cli/browse.py b/astara/cli/browse.py index 07eb1c74..c8a51248 100644 --- a/astara/cli/browse.py +++ b/astara/cli/browse.py @@ -31,18 +31,18 @@ try: except ImportError: # blessed is not part of openstack global-requirements. raise Exception("The 'blessed' python module is required to browse" - " Akanda routers. Please install and try again.") + " Astara routers. Please install and try again.") from oslo_config import cfg -from akanda.rug import commands -from akanda.rug.api import nova as nova_api -from akanda.rug.api import neutron as neutron_api -from akanda.rug.cli import message +from astara import commands +from astara.api import nova as nova_api +from astara.api import neutron as neutron_api +from astara.cli import message logging.getLogger("urllib3").setLevel(logging.ERROR) -cfg.CONF.import_opt('host', 'akanda.rug.main') +cfg.CONF.import_opt('host', 'astara.main') class FakeConfig(object): diff --git a/astara/cli/config.py b/astara/cli/config.py index 1fac2ff8..9bb1771d 100644 --- a/astara/cli/config.py +++ b/astara/cli/config.py @@ -19,8 +19,8 @@ """ import logging -from akanda.rug import commands -from akanda.rug.cli import message +from astara import commands +from astara.cli import message class ConfigReload(message.MessageSending): diff --git a/astara/cli/global_debug.py b/astara/cli/global_debug.py index 373746bb..7919d830 100644 --- a/astara/cli/global_debug.py +++ b/astara/cli/global_debug.py @@ -19,8 +19,8 @@ """ import logging -from akanda.rug import commands -from akanda.rug.cli import message +from astara import commands +from astara.cli import message class GlobalDebug(message.MessageSending): diff --git a/astara/cli/main.py b/astara/cli/main.py index cf13c565..53ec62ec 100644 --- a/astara/cli/main.py +++ b/astara/cli/main.py @@ -17,7 +17,7 @@ import sys -from akanda.rug.cli import app +from astara.cli import app def main(args=sys.argv[1:]): diff --git a/astara/cli/message.py b/astara/cli/message.py index 80e13e90..3035d3b4 100644 --- a/astara/cli/message.py +++ b/astara/cli/message.py @@ -22,7 +22,7 @@ import logging from cliff import command -from akanda.rug import notifications +from astara import notifications class MessageSending(command.Command): @@ -49,4 +49,4 @@ class MessageSending(command.Command): def send_message(self, payload): sender = notifications.Sender() self.log.debug('sending %r', payload) - sender.send(event_type='akanda.rug.command', message=payload) + sender.send(event_type='astara.command', message=payload) diff --git a/astara/cli/poll.py b/astara/cli/poll.py index 141b2dcc..202c29bf 100644 --- a/astara/cli/poll.py +++ b/astara/cli/poll.py @@ -19,8 +19,8 @@ """ import logging -from akanda.rug import commands -from akanda.rug.cli import message +from astara import commands +from astara.cli import message class Poll(message.MessageSending): diff --git a/astara/cli/resource.py b/astara/cli/resource.py index 4cb10394..0594d231 100644 --- a/astara/cli/resource.py +++ b/astara/cli/resource.py @@ -17,9 +17,9 @@ """Commands related to routers. """ -from akanda.rug.api import nova -from akanda.rug.cli import message -from akanda.rug import commands +from astara.api import nova +from astara.cli import message +from astara import commands from novaclient import exceptions from oslo_config import cfg diff --git a/astara/cli/router.py b/astara/cli/router.py index 84778db7..e4f97f61 100644 --- a/astara/cli/router.py +++ b/astara/cli/router.py @@ -21,10 +21,10 @@ import argparse import subprocess import sys -from akanda.rug.common.i18n import _LW -from akanda.rug import commands -from akanda.rug.cli import message -from akanda.rug.api import keystone, nova, neutron +from astara.common.i18n import _LW +from astara import commands +from astara.cli import message +from astara.api import keystone, nova, neutron from novaclient import exceptions from oslo_config import cfg diff --git a/astara/cli/tenant.py b/astara/cli/tenant.py index 715e3aa7..c27b6568 100644 --- a/astara/cli/tenant.py +++ b/astara/cli/tenant.py @@ -19,8 +19,8 @@ """ import logging -from akanda.rug import commands -from akanda.rug.cli import message +from astara import commands +from astara.cli import message class _TenantCmd(message.MessageSending): diff --git a/astara/cli/worker.py b/astara/cli/worker.py index ef2498ea..ef26befc 100644 --- a/astara/cli/worker.py +++ b/astara/cli/worker.py @@ -19,8 +19,8 @@ """ import logging -from akanda.rug import commands -from akanda.rug.cli import message +from astara import commands +from astara.cli import message class WorkerDebug(message.MessageSending): diff --git a/astara/common/config.py b/astara/common/config.py index 774f0d5c..ad027651 100644 --- a/astara/common/config.py +++ b/astara/common/config.py @@ -78,7 +78,7 @@ def parse_config(argv, default_config_files=DEFAULT_CONFIG_FILES): 'stevedore=INFO', 'eventlet.wsgi.server=WARN', 'requests=WARN', - 'akanda.rug.openstack.common.rpc.amqp=INFO', + 'astara.openstack.common.rpc.amqp=INFO', 'neutronclient.client=INFO', 'oslo.messaging=INFO', 'iso8601=INFO', diff --git a/astara/common/hash_ring.py b/astara/common/hash_ring.py index d119ea06..873173fc 100644 --- a/astara/common/hash_ring.py +++ b/astara/common/hash_ring.py @@ -22,7 +22,7 @@ import threading from oslo_config import cfg import six -from akanda.rug.common.i18n import _ +from astara.common.i18n import _ hash_opts = [ cfg.IntOpt('hash_partition_exponent', @@ -47,7 +47,7 @@ CONF.register_opts(hash_opts) # A static key that can be used to choose a single host when from the # ring we have no other data to hash with. -DC_KEY = 'akanda_designated_coordinator' +DC_KEY = 'astara_designated_coordinator' class Invalid(Exception): diff --git a/astara/common/i18n.py b/astara/common/i18n.py index be0d6b68..0d99ed57 100644 --- a/astara/common/i18n.py +++ b/astara/common/i18n.py @@ -16,7 +16,7 @@ import oslo_i18n -_translators = oslo_i18n.TranslatorFactory(domain='akanda-rug') +_translators = oslo_i18n.TranslatorFactory(domain='astara') _ = _translators.primary _LI = _translators.log_info diff --git a/astara/common/linux/interface.py b/astara/common/linux/interface.py index e1dfcb7d..1fcbbe55 100644 --- a/astara/common/linux/interface.py +++ b/astara/common/linux/interface.py @@ -39,10 +39,10 @@ import netaddr from oslo_config import cfg from oslo_log import log as logging -from akanda.rug.common.i18n import _, _LE, _LW -from akanda.rug.common.linux import ip_lib -from akanda.rug.common.linux import ovs_lib -from akanda.rug.common.linux import utils +from astara.common.i18n import _, _LE, _LW +from astara.common.linux import ip_lib +from astara.common.linux import ovs_lib +from astara.common.linux import utils LOG = logging.getLogger(__name__) diff --git a/astara/common/linux/ip_lib.py b/astara/common/linux/ip_lib.py index 48ac0838..241e0ef1 100644 --- a/astara/common/linux/ip_lib.py +++ b/astara/common/linux/ip_lib.py @@ -33,8 +33,8 @@ import netaddr -from akanda.rug.common.linux import utils -from akanda.rug.common.i18n import _ +from astara.common.linux import utils +from astara.common.i18n import _ from oslo_log import log diff --git a/astara/common/linux/ovs_lib.py b/astara/common/linux/ovs_lib.py index 4d5311f6..98ec3e2f 100644 --- a/astara/common/linux/ovs_lib.py +++ b/astara/common/linux/ovs_lib.py @@ -37,8 +37,8 @@ import re -from akanda.rug.common.linux import utils -from akanda.rug.common.i18n import _, _LE, _LW +from astara.common.linux import utils +from astara.common.i18n import _, _LE, _LW from oslo_log import log as logging diff --git a/astara/common/linux/utils.py b/astara/common/linux/utils.py index 8e9c77c0..827529c7 100644 --- a/astara/common/linux/utils.py +++ b/astara/common/linux/utils.py @@ -44,7 +44,7 @@ import tempfile from eventlet.green import subprocess -from akanda.rug.common.i18n import _ +from astara.common.i18n import _ from oslo_log import log as logging diff --git a/astara/common/rpc.py b/astara/common/rpc.py index 7ff0f4d0..7cf9014e 100644 --- a/astara/common/rpc.py +++ b/astara/common/rpc.py @@ -21,7 +21,7 @@ from oslo_log import log as logging from oslo_config import cfg import oslo_messaging -from akanda.rug.common.i18n import _LW +from astara.common.i18n import _LW LOG = logging.getLogger(__name__) @@ -119,7 +119,7 @@ class Connection(object): def create_notification_listener(self, endpoints, exchange=None, topic='notifications'): - """Creates an oslo.messaging notificatino listener associated with + """Creates an oslo.messaging notification listener associated with provided endpoints. Adds the resulting listener to the pool of RPC server threads. @@ -132,7 +132,7 @@ class Connection(object): transport = get_transport() target = get_target(topic=topic, fanout=False, exchange=exchange) - pool = 'akanda.' + topic + '.' + cfg.CONF.host + pool = 'astara.' + topic + '.' + cfg.CONF.host server = oslo_messaging.get_notification_listener( transport, [target], endpoints, pool=pool) LOG.debug( diff --git a/astara/coordination.py b/astara/coordination.py index 27090549..ac5840bf 100644 --- a/astara/coordination.py +++ b/astara/coordination.py @@ -23,8 +23,8 @@ from oslo_log import log import tooz from tooz import coordination as tz_coordination -from akanda.rug import event as ak_event -from akanda.rug.common.i18n import _, _LI +from astara import event as ak_event +from astara.common.i18n import _, _LI LOG = log.getLogger(__name__) diff --git a/astara/daemon.py b/astara/daemon.py index 41cdbc0a..6dcd59f2 100644 --- a/astara/daemon.py +++ b/astara/daemon.py @@ -22,7 +22,7 @@ import signal from oslo_log import log as logging -from akanda.rug.common.i18n import _LI +from astara.common.i18n import _LI def ignore_signals(): diff --git a/astara/db/api.py b/astara/db/api.py index fbea1bf6..ca34ce79 100644 --- a/astara/db/api.py +++ b/astara/db/api.py @@ -22,7 +22,7 @@ from oslo_db import api as db_api _BACKEND_MAPPING = { - 'sqlalchemy': 'akanda.rug.db.sqlalchemy.api' + 'sqlalchemy': 'astara.db.sqlalchemy.api' } IMPL = db_api.DBAPI.from_config( diff --git a/astara/db/migration.py b/astara/db/migration.py index 6054eee9..4cda4f74 100644 --- a/astara/db/migration.py +++ b/astara/db/migration.py @@ -26,7 +26,7 @@ def get_backend(): global _IMPL if not _IMPL: cfg.CONF.import_opt('backend', 'oslo_db.options', group='database') - _IMPL = driver.DriverManager("akanda.database.migration_backend", + _IMPL = driver.DriverManager("astara.database.migration_backend", cfg.CONF.database.backend).driver return _IMPL diff --git a/astara/db/sqlalchemy/alembic/env.py b/astara/db/sqlalchemy/alembic/env.py index 78ba161a..ca307366 100644 --- a/astara/db/sqlalchemy/alembic/env.py +++ b/astara/db/sqlalchemy/alembic/env.py @@ -21,8 +21,8 @@ try: except ImportError: pass -from akanda.rug.db.sqlalchemy import api as sqla_api -from akanda.rug.db.sqlalchemy import models +from astara.db.sqlalchemy import api as sqla_api +from astara.db.sqlalchemy import models # this is the Alembic Config object, which provides # access to the values within the .ini file in use. diff --git a/astara/db/sqlalchemy/api.py b/astara/db/sqlalchemy/api.py index 0c3a2764..d7b5a8ba 100644 --- a/astara/db/sqlalchemy/api.py +++ b/astara/db/sqlalchemy/api.py @@ -22,8 +22,8 @@ from oslo_db import exception as db_exc from oslo_db.sqlalchemy import session as db_session from oslo_log import log -from akanda.rug.db import api -from akanda.rug.db.sqlalchemy import models +from astara.db import api +from astara.db.sqlalchemy import models CONF = cfg.CONF LOG = log.getLogger(__name__) diff --git a/astara/db/sqlalchemy/dbsync.py b/astara/db/sqlalchemy/dbsync.py index a18849a5..23fc5e51 100644 --- a/astara/db/sqlalchemy/dbsync.py +++ b/astara/db/sqlalchemy/dbsync.py @@ -21,7 +21,7 @@ from alembic import config as alembic_config from alembic import util as alembic_util from oslo_config import cfg -from akanda.rug.common.i18n import _ +from astara.common.i18n import _ _db_opts = [ @@ -90,14 +90,7 @@ CONF.register_cli_opt(command_opt) def get_alembic_config(): - # TODO(markmcclain): remove next 5 lines once the transition is complete - try: - from astara.db import sqlalchemy as preferred_sql - except ImportError: - from akanda.rug.db import sqlalchemy as preferred_sql - - filename = preferred_sql.__file__ - config = alembic_config.Config(os.path.join(os.path.dirname(filename), + config = alembic_config.Config(os.path.join(os.path.dirname(__file__), 'alembic.ini')) return config @@ -105,5 +98,5 @@ def get_alembic_config(): def main(): CONF(project='astara-orchestrator') config = get_alembic_config() - config.akanda_config = CONF + config.astara_config = CONF CONF.command.func(config, CONF.command.name) diff --git a/astara/db/sqlalchemy/migration.py b/astara/db/sqlalchemy/migration.py index 95fa3c60..4ab29961 100644 --- a/astara/db/sqlalchemy/migration.py +++ b/astara/db/sqlalchemy/migration.py @@ -21,18 +21,12 @@ from alembic import config as alembic_config import alembic.migration as alembic_migration from oslo_db import exception as db_exc -from akanda.rug.db.sqlalchemy import api as sqla_api -from akanda.rug.db.sqlalchemy import models +from astara.db.sqlalchemy import api as sqla_api +from astara.db.sqlalchemy import models def _alembic_config(): - # TODO(markmcclain): remove next 5 lines once the transition is complete - try: - from astara.db import sqlalchemy as preferred_sql - except ImportError: - from akanda.rug.db import sqlalchemy as preferred_sql - - path = os.path.join(os.path.dirname(preferred_sql.__file__), 'alembic.ini') + path = os.path.join(os.path.dirname(__file__), 'alembic.ini') config = alembic_config.Config(path) return config diff --git a/astara/db/sqlalchemy/models.py b/astara/db/sqlalchemy/models.py index 84264855..07ee2205 100644 --- a/astara/db/sqlalchemy/models.py +++ b/astara/db/sqlalchemy/models.py @@ -19,7 +19,7 @@ SQLAlchemy models for baremetal data. """ -from akanda.rug.common.i18n import _ +from astara.common.i18n import _ from oslo_config import cfg from oslo_db import options as db_options @@ -37,7 +37,7 @@ sql_opts = [ help=_('MySQL engine to use.')) ] -_DEFAULT_SQL_CONNECTION = 'sqlite:///akanda-rug.db' +_DEFAULT_SQL_CONNECTION = 'sqlite:///astara.db' cfg.CONF.register_opts(sql_opts, 'database') @@ -52,7 +52,7 @@ def table_args(): return None -class AkandaBase(models.TimestampMixin, +class AstaraBase(models.TimestampMixin, models.ModelBase): metadata = None @@ -64,14 +64,14 @@ class AkandaBase(models.TimestampMixin, return d def save(self, session=None): - import akanda.rug.db.sqlalchemy.api as db_api + import astara.db.sqlalchemy.api as db_api if session is None: session = db_api.get_session() - super(AkandaBase, self).save(session) + super(AstaraBase, self).save(session) -Base = declarative_base(cls=AkandaBase) +Base = declarative_base(cls=AstaraBase) class ResourceDebug(Base): diff --git a/astara/debug.py b/astara/debug.py index 08c97b09..4c76990b 100644 --- a/astara/debug.py +++ b/astara/debug.py @@ -21,10 +21,10 @@ import sys from oslo_config import cfg -from akanda.rug import state -from akanda.rug import worker +from astara import state +from astara import worker -from akanda.rug.common import config +from astara.common import config DEBUG_OPTS = [ @@ -51,7 +51,7 @@ def debug_one_router(args=sys.argv[1:]): # Add our extra option for specifying the router-id to debug cfg.CONF.register_cli_opts(DEBUG_OPTS) cfg.CONF.set_override('boot_timeout', 60000) - cfg.CONF.import_opt('host', 'akanda.rug.main') + cfg.CONF.import_opt('host', 'astara.main') config.parse_config(args) logging.basicConfig( diff --git a/astara/drivers/__init__.py b/astara/drivers/__init__.py index 8258bdc1..a49f7252 100644 --- a/astara/drivers/__init__.py +++ b/astara/drivers/__init__.py @@ -15,8 +15,8 @@ from oslo_config import cfg from oslo_log import log as logging -from akanda.rug.drivers.router import Router -from akanda.rug.drivers.loadbalancer import LoadBalancer +from astara.drivers.router import Router +from astara.drivers.loadbalancer import LoadBalancer DRIVER_OPTS = [ cfg.ListOpt('enabled_drivers', diff --git a/astara/drivers/base.py b/astara/drivers/base.py index 03ea81d6..7df1cb40 100644 --- a/astara/drivers/base.py +++ b/astara/drivers/base.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 AKANDA, INC. All Rights Reserved. +# Copyright (c) 2015 Akanda, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -166,7 +166,7 @@ class BaseDriver(object): def ports(self): """Lists ports associated with the resource. - :returns: A list of akanda.rug.api.neutron.Port objects or [] + :returns: A list of astara.api.neutron.Port objects or [] """ def get_interfaces(self, management_address): diff --git a/astara/drivers/loadbalancer.py b/astara/drivers/loadbalancer.py index f0bd7383..ceff3ff0 100644 --- a/astara/drivers/loadbalancer.py +++ b/astara/drivers/loadbalancer.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 AKANDA, INC. All Rights Reserved. +# Copyright (c) 2015 Akanda, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -18,14 +18,14 @@ from oslo_log import log as logging from neutronclient.common import exceptions as q_exceptions -from akanda.rug.common.i18n import _ -from akanda.rug.api import akanda_client -from akanda.rug.api.config import loadbalancer as config -from akanda.rug import event -from akanda.rug.api import neutron -from akanda.rug.drivers.base import BaseDriver -from akanda.rug.drivers import states -from akanda.rug.common.i18n import _LW +from astara.common.i18n import _ +from astara.api import astara_client +from astara.api.config import loadbalancer as config +from astara import event +from astara.api import neutron +from astara.drivers.base import BaseDriver +from astara.drivers import states +from astara.common.i18n import _LW LOG = logging.getLogger(__name__) @@ -83,7 +83,7 @@ class LoadBalancer(BaseDriver): def ports(self): """Lists ports associated with the resource. - :returns: A list of akanda.rug.api.neutron.Port objects or [] + :returns: A list of astara.api.neutron.Port objects or [] """ if self._loadbalancer: return [p for p in self._loadbalancer.ports] @@ -130,7 +130,7 @@ class LoadBalancer(BaseDriver): appliance """ self.log.info(_('Updating config for %s'), self.name) - akanda_client.update_config(management_address, self.mgt_port, config) + astara_client.update_config(management_address, self.mgt_port, config) def pre_plug(self, worker_context): """pre-plug hook @@ -306,7 +306,7 @@ class LoadBalancer(BaseDriver): return states.GONE else: # NOTE(adam_g): We probably want to map this status back to - # an internal akanda status + # an internal astara status return self._loadbalancer.status def synchronize_state(self, worker_context, state): @@ -332,7 +332,7 @@ class LoadBalancer(BaseDriver): :returns: A list of interfaces """ - return akanda_client.get_interfaces(management_address, + return astara_client.get_interfaces(management_address, self.mgt_port) def is_alive(self, management_address): @@ -340,4 +340,4 @@ class LoadBalancer(BaseDriver): :returns: bool True if alive, False if not """ - return akanda_client.is_alive(management_address, self.mgt_port) + return astara_client.is_alive(management_address, self.mgt_port) diff --git a/astara/drivers/router.py b/astara/drivers/router.py index 738ae155..8bbf5a22 100644 --- a/astara/drivers/router.py +++ b/astara/drivers/router.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 AKANDA, INC. All Rights Reserved. +# Copyright (c) 2015 Akanda, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -19,14 +19,14 @@ from oslo_utils import timeutils from neutronclient.common import exceptions as q_exceptions -from akanda.rug.common.i18n import _ -from akanda.rug.api import akanda_client -from akanda.rug.api.config import router as configuration -from akanda.rug import event -from akanda.rug.api import neutron -from akanda.rug.drivers.base import BaseDriver -from akanda.rug.drivers import states -from akanda.rug.common.i18n import _LW +from astara.common.i18n import _ +from astara.api import astara_client +from astara.api.config import router as configuration +from astara import event +from astara.api import neutron +from astara.drivers.base import BaseDriver +from astara.drivers import states +from astara.common.i18n import _LW LOG = logging.getLogger(__name__) @@ -109,7 +109,7 @@ class Router(BaseDriver): def ports(self): """Lists ports associated with the resource. - :returns: A list of akanda.rug.api.neutron.Port objects or [] + :returns: A list of astara.api.neutron.Port objects or [] """ if self._router: return [p for p in self._router.ports] @@ -158,7 +158,7 @@ class Router(BaseDriver): self.log.info(_('Updating config for %s'), self.name) start_time = timeutils.utcnow() - akanda_client.update_config( + astara_client.update_config( management_address, self.mgt_port, config) delta = timeutils.delta_seconds(start_time, timeutils.utcnow()) self.log.info(_('Config updated for %s after %s seconds'), @@ -321,7 +321,7 @@ class Router(BaseDriver): return states.GONE else: # NOTE(adam_g): We probably want to map this status back to - # an internal akanda status + # an internal astara status return self._router.status def synchronize_state(self, worker_context, state): @@ -346,7 +346,7 @@ class Router(BaseDriver): :returns: A list of interfaces """ - return akanda_client.get_interfaces(management_address, + return astara_client.get_interfaces(management_address, self.mgt_port) def is_alive(self, management_address): @@ -354,4 +354,4 @@ class Router(BaseDriver): :returns: bool True if alive, False if not """ - return akanda_client.is_alive(management_address, self.mgt_port) + return astara_client.is_alive(management_address, self.mgt_port) diff --git a/astara/drivers/states.py b/astara/drivers/states.py index 3d4fdbc7..21d80311 100644 --- a/astara/drivers/states.py +++ b/astara/drivers/states.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 AKANDA, INC. All Rights Reserved. +# Copyright (c) 2015 Akanda, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain diff --git a/astara/health.py b/astara/health.py index f1c833dc..51442101 100644 --- a/astara/health.py +++ b/astara/health.py @@ -23,7 +23,7 @@ import time from oslo_config import cfg -from akanda.rug import event +from astara import event from oslo_log import log as logging diff --git a/astara/instance_manager.py b/astara/instance_manager.py index c37e13b2..da3af3c4 100644 --- a/astara/instance_manager.py +++ b/astara/instance_manager.py @@ -19,8 +19,8 @@ import time from oslo_config import cfg -from akanda.rug.drivers import states -from akanda.rug.common.i18n import _LE, _LI +from astara.drivers import states +from astara.common.i18n import _LE, _LI CONF = cfg.CONF INSTANCE_MANAGER_OPTS = [ diff --git a/astara/main.py b/astara/main.py index 5761aecb..7e75b7fe 100644 --- a/astara/main.py +++ b/astara/main.py @@ -26,17 +26,17 @@ import threading from oslo_config import cfg from oslo_log import log -from akanda.rug.common.i18n import _LE, _LI -from akanda.rug.common import config as ak_cfg -from akanda.rug import coordination -from akanda.rug import daemon -from akanda.rug import health -from akanda.rug import metadata -from akanda.rug import notifications -from akanda.rug import scheduler -from akanda.rug import populate -from akanda.rug import worker -from akanda.rug.api import neutron as neutron_api +from astara.common.i18n import _LE, _LI +from astara.common import config as ak_cfg +from astara import coordination +from astara import daemon +from astara import health +from astara import metadata +from astara import notifications +from astara import scheduler +from astara import populate +from astara import worker +from astara.api import neutron as neutron_api LOG = log.getLogger(__name__) @@ -45,7 +45,7 @@ CONF = cfg.CONF MAIN_OPTS = [ cfg.StrOpt('host', default=socket.getfqdn(), - help="The hostname Akanda is running on"), + help="The hostname Astara is running on"), cfg.BoolOpt('plug_external_port', default=False), ] CONF.register_opts(MAIN_OPTS) @@ -168,7 +168,7 @@ def main(argv=sys.argv[1:]): ) metadata_proc.start() - from akanda.rug.api import rug as rug_api + from astara.api import rug as rug_api rug_api_proc = multiprocessing.Process( target=rug_api.serve, args=(mgt_ip_address,), diff --git a/astara/metadata.py b/astara/metadata.py index 5d9f960b..022dd000 100644 --- a/astara/metadata.py +++ b/astara/metadata.py @@ -55,7 +55,7 @@ import webob.exc from oslo_log import log as logging from oslo_log import loggers -from akanda.rug.common.i18n import _, _LE, _LI, _LW +from astara.common.i18n import _, _LE, _LI, _LW LOG = logging.getLogger(__name__) diff --git a/astara/notifications.py b/astara/notifications.py index f9ee8d57..42d583db 100644 --- a/astara/notifications.py +++ b/astara/notifications.py @@ -21,16 +21,16 @@ import Queue import threading -from akanda.rug import commands -from akanda.rug import drivers -from akanda.rug import event -from akanda.rug.common import rpc +from astara import commands +from astara import drivers +from astara import event +from astara.common import rpc from oslo_config import cfg from oslo_context import context from oslo_log import log as logging -from akanda.rug.common.i18n import _LE +from astara.common.i18n import _LE cfg.CONF.register_group(cfg.OptGroup(name='rabbit', @@ -137,7 +137,7 @@ class NotificationsEndpoint(object): crud = event.UPDATE e = None events = [] - if event_type.startswith('akanda.rug.command'): + if event_type.startswith('astara.command'): LOG.debug('received a command: %r', payload) crud = event.COMMAND if payload.get('command') == commands.POLL: diff --git a/astara/openstack/common/excutils.py b/astara/openstack/common/excutils.py index 8e148e02..640698ce 100644 --- a/astara/openstack/common/excutils.py +++ b/astara/openstack/common/excutils.py @@ -41,7 +41,7 @@ import logging import sys import traceback -from akanda.rug.common.i18n import _LE +from astara.common.i18n import _LE @contextlib.contextmanager diff --git a/astara/openstack/common/gettextutils.py b/astara/openstack/common/gettextutils.py index 3abf31cf..006f602b 100644 --- a/astara/openstack/common/gettextutils.py +++ b/astara/openstack/common/gettextutils.py @@ -37,7 +37,7 @@ gettext for openstack-common modules. Usual usage in an openstack.common module: - from akanda.rug.openstack.common.gettextutils import _ + from astara.openstack.common.gettextutils import _ """ import gettext diff --git a/astara/openstack/common/jsonutils.py b/astara/openstack/common/jsonutils.py index b545ef93..d2660ee4 100644 --- a/astara/openstack/common/jsonutils.py +++ b/astara/openstack/common/jsonutils.py @@ -57,7 +57,7 @@ import itertools import json import xmlrpclib -from akanda.rug.openstack.common import timeutils +from astara.openstack.common import timeutils def to_primitive(value, convert_instances=False, convert_datetime=True, diff --git a/astara/openstack/common/loopingcall.py b/astara/openstack/common/loopingcall.py index 5ca0359a..29ff07a4 100644 --- a/astara/openstack/common/loopingcall.py +++ b/astara/openstack/common/loopingcall.py @@ -39,9 +39,9 @@ import sys from eventlet import event from eventlet import greenthread -from akanda.rug.common.i18n import _LE, _LW -from akanda.rug.openstack.common import log as logging -from akanda.rug.openstack.common import timeutils +from astara.common.i18n import _LE, _LW +from astara.openstack.common import log as logging +from astara.openstack.common import timeutils LOG = logging.getLogger(__name__) diff --git a/astara/openstack/common/manager.py b/astara/openstack/common/manager.py index 08b84f4c..eadc696d 100644 --- a/astara/openstack/common/manager.py +++ b/astara/openstack/common/manager.py @@ -68,7 +68,7 @@ This module provides Manager, a base class for managers. """ -from akanda.rug.openstack.common import periodic_task +from astara.openstack.common import periodic_task class Manager(periodic_task.PeriodicTasks): diff --git a/astara/openstack/common/notifier/api.py b/astara/openstack/common/notifier/api.py index 74117468..7c4ad1ae 100644 --- a/astara/openstack/common/notifier/api.py +++ b/astara/openstack/common/notifier/api.py @@ -34,12 +34,12 @@ import uuid from oslo_config import cfg -from akanda.rug.common.i18n import _, _LE -from akanda.rug.openstack.common import context -from akanda.rug.openstack.common import importutils -from akanda.rug.openstack.common import jsonutils -from akanda.rug.openstack.common import log as logging -from akanda.rug.openstack.common import timeutils +from astara.common.i18n import _, _LE +from astara.openstack.common import context +from astara.openstack.common import importutils +from astara.openstack.common import jsonutils +from astara.openstack.common import log as logging +from astara.openstack.common import timeutils LOG = logging.getLogger(__name__) diff --git a/astara/openstack/common/notifier/log_notifier.py b/astara/openstack/common/notifier/log_notifier.py index 51ded9a7..bcf2a34f 100644 --- a/astara/openstack/common/notifier/log_notifier.py +++ b/astara/openstack/common/notifier/log_notifier.py @@ -32,8 +32,8 @@ from oslo_config import cfg -from akanda.rug.openstack.common import jsonutils -from akanda.rug.openstack.common import log as logging +from astara.openstack.common import jsonutils +from astara.openstack.common import log as logging CONF = cfg.CONF @@ -47,6 +47,6 @@ def notify(_context, message): CONF.default_notification_level) priority = priority.lower() logger = logging.getLogger( - 'akanda.rug.openstack.common.notification.%s' % + 'astara.openstack.common.notification.%s' % message['event_type']) getattr(logger, priority)(jsonutils.dumps(message)) diff --git a/astara/openstack/common/notifier/rabbit_notifier.py b/astara/openstack/common/notifier/rabbit_notifier.py index 5093f616..9b1b8057 100644 --- a/astara/openstack/common/notifier/rabbit_notifier.py +++ b/astara/openstack/common/notifier/rabbit_notifier.py @@ -31,9 +31,9 @@ # under the License. -from akanda.rug.common.i18n import _ -from akanda.rug.openstack.common import log as logging -from akanda.rug.openstack.common.notifier import rpc_notifier +from astara.common.i18n import _ +from astara.openstack.common import log as logging +from astara.openstack.common.notifier import rpc_notifier LOG = logging.getLogger(__name__) diff --git a/astara/openstack/common/periodic_task.py b/astara/openstack/common/periodic_task.py index accce9bc..02869b2c 100644 --- a/astara/openstack/common/periodic_task.py +++ b/astara/openstack/common/periodic_task.py @@ -30,8 +30,8 @@ # License for the specific language governing permissions and limitations # under the License. -from akanda.rug.common.i18n import _LE -from akanda.rug.openstack.common import log as logging +from astara.common.i18n import _LE +from astara.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/astara/openstack/common/service.py b/astara/openstack/common/service.py index 00c356c0..cf8df749 100644 --- a/astara/openstack/common/service.py +++ b/astara/openstack/common/service.py @@ -47,14 +47,14 @@ import eventlet import logging as std_logging from oslo_config import cfg -from akanda.rug.common.i18n import _LE, _LI, _LW -from akanda.rug.openstack.common import eventlet_backdoor -from akanda.rug.openstack.common import importutils -from akanda.rug.openstack.common import log as logging -from akanda.rug.openstack.common import threadgroup +from astara.common.i18n import _LE, _LI, _LW +from astara.openstack.common import eventlet_backdoor +from astara.openstack.common import importutils +from astara.openstack.common import log as logging +from astara.openstack.common import threadgroup -rpc = importutils.try_import('akanda.rug.openstack.common.rpc') +rpc = importutils.try_import('astara.openstack.common.rpc') CONF = cfg.CONF LOG = logging.getLogger(__name__) diff --git a/astara/openstack/common/setup.py b/astara/openstack/common/setup.py index d438f706..e11448a3 100644 --- a/astara/openstack/common/setup.py +++ b/astara/openstack/common/setup.py @@ -45,7 +45,7 @@ import sys from setuptools.command import sdist -from akanda.rug.common.i18n import _ +from astara.common.i18n import _ def parse_mailmap(mailmap='.mailmap'): diff --git a/astara/openstack/common/threadgroup.py b/astara/openstack/common/threadgroup.py index b5e6c417..54ed9a89 100644 --- a/astara/openstack/common/threadgroup.py +++ b/astara/openstack/common/threadgroup.py @@ -35,8 +35,8 @@ from eventlet import greenlet from eventlet import greenpool from eventlet import greenthread -from akanda.rug.openstack.common import log as logging -from akanda.rug.openstack.common import loopingcall +from astara.openstack.common import log as logging +from astara.openstack.common import loopingcall LOG = logging.getLogger(__name__) diff --git a/astara/pez/manager.py b/astara/pez/manager.py index 81dd75c0..d894b51b 100644 --- a/astara/pez/manager.py +++ b/astara/pez/manager.py @@ -19,8 +19,8 @@ import threading from oslo_config import cfg -from akanda.rug.common.i18n import _ -from akanda.rug.pez import pool +from astara.common.i18n import _ +from astara.pez import pool CONF = cfg.CONF @@ -35,7 +35,7 @@ PEZ_OPTIONS = [ help=_('Image uuid to boot.')), cfg.StrOpt('flavor', help=_('Nova flavor to boot')), - cfg.StrOpt('rpc_topic', default='akanda-pez'), + cfg.StrOpt('rpc_topic', default='astara-pez'), ] @@ -43,8 +43,8 @@ CONF.register_group(cfg.OptGroup(name='pez')) CONF.register_opts(PEZ_OPTIONS, group='pez') -CONF.import_opt('host', 'akanda.rug.main') -CONF.import_opt('management_network_id', 'akanda.rug.api.neutron') +CONF.import_opt('host', 'astara.main') +CONF.import_opt('management_network_id', 'astara.api.neutron') class PezManager(object): diff --git a/astara/pez/pool.py b/astara/pez/pool.py index aaee9aea..8fb1f192 100644 --- a/astara/pez/pool.py +++ b/astara/pez/pool.py @@ -22,15 +22,15 @@ from oslo_config import cfg from oslo_log import log as logging from oslo_utils import timeutils -from akanda.rug.common.i18n import _LE, _LI -from akanda.rug import drivers -from akanda.rug.api import neutron -from akanda.rug.api import nova +from astara.common.i18n import _LE, _LI +from astara import drivers +from astara.api import neutron +from astara.api import nova LOG = logging.getLogger(__name__) # Unused instances are launched with a known name -INSTANCE_FREE = 'AKANDA:UNUSED:%(resource_name)s' +INSTANCE_FREE = 'ASTARA:UNUSED:%(resource_name)s' # When an instance is reserved, its renamed accordingly # TODO(adam_g): We ideally want to make all instance naming template-able @@ -42,7 +42,7 @@ ACTIVE = 'active' ERROR = 'error' DELETING = 'deleting' -PEZ_LOCK = 'akanda-pez' +PEZ_LOCK = 'astara-pez' class PezPoolExhausted(Exception): @@ -59,7 +59,7 @@ class WorkerContext(object): class PezPoolManager(object): - """Akanda Pez Pool Manager + """Astara Pez Pool Manager This manages a pool of instances of a configurable size. All instance state is managed and tracked in Nova itself. @@ -224,8 +224,8 @@ class PezPoolManager(object): LOG.info(_LI( 'Launching %s %s instances.'), driver.RESOURCE_NAME, count) for i in range(0, count): - # NOTE: Use a fake UUID so akanda-neutron's name matching still - # catches this port as an akanda port. This can be avoided if + # NOTE: Use a fake UUID so astara-neutron's name matching still + # catches this port as an astara port. This can be avoided if # we use a mgt security group in the future. mgt_port = self.ctxt.neutron_client.create_management_port( '00000000-0000-0000-0000-000000000000') diff --git a/astara/pez/rpcapi.py b/astara/pez/rpcapi.py index e7a30300..21fcde23 100644 --- a/astara/pez/rpcapi.py +++ b/astara/pez/rpcapi.py @@ -14,13 +14,13 @@ # License for the specific language governing permissions and limitations # under the License. -from akanda.rug.common import rpc +from astara.common import rpc from oslo_context import context -class AkandaPezAPI(object): - """"Client side of the Akanda Pez RPC API. +class AstaraPezAPI(object): + """"Client side of the Astara Pez RPC API. """ def __init__(self, rpc_topic): self.topic = rpc_topic @@ -34,7 +34,7 @@ class AkandaPezAPI(object): attach any required instance ports during the reservation process. The dict returned here should be enough for the caller to construct a InstanceInfo object. Note that the port information are serialized - akanda.rug.api.neutron.Port objects that can be deserialized by the + astara.api.neutron.Port objects that can be deserialized by the caller during creation of InstanceInfo. :param resource_type: The str name of the driver that manages the diff --git a/astara/pez/service.py b/astara/pez/service.py index c332168d..b1d99cd3 100644 --- a/astara/pez/service.py +++ b/astara/pez/service.py @@ -17,11 +17,11 @@ import logging import sys -from akanda.rug.common.i18n import _LI -from akanda.rug.common import config as ak_cfg +from astara.common.i18n import _LI +from astara.common import config as ak_cfg -from akanda.rug.common import rpc -from akanda.rug.pez import manager +from astara.common import rpc +from astara.pez import manager from oslo_config import cfg from oslo_log import log @@ -55,10 +55,10 @@ class PezService(service.Service): def main(argv=sys.argv[1:]): ak_cfg.parse_config(argv) - log.setup(CONF, 'akanda-pez') + log.setup(CONF, 'astara-pez') CONF.log_opt_values(LOG, logging.INFO) - LOG.info(_LI("Starting Akanda Pez service.")) + LOG.info(_LI("Starting Astara Pez service.")) mgr = PezService() launcher = service.launch(CONF, mgr) diff --git a/astara/populate.py b/astara/populate.py index 620dea16..3f7f838d 100644 --- a/astara/populate.py +++ b/astara/populate.py @@ -22,8 +22,8 @@ import threading from oslo_log import log as logging -from akanda.rug import event -from akanda.rug import drivers +from astara import event +from astara import drivers LOG = logging.getLogger(__name__) diff --git a/astara/scheduler.py b/astara/scheduler.py index b3124420..c929da9d 100644 --- a/astara/scheduler.py +++ b/astara/scheduler.py @@ -24,9 +24,9 @@ import uuid from oslo_config import cfg from oslo_log import log as logging -from akanda.rug import commands -from akanda.rug.common.i18n import _, _LE, _LI, _LW -from akanda.rug import daemon +from astara import commands +from astara.common.i18n import _, _LE, _LI, _LW +from astara import daemon LOG = logging.getLogger(__name__) diff --git a/astara/service.py b/astara/service.py index 4b48b260..edf57e6c 100644 --- a/astara/service.py +++ b/astara/service.py @@ -23,9 +23,9 @@ import eventlet from oslo_config import cfg from oslo_log import log -from akanda.rug import manager -from akanda.rug.openstack.common.rpc import service as rpc_service -from akanda.rug.openstack.common import service +from astara import manager +from astara.openstack.common.rpc import service as rpc_service +from astara.openstack.common import service L3_AGENT_TOPIC = 'l3_agent' @@ -53,9 +53,9 @@ class PeriodicService(rpc_service.Service): def main(): eventlet.monkey_patch() cfg.CONF(sys.argv[1:], project='astara-orchestrator') - log.setup('akanda') + log.setup('astara') - mgr = manager.AkandaL3Manager() + mgr = manager.AstaraL3Manager() svc = PeriodicService( host=cfg.CONF.host, topic=L3_AGENT_TOPIC, manager=mgr ) diff --git a/astara/state.py b/astara/state.py index b1a2ffb4..135e955d 100644 --- a/astara/state.py +++ b/astara/state.py @@ -25,10 +25,10 @@ import collections import itertools -from akanda.rug.common.i18n import _LE, _LI, _LW -from akanda.rug.event import POLL, CREATE, READ, UPDATE, DELETE, REBUILD -from akanda.rug import instance_manager -from akanda.rug.drivers import states +from astara.common.i18n import _LE, _LI, _LW +from astara.event import POLL, CREATE, READ, UPDATE, DELETE, REBUILD +from astara import instance_manager +from astara.drivers import states class StateParams(object): diff --git a/astara/tenant.py b/astara/tenant.py index d80139e1..7ff74db9 100644 --- a/astara/tenant.py +++ b/astara/tenant.py @@ -23,10 +23,10 @@ import threading from oslo_log import log as logging -from akanda.rug.common.i18n import _LE -from akanda.rug import state -from akanda.rug import drivers -from akanda.rug.openstack.common import timeutils +from astara.common.i18n import _LE +from astara import state +from astara import drivers +from astara.openstack.common import timeutils LOG = logging.getLogger(__name__) @@ -119,7 +119,7 @@ class TenantResourceManager(object): msg = { 'tenant_id': self.tenant_id, 'timestamp': timeutils.isotime(), - 'event_type': 'akanda.bandwidth.used', + 'event_type': 'astara.bandwidth.used', 'payload': dict((b.pop('name'), b) for b in bandwidth), 'uuid': resource_id, } diff --git a/astara/test/functional/base.py b/astara/test/functional/base.py index a02b897f..aae7d69f 100644 --- a/astara/test/functional/base.py +++ b/astara/test/functional/base.py @@ -5,7 +5,7 @@ import os import testtools import time -from akanda.rug.api import akanda_client +from astara.api import astara_client from novaclient.v1_1 import client as _novaclient from neutronclient.v2_0 import client as _neutronclient @@ -14,14 +14,14 @@ DEFAULT_CONFIG = os.path.join(os.path.dirname(__file__), 'test.conf') DEFAULT_ACTIVE_TIMEOUT = 340 -class AkandaFunctionalBase(testtools.TestCase): +class AstaraFunctionalBase(testtools.TestCase): def setUp(self): - super(AkandaFunctionalBase, self).setUp() + super(AstaraFunctionalBase, self).setUp() self.config = self._get_config() - self.ak_cfg = mock.patch.object(akanda_client.cfg, 'CONF').start() + self.ak_cfg = mock.patch.object(astara_client.cfg, 'CONF').start() self.ak_cfg.alive_timeout = 10 - self.ak_client = akanda_client + self.ak_client = astara_client self.novaclient = _novaclient.Client( self.config['os_username'], @@ -41,7 +41,7 @@ class AkandaFunctionalBase(testtools.TestCase): self._management_address = None def _get_config(self): - config_file = os.environ.get('AKANDA_TEST_CONFIG', + config_file = os.environ.get('ASTARA_TEST_CONFIG', DEFAULT_CONFIG) config = ConfigParser.SafeConfigParser() if not config.read(config_file): @@ -51,7 +51,7 @@ class AkandaFunctionalBase(testtools.TestCase): req_conf_settings = ['os_auth_url', 'os_username', 'os_password', 'os_tenant_name', 'service_tenant_name', 'service_tenant_id', 'appliance_api_port', - 'akanda_test_router_uuid'] + 'astara_test_router_uuid'] out = {} for c in req_conf_settings: try: @@ -94,7 +94,7 @@ class AkandaFunctionalBase(testtools.TestCase): def assert_router_is_active(self, router_uuid=None): if not router_uuid: - router_uuid = self.config['akanda_test_router_uuid'] + router_uuid = self.config['astara_test_router_uuid'] i = 0 router = self.neutronclient.show_router(router_uuid)['router'] while router['status'] != 'ACTIVE': diff --git a/astara/test/functional/test.conf.sample b/astara/test/functional/test.conf.sample index 078cc03f..59887e40 100644 --- a/astara/test/functional/test.conf.sample +++ b/astara/test/functional/test.conf.sample @@ -10,8 +10,8 @@ service_tenant_id=80095e2039db4af0a88351d6360c1977 # The configured appliance API port appliance_api_port=5000 -# The UUID of a running akanda router that will be used for running +# The UUID of a running astara router that will be used for running # tests against. Devstack creates this for you but you may have one # that you wish to use instead. If not supplied here, tools/run_functional.sh # will attempt to find it for you. -akanda_test_router_uuid=650da79d-30ee-460f-bf91-8b7e04a5a5f6 +astara_test_router_uuid=650da79d-30ee-460f-bf91-8b7e04a5a5f6 diff --git a/astara/test/functional/test_service_instance.py b/astara/test/functional/test_service_instance.py index e4e29f74..fa223c25 100644 --- a/astara/test/functional/test_service_instance.py +++ b/astara/test/functional/test_service_instance.py @@ -1,13 +1,13 @@ -from akanda.rug.test.functional import base +from astara.test.functional import base -class AkandaApplianceInstanceTest(base.AkandaFunctionalBase): +class AstaraApplianceInstanceTest(base.AstaraFunctionalBase): """Basic tests to ensure a service instance and its associated router is alive and well. """ def setUp(self): - super(AkandaApplianceInstanceTest, self).setUp() + super(AstaraApplianceInstanceTest, self).setUp() # ensure the devstack spawned router instance becomes active before # starting to run any test cases. this in itself is a test that # devstack produced a functional router. diff --git a/astara/test/unit/api/config/config_fakes.py b/astara/test/unit/api/config/config_fakes.py index a588fb0c..562caa7a 100644 --- a/astara/test/unit/api/config/config_fakes.py +++ b/astara/test/unit/api/config/config_fakes.py @@ -14,7 +14,7 @@ import netaddr -from akanda.rug.api.neutron import Subnet +from astara.api.neutron import Subnet class FakeModel(object): @@ -34,14 +34,14 @@ fake_ext_port = FakeModel( fake_mgt_port = FakeModel( '2', - name='AKANDA:MGT:foo', + name='ASTARA:MGT:foo', mac_address='aa:bb:cc:cc:bb:aa', network_id='mgt-net', device_id='m-m-m-m') fake_int_port = FakeModel( '3', - name='AKANDA:RUG:foo', + name='ASTARA:RUG:foo', mac_address='aa:aa:aa:aa:aa:aa', network_id='int-net', fixed_ips=[FakeModel('', ip_address='192.168.1.1', subnet_id='s1')], @@ -58,7 +58,7 @@ fake_instance_port = FakeModel( fake_instance_mgt_port = FakeModel( '4', - name='AKANDA:MGT:foo', + name='ASTARA:MGT:foo', mac_address='aa:aa:aa:aa:aa:bb', network_id='int-net', fixed_ips=[FakeModel('', ip_address='192.168.1.2', subnet_id='s1')], @@ -67,7 +67,7 @@ fake_instance_mgt_port = FakeModel( fake_instance_vrrp_port = FakeModel( '4', - name='AKANDA:VRRP:foo', + name='ASTARA:VRRP:foo', mac_address='aa:aa:aa:aa:aa:bb', network_id='int-net', fixed_ips=[FakeModel('', ip_address='192.168.1.2', subnet_id='s1')], diff --git a/astara/test/unit/api/config/test_common_config.py b/astara/test/unit/api/config/test_common_config.py index 07d2be60..af007c2d 100644 --- a/astara/test/unit/api/config/test_common_config.py +++ b/astara/test/unit/api/config/test_common_config.py @@ -20,9 +20,9 @@ import netaddr from oslo_config import cfg import unittest2 as unittest -from akanda.rug.api.config import common +from astara.api.config import common -from akanda.rug.test.unit.api.config import config_fakes as fakes +from astara.test.unit.api.config import config_fakes as fakes class TestCommonConfig(unittest.TestCase): diff --git a/astara/test/unit/api/config/test_loadbalancer_config.py b/astara/test/unit/api/config/test_loadbalancer_config.py index b01d0942..d0a46621 100644 --- a/astara/test/unit/api/config/test_loadbalancer_config.py +++ b/astara/test/unit/api/config/test_loadbalancer_config.py @@ -17,12 +17,12 @@ import mock -from akanda.rug.api.config import loadbalancer as lb_config -from akanda.rug.test.unit import base, fakes +from astara.api.config import loadbalancer as lb_config +from astara.test.unit import base, fakes class TestLoadbalancerConfigAPI(base.RugTestBase): - @mock.patch('akanda.rug.api.config.common.network_config') + @mock.patch('astara.api.config.common.network_config') def test_build_config(self, fake_network_config): fake_client = mock.Mock() fake_lb = fakes.fake_loadbalancer() diff --git a/astara/test/unit/api/config/test_router_config.py b/astara/test/unit/api/config/test_router_config.py index 4a4896af..eedf38d3 100644 --- a/astara/test/unit/api/config/test_router_config.py +++ b/astara/test/unit/api/config/test_router_config.py @@ -21,12 +21,12 @@ from oslo_config import cfg import unittest2 as unittest from six.moves import builtins as __builtins__ -from akanda.rug.api.config import router as conf_mod +from astara.api.config import router as conf_mod -from akanda.rug.test.unit.api.config import config_fakes as fakes +from astara.test.unit.api.config import config_fakes as fakes -class TestAkandaClient(unittest.TestCase): +class TestAstaraClient(unittest.TestCase): def setUp(self): cfg.CONF.set_override('provider_rules_path', '/the/path') @@ -110,7 +110,7 @@ class TestAkandaClient(unittest.TestCase): res = conf_mod.load_provider_rules('/tmp/path') self.assertEqual(res, {}) - @mock.patch('akanda.rug.api.config.common.network_config') + @mock.patch('astara.api.config.common.network_config') def test_generate_network_config(self, mock_net_conf): mock_client = mock.Mock() @@ -160,7 +160,7 @@ class TestAkandaClient(unittest.TestCase): self.assertEqual(result, expected) -class TestAkandaClientGateway(unittest.TestCase): +class TestAstaraClientGateway(unittest.TestCase): def setUp(self): cfg.CONF.set_override('provider_rules_path', '/the/path') diff --git a/astara/test/unit/api/test_akanda_router.py b/astara/test/unit/api/test_astara_router.py similarity index 83% rename from astara/test/unit/api/test_akanda_router.py rename to astara/test/unit/api/test_astara_router.py index 0c9eb7c3..df0b7055 100644 --- a/astara/test/unit/api/test_akanda_router.py +++ b/astara/test/unit/api/test_astara_router.py @@ -18,13 +18,13 @@ import mock import unittest2 as unittest -from akanda.rug.api import akanda_client +from astara.api import astara_client -class TestAkandaClient(unittest.TestCase): +class TestAstaraClient(unittest.TestCase): def setUp(self): self.mock_create_session = mock.patch.object( - akanda_client, + astara_client, '_get_proxyless_session' ).start() self.mock_get = self.mock_create_session.return_value.get @@ -35,14 +35,14 @@ class TestAkandaClient(unittest.TestCase): def test_mgt_url(self): self.assertEqual('http://[fe80::2]:5000/', - akanda_client._mgt_url('fe80::2', 5000, '/')) + astara_client._mgt_url('fe80::2', 5000, '/')) self.assertEqual('http://192.168.1.1:5000/', - akanda_client._mgt_url('192.168.1.1', 5000, '/')) + astara_client._mgt_url('192.168.1.1', 5000, '/')) def test_is_alive_success(self): self.mock_get.return_value.status_code = 200 - self.assertTrue(akanda_client.is_alive('fe80::2', 5000)) + self.assertTrue(astara_client.is_alive('fe80::2', 5000)) self.mock_get.assert_called_once_with( 'http://[fe80::2]:5000/v1/firewall/rules', timeout=3.0 @@ -51,7 +51,7 @@ class TestAkandaClient(unittest.TestCase): def test_is_alive_bad_status(self): self.mock_get.return_value.status_code = 500 - self.assertFalse(akanda_client.is_alive('fe80::2', 5000)) + self.assertFalse(astara_client.is_alive('fe80::2', 5000)) self.mock_get.assert_called_once_with( 'http://[fe80::2]:5000/v1/firewall/rules', timeout=3.0 @@ -60,7 +60,7 @@ class TestAkandaClient(unittest.TestCase): def test_is_alive_exception(self): self.mock_get.side_effect = Exception - self.assertFalse(akanda_client.is_alive('fe80::2', 5000)) + self.assertFalse(astara_client.is_alive('fe80::2', 5000)) self.mock_get.assert_called_once_with( 'http://[fe80::2]:5000/v1/firewall/rules', timeout=3.0 @@ -72,7 +72,7 @@ class TestAkandaClient(unittest.TestCase): 'interfaces': 'the_interfaces' } - self.assertEqual(akanda_client.get_interfaces('fe80::2', 5000), + self.assertEqual(astara_client.get_interfaces('fe80::2', 5000), 'the_interfaces') self.mock_get.assert_called_once_with( 'http://[fe80::2]:5000/v1/system/interfaces', @@ -84,7 +84,7 @@ class TestAkandaClient(unittest.TestCase): self.mock_put.return_value.status_code = 200 self.mock_put.return_value.json.return_value = config - resp = akanda_client.update_config('fe80::2', 5000, config) + resp = astara_client.update_config('fe80::2', 5000, config) self.mock_put.assert_called_once_with( 'http://[fe80::2]:5000/v1/system/config', @@ -98,9 +98,9 @@ class TestAkandaClient(unittest.TestCase): self.mock_put.return_value.status_code = 200 self.mock_put.return_value.json.return_value = config - with mock.patch.object(akanda_client.cfg, 'CONF') as cfg: + with mock.patch.object(astara_client.cfg, 'CONF') as cfg: cfg.config_timeout = 5 - resp = akanda_client.update_config('fe80::2', 5000, config) + resp = astara_client.update_config('fe80::2', 5000, config) self.mock_put.assert_called_once_with( 'http://[fe80::2]:5000/v1/system/config', @@ -116,7 +116,7 @@ class TestAkandaClient(unittest.TestCase): self.mock_put.return_value.text = 'error_text' with self.assertRaises(Exception): - akanda_client.update_config('fe80::2', 5000, config) + astara_client.update_config('fe80::2', 5000, config) self.mock_put.assert_called_once_with( 'http://[fe80::2]:5000/v1/system/config', @@ -130,7 +130,7 @@ class TestAkandaClient(unittest.TestCase): self.mock_post.return_value.json.return_value = { 'labels': ['label1', 'label2'] } - resp = akanda_client.read_labels('fe80::2', 5000) + resp = astara_client.read_labels('fe80::2', 5000) self.mock_post.assert_called_once_with( 'http://[fe80::2]:5000/v1/firewall/labels', diff --git a/astara/test/unit/api/test_keystone.py b/astara/test/unit/api/test_keystone.py index 9d7c070f..9bf5b08d 100644 --- a/astara/test/unit/api/test_keystone.py +++ b/astara/test/unit/api/test_keystone.py @@ -13,9 +13,9 @@ # under the License. import mock -from akanda.rug.api import keystone +from astara.api import keystone -from akanda.rug.test.unit import base +from astara.test.unit import base from oslo_config import cfg diff --git a/astara/test/unit/api/test_neutron_wrapper.py b/astara/test/unit/api/test_neutron_wrapper.py index a43ca368..2a6c9264 100644 --- a/astara/test/unit/api/test_neutron_wrapper.py +++ b/astara/test/unit/api/test_neutron_wrapper.py @@ -20,8 +20,8 @@ import copy import mock import netaddr -from akanda.rug.test.unit import base -from akanda.rug.api import neutron +from astara.test.unit import base +from astara.api import neutron class TestuNeutronModels(base.RugTestBase): @@ -244,9 +244,9 @@ class FakeConf: class TestNeutronWrapper(base.RugTestBase): - @mock.patch('akanda.rug.api.neutron.cfg') - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') - @mock.patch('akanda.rug.api.neutron.importutils') + @mock.patch('astara.api.neutron.cfg') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') + @mock.patch('astara.api.neutron.importutils') def test_purge_management_interface(self, import_utils, ak_wrapper, cfg): conf = mock.Mock() driver = mock.Mock() @@ -265,7 +265,7 @@ class TestNeutronWrapper(base.RugTestBase): 'PORT1', {'port': {'device_id': ''}} ) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_neutron_router_status_update_error(self, client_wrapper): urs = client_wrapper.return_value.update_status urs.side_effect = RuntimeError('should be caught') @@ -273,14 +273,14 @@ class TestNeutronWrapper(base.RugTestBase): neutron_wrapper = neutron.Neutron(conf) neutron_wrapper.update_router_status('router-id', 'new-status') - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def _test_create_vrrp_port_success_hlpr(self, ext_enabled, client_wrapper): conf = mock.Mock() conf.neutron_port_security_extension_enabled = ext_enabled expected_port_data = { 'port': { - 'name': 'AKANDA:VRRP:obj_id', + 'name': 'ASTARA:VRRP:obj_id', 'admin_state_up': True, 'network_id': 'the_net_id', 'fixed_ips': [], @@ -314,7 +314,7 @@ class TestNeutronWrapper(base.RugTestBase): def test_create_vrrp_port_success_port_security_disabled(self): self._test_create_vrrp_port_success_hlpr(False) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_create_vrrp_port_error(self, client_wrapper): neutron_wrapper = neutron.Neutron(mock.Mock()) api_client = neutron_wrapper.api_client @@ -327,7 +327,7 @@ class TestNeutronWrapper(base.RugTestBase): 'the_net_id' ) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_delete_vrrp_ports(self, client_wrapper): conf = mock.Mock() neutron_wrapper = neutron.Neutron(conf) @@ -339,12 +339,12 @@ class TestNeutronWrapper(base.RugTestBase): neutron_wrapper.api_client.delete_port = mock.Mock() neutron_wrapper.delete_vrrp_port(object_id='foo') neutron_wrapper.api_client.list_ports.assert_called_with( - name='AKANDA:VRRP:foo' + name='ASTARA:VRRP:foo' ) neutron_wrapper.api_client.delete_port.assert_called_with( 'fake_port_id') - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_delete_vrrp_ports_not_found(self, client_wrapper): conf = mock.Mock() neutron_wrapper = neutron.Neutron(conf) @@ -353,8 +353,11 @@ class TestNeutronWrapper(base.RugTestBase): ) neutron_wrapper.api_client.delete_port = mock.Mock() neutron_wrapper.delete_vrrp_port(object_id='foo') - neutron_wrapper.api_client.list_ports.assert_called_with( - name='AKANDA:VRRP:foo' + neutron_wrapper.api_client.list_ports.assert_has_calls( + [ + mock.call(name='ASTARA:VRRP:foo'), + mock.call(name='AKANDA:VRRP:foo'), + ] ) self.assertFalse(neutron_wrapper.api_client.delete_port.called) @@ -453,7 +456,7 @@ class TestExternalPort(base.RugTestBase): self.conf.external_network_id = self.EXTERNAL_NET_ID self.router = neutron.Router.from_dict(self.ROUTER) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_create(self, client_wrapper): mock_client = mock.Mock() mock_client.show_router.return_value = {'router': self.ROUTER} @@ -467,7 +470,7 @@ class TestExternalPort(base.RugTestBase): port = neutron_wrapper.create_router_external_port(self.router) self.assertEqual(port.id, self.EXTERNAL_PORT_ID) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_create_missing_gateway_port(self, client_wrapper): self.conf.retry_delay = 0 mock_client = mock.Mock() @@ -486,7 +489,7 @@ class TestExternalPort(base.RugTestBase): self.router ) - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_missing_v4(self, client_wrapper): mock_client = mock.Mock() @@ -509,7 +512,7 @@ class TestExternalPort(base.RugTestBase): else: self.fail('Should have seen MissingIPAllocation') - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_missing_v6(self, client_wrapper): mock_client = mock.Mock() @@ -532,7 +535,7 @@ class TestExternalPort(base.RugTestBase): else: self.fail('Should have seen MissingIPAllocation') - @mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') + @mock.patch('astara.api.neutron.AstaraExtClientWrapper') def test_missing_both(self, client_wrapper): mock_client = mock.Mock() diff --git a/astara/test/unit/api/test_nova_wrapper.py b/astara/test/unit/api/test_nova_wrapper.py index 020ef002..47cc1a38 100644 --- a/astara/test/unit/api/test_nova_wrapper.py +++ b/astara/test/unit/api/test_nova_wrapper.py @@ -18,12 +18,11 @@ from datetime import datetime, timedelta import mock - -from six.moves import builtins as __builtins__ -from akanda.rug.api import nova -from akanda.rug.test.unit import base - from novaclient import exceptions as novaclient_exceptions +from six.moves import builtins as __builtins__ + +from astara.api import nova +from astara.test.unit import base class FakeNovaServer(object): @@ -412,7 +411,7 @@ class TestPezInstanceProvider(base.RugTestBase): self.nova_client_cls = patch.start() self.nova_client_cls.return_value = self.nova_client - patch = mock.patch('akanda.rug.pez.rpcapi.AkandaPezAPI') + patch = mock.patch('astara.pez.rpcapi.AstaraPezAPI') self.rpc_client = mock.Mock() self.rpc_client_cls = patch.start() self.rpc_client_cls.return_value = self.rpc_client diff --git a/astara/test/unit/api/test_rug_api.py b/astara/test/unit/api/test_rug_api.py index d4de7688..4b34acc7 100644 --- a/astara/test/unit/api/test_rug_api.py +++ b/astara/test/unit/api/test_rug_api.py @@ -1,13 +1,12 @@ import unittest - -import mock import socket -import webob + from cliff import commandmanager - -from akanda.rug.api import rug - +import mock from oslo_log import loggers +import webob + +from astara.api import rug try: @@ -22,7 +21,7 @@ class TestRugAPI(unittest.TestCase): def setUp(self): ctl = mock.Mock() ctl.return_value.command_manager = commandmanager.CommandManager( - 'akanda.rug.cli' + 'astara.cli' ) self.api = rug.RugAPI(ctl) self.ctl = ctl.return_value diff --git a/astara/test/unit/base.py b/astara/test/unit/base.py index 37f162ec..85b16006 100644 --- a/astara/test/unit/base.py +++ b/astara/test/unit/base.py @@ -26,7 +26,7 @@ class RugTestBase(testtools.TestCase): super(RugTestBase, self).setUp() self.test_config = self.useFixture(config_fixture.Config(cfg.CONF)) self.argv = [] - cfg.CONF.import_opt('host', 'akanda.rug.main') + cfg.CONF.import_opt('host', 'astara.main') def config(self, **kw): """Override config options for a test.""" diff --git a/astara/test/unit/common/test_agent_linux_utils.py b/astara/test/unit/common/test_agent_linux_utils.py index d32f7871..002ab51b 100644 --- a/astara/test/unit/common/test_agent_linux_utils.py +++ b/astara/test/unit/common/test_agent_linux_utils.py @@ -36,7 +36,7 @@ import fixtures import mock import testtools -from akanda.rug.common.linux import utils +from astara.common.linux import utils class AgentUtilsExecuteTest(testtools.TestCase): diff --git a/astara/test/unit/common/test_config.py b/astara/test/unit/common/test_config.py index cf5bdf06..81fedf5a 100644 --- a/astara/test/unit/common/test_config.py +++ b/astara/test/unit/common/test_config.py @@ -15,8 +15,8 @@ import mock -from akanda.rug.common import config -from akanda.rug.test.unit import base +from astara.common import config +from astara.test.unit import base class TestConfig(base.RugTestBase): diff --git a/astara/test/unit/common/test_hash_ring.py b/astara/test/unit/common/test_hash_ring.py index fc5c4d7b..abcb3fb0 100644 --- a/astara/test/unit/common/test_hash_ring.py +++ b/astara/test/unit/common/test_hash_ring.py @@ -20,9 +20,9 @@ import mock from oslo_config import cfg from testtools import matchers -from akanda.rug.common import hash_ring -from akanda.rug.test.unit import base -# from akanda.rug.tests.unit.db import base as db_base +from astara.common import hash_ring +from astara.test.unit import base +# from astara.tests.unit.db import base as db_base CONF = cfg.CONF diff --git a/astara/test/unit/common/test_linux_interface.py b/astara/test/unit/common/test_linux_interface.py index ab924274..ebfed08c 100644 --- a/astara/test/unit/common/test_linux_interface.py +++ b/astara/test/unit/common/test_linux_interface.py @@ -37,9 +37,9 @@ import unittest import mock from oslo_config import cfg -from akanda.rug.common.linux import interface -from akanda.rug.common.linux import ip_lib -from akanda.rug.common.linux import utils +from astara.common.linux import interface +from astara.common.linux import ip_lib +from astara.common.linux import utils class BaseChild(interface.LinuxInterfaceDriver): @@ -180,7 +180,7 @@ class TestOVSInterfaceDriver(TestBase): def test_unplug(self, bridge=None): if not bridge: bridge = 'br-int' - with mock.patch('akanda.rug.common.linux.ovs_lib.OVSBridge') as ovs_br: + with mock.patch('astara.common.linux.ovs_lib.OVSBridge') as ovs_br: ovs = interface.OVSInterfaceDriver(self.conf) ovs.unplug('tap0') ovs_br.assert_has_calls([mock.call(bridge, 'sudo'), @@ -231,7 +231,7 @@ class TestBridgeInterfaceDriver(TestBase): def test_plug_dev_exists(self): self.device_exists.return_value = True with mock.patch( - 'akanda.rug.common.linux.interface.LOG.warning') as log: + 'astara.common.linux.interface.LOG.warning') as log: br = interface.BridgeInterfaceDriver(self.conf) br.plug('01234567-1234-1234-99', 'port-1234', @@ -243,7 +243,7 @@ class TestBridgeInterfaceDriver(TestBase): def test_unplug_no_device(self): self.device_exists.return_value = False self.ip_dev().link.delete.side_effect = RuntimeError - with mock.patch('akanda.rug.common.linux.interface.LOG') as log: + with mock.patch('astara.common.linux.interface.LOG') as log: br = interface.BridgeInterfaceDriver(self.conf) br.unplug('tap0') [mock.call(), mock.call('tap0', 'sudo'), mock.call().link.delete()] @@ -251,7 +251,7 @@ class TestBridgeInterfaceDriver(TestBase): def test_unplug(self): self.device_exists.return_value = True - with mock.patch('akanda.rug.common.linux.interface.LOG.debug') as log: + with mock.patch('astara.common.linux.interface.LOG.debug') as log: br = interface.BridgeInterfaceDriver(self.conf) br.unplug('tap0') self.assertEqual(log.call_count, 1) diff --git a/astara/test/unit/common/test_linux_ip_lib.py b/astara/test/unit/common/test_linux_ip_lib.py index 3158d250..a9872d9d 100644 --- a/astara/test/unit/common/test_linux_ip_lib.py +++ b/astara/test/unit/common/test_linux_ip_lib.py @@ -37,7 +37,7 @@ import unittest import mock -from akanda.rug.common.linux import ip_lib +from astara.common.linux import ip_lib NETNS_SAMPLE = [ @@ -120,7 +120,7 @@ SUBNET_SAMPLE2 = ("10.0.0.0/24 dev tap1d7888a7-10 scope link src 10.0.0.2\n" class TestSubProcessBase(unittest.TestCase): def setUp(self): super(TestSubProcessBase, self).setUp() - self.execute_p = mock.patch('akanda.rug.common.linux.utils.execute') + self.execute_p = mock.patch('astara.common.linux.utils.execute') self.execute = self.execute_p.start() self.addCleanup(self.execute_p.stop) @@ -646,7 +646,7 @@ class TestIpNetnsCommand(TestIPCmdBase): self.assertEqual(ns.namespace, 'ns') def test_delete_namespace(self): - with mock.patch('akanda.rug.common.linux.utils.execute'): + with mock.patch('astara.common.linux.utils.execute'): self.netns_cmd.delete('ns') self._assert_sudo([], ('delete', 'ns'), force_root_namespace=True) @@ -666,7 +666,7 @@ class TestIpNetnsCommand(TestIPCmdBase): def test_execute(self): self.parent.namespace = 'ns' - with mock.patch('akanda.rug.common.linux.utils.execute') as execute: + with mock.patch('astara.common.linux.utils.execute') as execute: self.netns_cmd.execute(['ip', 'link', 'list']) execute.assert_called_once_with(['ip', 'netns', 'exec', 'ns', 'ip', 'link', 'list'], @@ -675,7 +675,7 @@ class TestIpNetnsCommand(TestIPCmdBase): def test_execute_env_var_prepend(self): self.parent.namespace = 'ns' - with mock.patch('akanda.rug.common.linux.utils.execute') as execute: + with mock.patch('astara.common.linux.utils.execute') as execute: env = collections.OrderedDict([('FOO', 1), ('BAR', 2)]) self.netns_cmd.execute(['ip', 'link', 'list'], env) execute.assert_called_once_with( diff --git a/astara/test/unit/db/base.py b/astara/test/unit/db/base.py index 92bbee46..63a0d3c6 100644 --- a/astara/test/unit/db/base.py +++ b/astara/test/unit/db/base.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -"""Akanda Rug DB test base class.""" +"""Astara DB test base class.""" import os import shutil @@ -22,9 +22,9 @@ import fixtures from oslo_config import cfg from oslo_db.sqlalchemy import enginefacade -from akanda.rug.db import api as dbapi -from akanda.rug.db.sqlalchemy import migration -from akanda.rug.test.unit import base +from astara.db import api as dbapi +from astara.db.sqlalchemy import migration +from astara.test.unit import base CONF = cfg.CONF diff --git a/astara/test/unit/db/test_debug_mode.py b/astara/test/unit/db/test_debug_mode.py index 7856f7fb..d2b5f5db 100644 --- a/astara/test/unit/db/test_debug_mode.py +++ b/astara/test/unit/db/test_debug_mode.py @@ -16,7 +16,7 @@ import uuid -from akanda.rug.test.unit.db import base +from astara.test.unit.db import base class TestDBDebugModes(base.DbTestCase): diff --git a/astara/test/unit/drivers/test_factory.py b/astara/test/unit/drivers/test_factory.py index abeb75c0..006602c3 100644 --- a/astara/test/unit/drivers/test_factory.py +++ b/astara/test/unit/drivers/test_factory.py @@ -12,9 +12,9 @@ # License for the specific language governing permissions and limitations # under the License. -from akanda.rug.test.unit import base +from astara.test.unit import base -from akanda.rug import drivers +from astara import drivers class DriverFactoryTest(base.RugTestBase): diff --git a/astara/test/unit/drivers/test_loadbalancer.py b/astara/test/unit/drivers/test_loadbalancer.py index 303446fc..e45ce2d1 100644 --- a/astara/test/unit/drivers/test_loadbalancer.py +++ b/astara/test/unit/drivers/test_loadbalancer.py @@ -16,11 +16,11 @@ import mock from neutronclient.common import exceptions as neutron_exceptions -from akanda.rug import event -from akanda.rug.api import neutron -from akanda.rug.drivers import loadbalancer, states +from astara import event +from astara.api import neutron +from astara.drivers import loadbalancer, states -from akanda.rug.test.unit import base, fakes +from astara.test.unit import base, fakes class LoadBalancerDriverTest(base.RugTestBase): @@ -46,7 +46,7 @@ class LoadBalancerDriverTest(base.RugTestBase): id=self.loadbalancer_id, ) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer.post_init') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer.post_init') def test_init(self, mock_post_init): lb = self._init_driver() lb.post_init = mock.Mock() @@ -77,8 +77,8 @@ class LoadBalancerDriverTest(base.RugTestBase): lb = self._init_driver() lb.pre_plug(self.ctx) - @mock.patch('akanda.rug.api.config.loadbalancer.build_config') - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.api.config.loadbalancer.build_config') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_build_config(self, mock_ensure_cache, mock_build_config): lb = self._init_driver() fake_lb = fakes.fake_loadbalancer() @@ -93,7 +93,7 @@ class LoadBalancerDriverTest(base.RugTestBase): self.ctx.neutron, lb._loadbalancer, fake_mgt_port, fake_iface_map) self.assertEqual(res, 'fake_config') - @mock.patch('akanda.rug.api.akanda_client.update_config') + @mock.patch('astara.api.astara_client.update_config') def test_update_config(self, mock_update_config): lb = self._init_driver() lb.update_config(management_address='10.0.0.1', config='fake_config') @@ -102,7 +102,7 @@ class LoadBalancerDriverTest(base.RugTestBase): lb.mgt_port, 'fake_config',) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_make_ports(self, mock_ensure_cache): lb = self._init_driver() fake_lb = fakes.fake_loadbalancer() @@ -115,7 +115,7 @@ class LoadBalancerDriverTest(base.RugTestBase): res = callback() self.assertEqual(res, ('fake_mgt_port', [fake_lb_port])) - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_retry_loop(self, mocked_neutron_api): neutron_client = mock.Mock() returned_value = [Exception, []] @@ -148,21 +148,21 @@ class LoadBalancerDriverTest(base.RugTestBase): mock.ANY ) - @mock.patch('akanda.rug.drivers.loadbalancer.LOG') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.loadbalancer.LOG') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_unauthorized(self, mocked_neutron_api, log): exc = neutron_exceptions.Unauthorized self._exit_loop_bad_auth(mocked_neutron_api, log, exc) - @mock.patch('akanda.rug.drivers.loadbalancer.LOG') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.loadbalancer.LOG') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_forbidden(self, mocked_neutron_api, log): exc = neutron_exceptions.Forbidden self._exit_loop_bad_auth(mocked_neutron_api, log, exc) - @mock.patch('akanda.rug.drivers.loadbalancer.LOG.warning') - @mock.patch('akanda.rug.drivers.loadbalancer.LOG.debug') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.loadbalancer.LOG.warning') + @mock.patch('astara.drivers.loadbalancer.LOG.debug') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_retry_loop_logging( self, mocked_neutron_api, log_debug, log_warning): neutron_client = mock.Mock() @@ -300,7 +300,7 @@ class LoadBalancerDriverTest(base.RugTestBase): def test_process_notification_not_subscribed(self): self._test_notification('whocares.about.this', {}, None) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_get_state_no_lb(self, mock_ensure_cache): lb = self._init_driver() lb._loadbalancer = None @@ -310,7 +310,7 @@ class LoadBalancerDriverTest(base.RugTestBase): ) mock_ensure_cache.assert_called_with(self.ctx) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_get_state(self, mock_ensure_cache): lb = self._init_driver() fake_lb = fakes.fake_loadbalancer() @@ -321,7 +321,7 @@ class LoadBalancerDriverTest(base.RugTestBase): ) mock_ensure_cache.assert_called_with(self.ctx) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_synchronize_state_no_router(self, mock_ensure_cache): lb = self._init_driver() lb._loadbalancer = None @@ -329,7 +329,7 @@ class LoadBalancerDriverTest(base.RugTestBase): mock_ensure_cache.assert_called_with(self.ctx) self.assertFalse(self.ctx.neutron.update_loadbalancer_status.called) - @mock.patch('akanda.rug.drivers.loadbalancer.LoadBalancer._ensure_cache') + @mock.patch('astara.drivers.loadbalancer.LoadBalancer._ensure_cache') def test_synchronize_state(self, mock_ensure_cache): lb = self._init_driver() fake_lb = fakes.fake_loadbalancer() @@ -342,7 +342,7 @@ class LoadBalancerDriverTest(base.RugTestBase): ) self.assertEquals(lb._last_synced_status, 'ACTIVE') - @mock.patch('akanda.rug.api.akanda_client.get_interfaces') + @mock.patch('astara.api.astara_client.get_interfaces') def test_get_interfaces(self, mock_get_interfaces): mock_get_interfaces.return_value = ['fake_interface'] lb = self._init_driver() @@ -351,7 +351,7 @@ class LoadBalancerDriverTest(base.RugTestBase): mock_get_interfaces.assert_called_with( 'fake_mgt_addr', self.mgt_port) - @mock.patch('akanda.rug.api.akanda_client.is_alive') + @mock.patch('astara.api.astara_client.is_alive') def test_is_alive(self, mock_is_alive): mock_is_alive.return_value = False lb = self._init_driver() diff --git a/astara/test/unit/drivers/test_router.py b/astara/test/unit/drivers/test_router.py index 7a5ccee4..2f10790f 100644 --- a/astara/test/unit/drivers/test_router.py +++ b/astara/test/unit/drivers/test_router.py @@ -16,11 +16,11 @@ import mock from neutronclient.common import exceptions as neutron_exceptions -from akanda.rug import event -from akanda.rug.api import neutron -from akanda.rug.drivers import router, states +from astara import event +from astara.api import neutron +from astara.drivers import router, states -from akanda.rug.test.unit import base, fakes +from astara.test.unit import base, fakes class RouterDriverTest(base.RugTestBase): @@ -46,7 +46,7 @@ class RouterDriverTest(base.RugTestBase): id=self.router_id, ) - @mock.patch('akanda.rug.drivers.router.Router.post_init') + @mock.patch('astara.drivers.router.Router.post_init') def test_init(self, mock_post_init): rtr = self._init_driver() rtr.post_init = mock.Mock() @@ -55,7 +55,7 @@ class RouterDriverTest(base.RugTestBase): 'ak-%s-%s' % (rtr.RESOURCE_NAME, self.router_id)) mock_post_init.assert_called_with(self.ctx) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_post_init(self, mock_ensure_cache): rtr = self._init_driver() rtr.post_init(self.ctx) @@ -85,14 +85,14 @@ class RouterDriverTest(base.RugTestBase): rtr._router = fake_router_obj self.assertEqual(set(rtr.ports), set(fake_router_obj.ports)) - @mock.patch('akanda.rug.drivers.router.Router.pre_plug') + @mock.patch('astara.drivers.router.Router.pre_plug') def test_pre_boot(self, mock_pre_plug): rtr = self._init_driver() rtr.pre_boot(self.ctx) mock_pre_plug.assert_called_with(self.ctx) - @mock.patch('akanda.rug.api.config.router.build_config') - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.api.config.router.build_config') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_build_config(self, mock_ensure_cache, mock_build_config): rtr = self._init_driver() fake_router_obj = fakes.fake_router() @@ -107,7 +107,7 @@ class RouterDriverTest(base.RugTestBase): self.ctx.neutron, rtr._router, fake_mgt_port, fake_iface_map) self.assertEqual(res, 'fake_config') - @mock.patch('akanda.rug.api.akanda_client.update_config') + @mock.patch('astara.api.astara_client.update_config') def test_update_config(self, mock_update_config): rtr = self._init_driver() rtr.update_config(management_address='10.0.0.1', config='fake_config') @@ -135,7 +135,7 @@ class RouterDriverTest(base.RugTestBase): rtr.pre_plug(self.ctx) self.assertFalse(self.ctx.neutron.create_router_external_port.called) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_make_ports(self, mock_ensure_cache): rtr = self._init_driver() fake_router_obj = fakes.fake_router() @@ -160,7 +160,7 @@ class RouterDriverTest(base.RugTestBase): mock.call(rtr.id, label='MGT')] self.ctx.neutron.delete_vrrp_port.assert_has_calls(expected_ports) - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_retry_loop(self, mocked_neutron_api): neutron_client = mock.Mock() returned_value = [Exception, []] @@ -193,21 +193,21 @@ class RouterDriverTest(base.RugTestBase): mock.ANY ) - @mock.patch('akanda.rug.drivers.router.LOG') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.router.LOG') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_unauthorized(self, mocked_neutron_api, log): exc = neutron_exceptions.Unauthorized self._exit_loop_bad_auth(mocked_neutron_api, log, exc) - @mock.patch('akanda.rug.drivers.router.LOG') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.router.LOG') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_forbidden(self, mocked_neutron_api, log): exc = neutron_exceptions.Forbidden self._exit_loop_bad_auth(mocked_neutron_api, log, exc) - @mock.patch('akanda.rug.drivers.router.LOG.warning') - @mock.patch('akanda.rug.drivers.router.LOG.debug') - @mock.patch('akanda.rug.api.neutron.Neutron') + @mock.patch('astara.drivers.router.LOG.warning') + @mock.patch('astara.drivers.router.LOG.debug') + @mock.patch('astara.api.neutron.Neutron') def test_pre_populate_retry_loop_logging( self, mocked_neutron_api, log_debug, log_warning): neutron_client = mock.Mock() @@ -329,7 +329,7 @@ class RouterDriverTest(base.RugTestBase): payload = {'router': {'id': 'fake_router_id'}} self._test_notification('whocares.about.this', payload, None) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_get_state_no_router(self, mock_ensure_cache): rtr = self._init_driver() rtr._router = None @@ -339,7 +339,7 @@ class RouterDriverTest(base.RugTestBase): ) mock_ensure_cache.assert_called_with(self.ctx) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_get_state(self, mock_ensure_cache): rtr = self._init_driver() fake_router = fakes.fake_router() @@ -350,7 +350,7 @@ class RouterDriverTest(base.RugTestBase): ) mock_ensure_cache.assert_called_with(self.ctx) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_synchronize_state_no_router(self, mock_ensure_cache): rtr = self._init_driver() rtr._router = None @@ -358,7 +358,7 @@ class RouterDriverTest(base.RugTestBase): mock_ensure_cache.assert_called_with(self.ctx) self.assertFalse(self.ctx.neutron.update_router_status.called) - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_synchronize_state(self, mock_ensure_cache): rtr = self._init_driver() fake_router_obj = fakes.fake_router() @@ -371,7 +371,7 @@ class RouterDriverTest(base.RugTestBase): ) self.assertEquals(rtr._last_synced_status, 'ACTIVE') - @mock.patch('akanda.rug.drivers.router.Router._ensure_cache') + @mock.patch('astara.drivers.router.Router._ensure_cache') def test_synchronize_state_no_change(self, mock_ensure_cache): rtr = self._init_driver() fake_router_obj = fakes.fake_router() @@ -381,7 +381,7 @@ class RouterDriverTest(base.RugTestBase): mock_ensure_cache.assert_called_with(self.ctx) self.assertFalse(self.ctx.neutron.update_router_status.called) - @mock.patch('akanda.rug.api.akanda_client.get_interfaces') + @mock.patch('astara.api.astara_client.get_interfaces') def test_get_interfaces(self, mock_get_interfaces): mock_get_interfaces.return_value = ['fake_interface'] rtr = self._init_driver() @@ -390,7 +390,7 @@ class RouterDriverTest(base.RugTestBase): mock_get_interfaces.assert_called_with( 'fake_mgt_addr', self.mgt_port) - @mock.patch('akanda.rug.api.akanda_client.is_alive') + @mock.patch('astara.api.astara_client.is_alive') def test_is_alive(self, mock_is_alive): mock_is_alive.return_value = False rtr = self._init_driver() diff --git a/astara/test/unit/fakes.py b/astara/test/unit/fakes.py index e9827433..1d1d2357 100644 --- a/astara/test/unit/fakes.py +++ b/astara/test/unit/fakes.py @@ -14,9 +14,9 @@ import mock -from akanda.rug.drivers import base -from akanda.rug.api import neutron, nova -from akanda.rug import worker +from astara.drivers import base +from astara.api import neutron, nova +from astara import worker def fake_loadbalancer(): diff --git a/astara/test/unit/openvswitch/test_ovs_lib.py b/astara/test/unit/openvswitch/test_ovs_lib.py index 41a9aeee..16188d01 100644 --- a/astara/test/unit/openvswitch/test_ovs_lib.py +++ b/astara/test/unit/openvswitch/test_ovs_lib.py @@ -36,7 +36,7 @@ import unittest import uuid import mox -from akanda.rug.common.linux import ovs_lib, utils +from astara.common.linux import ovs_lib, utils def generate_uuid(): diff --git a/astara/test/unit/pez/test_pool_manager.py b/astara/test/unit/pez/test_pool_manager.py index 60aa9cc7..86eb7570 100644 --- a/astara/test/unit/pez/test_pool_manager.py +++ b/astara/test/unit/pez/test_pool_manager.py @@ -18,8 +18,8 @@ import copy import mock import time -from akanda.rug.pez import pool as ak_pool -from akanda.rug.test.unit import base +from astara.pez import pool as ak_pool +from astara.test.unit import base class MockInstance(object): @@ -47,7 +47,7 @@ class PoolManagerTest(base.RugTestBase): [setattr(p, 'status', status) for p in pool] return pool - @mock.patch('akanda.rug.pez.pool.PezPoolManager.delete_instance') + @mock.patch('astara.pez.pool.PezPoolManager.delete_instance') def test__check_err_instances(self, mock_delete): pool = self._create_pool() pool[1].id = 'errored_instance_id' diff --git a/astara/test/unit/test_coordination.py b/astara/test/unit/test_coordination.py index 6b706d04..0894706b 100644 --- a/astara/test/unit/test_coordination.py +++ b/astara/test/unit/test_coordination.py @@ -4,9 +4,9 @@ from Queue import Queue from tooz import coordination as tz_coordination -from akanda.rug import coordination -from akanda.rug import event -from akanda.rug.test.unit import base +from astara import coordination +from astara import event +from astara.test.unit import base class TestRugCoordinator(base.RugTestBase): @@ -38,7 +38,7 @@ class TestRugCoordinator(base.RugTestBase): self.addCleanup(mock.patch.stopall) self.queue = Queue() - @mock.patch('akanda.rug.coordination.RugCoordinator.start') + @mock.patch('astara.coordination.RugCoordinator.start') def test_setup(self, fake_start): self.coordinator = coordination.RugCoordinator(self.queue) self.assertEqual('memcache://foo_cache', self.coordinator.url) @@ -47,7 +47,7 @@ class TestRugCoordinator(base.RugTestBase): self.assertEqual('foo_host', self.coordinator.host) self.assertTrue(fake_start.called) - @mock.patch('akanda.rug.coordination.RugCoordinator.cluster_changed') + @mock.patch('astara.coordination.RugCoordinator.cluster_changed') def test_start(self, fake_cluster_changed): self.coordinator = coordination.RugCoordinator(self.queue) self.assertTrue(self.fake_coord.start.called) @@ -73,7 +73,7 @@ class TestRugCoordinator(base.RugTestBase): return self.test_start() @mock.patch('time.sleep') - @mock.patch('akanda.rug.coordination.RugCoordinator.stop') + @mock.patch('astara.coordination.RugCoordinator.stop') def test_run(self, fake_stop, fake_sleep): fake_sleep.side_effect = coordination.CoordinatorDone() self.coordinator = coordination.RugCoordinator(self.queue) @@ -81,7 +81,7 @@ class TestRugCoordinator(base.RugTestBase): self.assertTrue(self.fake_coord.heartbeat.called) self.assertTrue(self.fake_coord.run_watchers.called) - @mock.patch('akanda.rug.coordination.RugCoordinator.is_leader') + @mock.patch('astara.coordination.RugCoordinator.is_leader') def test_stop_not_leader(self, fake_is_leader): fake_is_leader.__get__ = mock.Mock(return_value=False) self.coordinator = coordination.RugCoordinator(self.queue) @@ -89,7 +89,7 @@ class TestRugCoordinator(base.RugTestBase): self.fake_coord.leave_group.assert_called_with(self.coordinator.group) self.assertFalse(self.fake_coord.stand_down_group_leader.called) - @mock.patch('akanda.rug.coordination.RugCoordinator.is_leader') + @mock.patch('astara.coordination.RugCoordinator.is_leader') def test_stop_leader(self, fake_is_leader): fake_is_leader.__get__ = mock.Mock(return_value=True) self.coordinator = coordination.RugCoordinator(self.queue) @@ -116,8 +116,8 @@ class TestRugCoordinator(base.RugTestBase): self.assertEqual(self.coordinator.is_leader, True) self.fake_coord.get_leader.assert_called_with(self.coordinator.group) - @mock.patch('akanda.rug.coordination.RugCoordinator.start') - @mock.patch('akanda.rug.coordination.RugCoordinator.members') + @mock.patch('astara.coordination.RugCoordinator.start') + @mock.patch('astara.coordination.RugCoordinator.members') def test_cluster_changed(self, fake_members, fake_start): fake_members.__get__ = mock.Mock(return_value=['foo', 'bar']) self.coordinator = coordination.RugCoordinator(self.queue) diff --git a/astara/test/unit/test_debug.py b/astara/test/unit/test_debug.py index a2909dbb..11254259 100644 --- a/astara/test/unit/test_debug.py +++ b/astara/test/unit/test_debug.py @@ -19,8 +19,8 @@ import mock from oslo_config import cfg -from akanda.rug import debug -from akanda.rug.test.unit import base +from astara import debug +from astara.test.unit import base class TestDebug(base.RugTestBase): @@ -31,8 +31,8 @@ class TestDebug(base.RugTestBase): cfg.CONF.unregister_opts(debug.DEBUG_OPTS) super(TestDebug, self).tearDown() - @mock.patch('akanda.rug.worker.WorkerContext') - @mock.patch('akanda.rug.state.Automaton') + @mock.patch('astara.worker.WorkerContext') + @mock.patch('astara.state.Automaton') @mock.patch('pdb.set_trace') def test_debug_one_router(self, set_trace, automaton, ctx): ctx.return_value.neutron.get_router_detail.return_value = mock.Mock( diff --git a/astara/test/unit/test_health.py b/astara/test/unit/test_health.py index a07a617f..1229c2b5 100644 --- a/astara/test/unit/test_health.py +++ b/astara/test/unit/test_health.py @@ -14,9 +14,9 @@ import mock -from akanda.rug import event -from akanda.rug import health -from akanda.rug.test.unit import base +from astara import event +from astara import health +from astara.test.unit import base class BreakLoop(Exception): diff --git a/astara/test/unit/test_instance_manager.py b/astara/test/unit/test_instance_manager.py index 5461652d..0b835f6b 100644 --- a/astara/test/unit/test_instance_manager.py +++ b/astara/test/unit/test_instance_manager.py @@ -21,11 +21,11 @@ import mock import unittest2 as unittest from datetime import datetime, timedelta -from akanda.rug import instance_manager -from akanda.rug.api import nova -from akanda.rug.drivers import states -from akanda.rug.test.unit import base -from akanda.rug.test.unit import fakes +from astara import instance_manager +from astara.api import nova +from astara.drivers import states +from astara.test.unit import base +from astara.test.unit import fakes from oslo_config import cfg @@ -75,7 +75,7 @@ class TestInstanceManager(base.RugTestBase): self.ctx = mock.Mock() self.neutron = self.ctx.neutron self.config(boot_timeout=30) - self.config(akanda_mgt_service_port=5000) + self.config(astara_mgt_service_port=5000) self.config(max_retries=3) self.addCleanup(mock.patch.stopall) diff --git a/astara/test/unit/test_main.py b/astara/test/unit/test_main.py index a65c517d..dc7f7768 100644 --- a/astara/test/unit/test_main.py +++ b/astara/test/unit/test_main.py @@ -20,17 +20,17 @@ import socket import mock import testtools -from akanda.rug import main -from akanda.rug import notifications as ak_notifications -from akanda.rug.test.unit import base +from astara import main +from astara import notifications as ak_notifications +from astara.test.unit import base -@mock.patch('akanda.rug.main.neutron_api') -@mock.patch('akanda.rug.main.multiprocessing') -@mock.patch('akanda.rug.main.notifications') -@mock.patch('akanda.rug.main.scheduler') -@mock.patch('akanda.rug.main.populate') -@mock.patch('akanda.rug.main.health') +@mock.patch('astara.main.neutron_api') +@mock.patch('astara.main.multiprocessing') +@mock.patch('astara.main.notifications') +@mock.patch('astara.main.scheduler') +@mock.patch('astara.main.populate') +@mock.patch('astara.main.health') class TestMainPippo(base.RugTestBase): def test_shuffle_notifications(self, health, populate, scheduler, notifications, multiprocessing, @@ -62,7 +62,7 @@ class TestMainPippo(base.RugTestBase): '9306bbd8-f3cc-11e2-bd68-080027e60b25', 'message' ) - @mock.patch('akanda.rug.main.shuffle_notifications') + @mock.patch('astara.main.shuffle_notifications') def test_ensure_local_service_port(self, shuffle_notifications, health, populate, scheduler, notifications, multiprocessing, neutron_api): @@ -70,7 +70,7 @@ class TestMainPippo(base.RugTestBase): neutron = neutron_api.Neutron.return_value neutron.ensure_local_service_port.assert_called_once_with() - @mock.patch('akanda.rug.main.shuffle_notifications') + @mock.patch('astara.main.shuffle_notifications') def test_ceilometer_disabled(self, shuffle_notifications, health, populate, scheduler, notifications, multiprocessing, neutron_api): @@ -82,7 +82,7 @@ class TestMainPippo(base.RugTestBase): self.assertEqual(len(notifications.Publisher.mock_calls), 0) self.assertEqual(len(notifications.NoopPublisher.mock_calls), 2) - @mock.patch('akanda.rug.main.shuffle_notifications') + @mock.patch('astara.main.shuffle_notifications') def test_ceilometer_enabled(self, shuffle_notifications, health, populate, scheduler, notifications, multiprocessing, neutron_api): @@ -95,15 +95,15 @@ class TestMainPippo(base.RugTestBase): self.assertEqual(len(notifications.NoopPublisher.mock_calls), 0) -@mock.patch('akanda.rug.api.neutron.importutils') -@mock.patch('akanda.rug.api.neutron.AkandaExtClientWrapper') -@mock.patch('akanda.rug.main.multiprocessing') -@mock.patch('akanda.rug.main.notifications') -@mock.patch('akanda.rug.main.scheduler') -@mock.patch('akanda.rug.main.populate') -@mock.patch('akanda.rug.main.health') -@mock.patch('akanda.rug.main.shuffle_notifications') -@mock.patch('akanda.rug.api.neutron.get_local_service_ip') +@mock.patch('astara.api.neutron.importutils') +@mock.patch('astara.api.neutron.AstaraExtClientWrapper') +@mock.patch('astara.main.multiprocessing') +@mock.patch('astara.main.notifications') +@mock.patch('astara.main.scheduler') +@mock.patch('astara.main.populate') +@mock.patch('astara.main.health') +@mock.patch('astara.main.shuffle_notifications') +@mock.patch('astara.api.neutron.get_local_service_ip') class TestMainExtPortBinding(base.RugTestBase): @testtools.skipIf( @@ -113,17 +113,17 @@ class TestMainExtPortBinding(base.RugTestBase): def test_ensure_local_port_host_binding( self, get_local_service_ip, shuffle_notifications, health, populate, scheduler, notifications, multiprocessing, - akanda_wrapper, importutils): + astara_wrapper, importutils): self.test_config.config(plug_external_port=False) def side_effect(**kwarg): return {'ports': {}} - akanda_wrapper.return_value.list_ports.side_effect = side_effect + astara_wrapper.return_value.list_ports.side_effect = side_effect main.main(argv=self.argv) - args, kwargs = akanda_wrapper.return_value.create_port.call_args + args, kwargs = astara_wrapper.return_value.create_port.call_args port = args[0]['port'] self.assertIn('binding:host_id', port) self.assertEqual(port['binding:host_id'], socket.gethostname()) diff --git a/astara/test/unit/test_notifications.py b/astara/test/unit/test_notifications.py index a15b28e1..2efd8393 100644 --- a/astara/test/unit/test_notifications.py +++ b/astara/test/unit/test_notifications.py @@ -20,10 +20,10 @@ import uuid import multiprocessing -from akanda.rug import commands -from akanda.rug import event -from akanda.rug import notifications -from akanda.rug.test.unit import base +from astara import commands +from astara import event +from astara import notifications +from astara.test.unit import base CTXT = { @@ -122,7 +122,7 @@ class TestGetCRUD(base.RugTestBase): fake_tenant.return_value = fake_tenant_id self.notifications_endpoint.info( ctxt=CTXT, - publisher_id='network.akanda', + publisher_id='network.astara', event_type=event_type, payload=payload, metadata={}) if not self.queue.qsize(): @@ -231,16 +231,16 @@ class TestGetCRUD(base.RugTestBase): e.resource.id ) - def test_notification_akanda(self): - e = self._get_event_notification('akanda.bandwidth.used') + def test_notification_astara(self): + e = self._get_event_notification('astara.bandwidth.used') self.assertIs(None, e) def test_notification_cmd_poll(self): - event_type = 'akanda.rug.command' + event_type = 'astara.command' payload = {'command': commands.POLL} self.notifications_endpoint.info( ctxt=CTXT, - publisher_id='network.akanda', + publisher_id='network.astara', event_type=event_type, payload=payload, metadata={}) expected_event = event.Event( diff --git a/astara/test/unit/test_populate.py b/astara/test/unit/test_populate.py index 668149e4..3848bc5b 100644 --- a/astara/test/unit/test_populate.py +++ b/astara/test/unit/test_populate.py @@ -17,12 +17,12 @@ import mock -from akanda.rug.test.unit import base -from akanda.rug.test.unit import fakes +from astara.test.unit import base +from astara.test.unit import fakes -from akanda.rug import populate -from akanda.rug import event -from akanda.rug.event import Resource +from astara import populate +from astara import event +from astara.event import Resource class FakePopulateDriver(object): @@ -33,7 +33,7 @@ class TestPrePopulateWorkers(base.RugTestBase): def setUp(self): super(TestPrePopulateWorkers, self).setUp() - @mock.patch('akanda.rug.drivers.enabled_drivers') + @mock.patch('astara.drivers.enabled_drivers') def test_pre_populate_with_resources(self, enabled_drivers): fake_scheduler = mock.Mock() fake_scheduler.handle_message = mock.Mock() @@ -53,7 +53,7 @@ class TestPrePopulateWorkers(base.RugTestBase): call = mock.call(res.tenant_id, e) self.assertIn(call, fake_scheduler.handle_message.call_args_list) - @mock.patch('akanda.rug.drivers.enabled_drivers') + @mock.patch('astara.drivers.enabled_drivers') def test_pre_populate_with_no_resources(self, enabled_drivers): fake_scheduler = mock.Mock() fake_scheduler.handle_message = mock.Mock() @@ -77,7 +77,7 @@ class TestPrePopulateWorkers(base.RugTestBase): [mock.call.setDaemon(True), mock.call.start()] ) - @mock.patch('akanda.rug.drivers.enabled_drivers') + @mock.patch('astara.drivers.enabled_drivers') def test_repopulate(self, enabled_drivers): drivers = [] for i in range(2): diff --git a/astara/test/unit/test_rpc.py b/astara/test/unit/test_rpc.py index 03b384a4..34c888d6 100644 --- a/astara/test/unit/test_rpc.py +++ b/astara/test/unit/test_rpc.py @@ -15,17 +15,14 @@ # under the License. import mock -import testtools - -from akanda.rug.common import rpc - -from akanda.rug import main # noqa -from akanda.rug import notifications # noqa - from oslo_config import cfg from oslo_config import fixture as config_fixture - import oslo_messaging +import testtools + +from astara.common import rpc +from astara import main # noqa +from astara import notifications # noqa class TestRPC(testtools.TestCase): @@ -145,7 +142,7 @@ class TestConnection(testtools.TestCase): topic='foo_topic', fanout=False, exchange='foo_exchange') fake_get_listener.assert_called_with( 'fake_transport', ['fake_target'], endpoints, - pool='akanda.foo_topic.test_host') + pool='astara.foo_topic.test_host') self.connection._add_server_thread.assert_called_with( 'fake_listener_server') diff --git a/astara/test/unit/test_scheduler.py b/astara/test/unit/test_scheduler.py index 54c47e13..8d39ee63 100644 --- a/astara/test/unit/test_scheduler.py +++ b/astara/test/unit/test_scheduler.py @@ -15,14 +15,13 @@ # under the License. -import mock import uuid +import mock +from oslo_config import cfg import unittest2 as unittest -from oslo_config import cfg - -from akanda.rug import scheduler +from astara import scheduler class TestScheduler(unittest.TestCase): diff --git a/astara/test/unit/test_state.py b/astara/test/unit/test_state.py index 4bc97cb7..b89c824f 100644 --- a/astara/test/unit/test_state.py +++ b/astara/test/unit/test_state.py @@ -20,13 +20,13 @@ from collections import deque import mock import unittest2 as unittest -from akanda.rug import event -from akanda.rug import state -from akanda.rug import instance_manager -from akanda.rug.drivers import states -from akanda.rug.api.neutron import RouterGone +from astara import event +from astara import state +from astara import instance_manager +from astara.drivers import states +from astara.api.neutron import RouterGone -from akanda.rug.test.unit import fakes +from astara.test.unit import fakes class BaseTestStateCase(unittest.TestCase): @@ -36,7 +36,7 @@ class BaseTestStateCase(unittest.TestCase): self.ctx = mock.Mock() # worker context self.fake_driver = fakes.fake_driver() instance_mgr_cls = \ - mock.patch('akanda.rug.instance_manager.InstanceManager').start() + mock.patch('astara.instance_manager.InstanceManager').start() self.addCleanup(mock.patch.stopall) self.instance = instance_mgr_cls.return_value self.params = state.StateParams( @@ -527,7 +527,7 @@ class TestAutomaton(unittest.TestCase): self.fake_driver = fakes.fake_driver() self.instance_mgr_cls = \ - mock.patch('akanda.rug.instance_manager.InstanceManager').start() + mock.patch('astara.instance_manager.InstanceManager').start() self.addCleanup(mock.patch.stopall) self.delete_callback = mock.Mock() diff --git a/astara/test/unit/test_tenant.py b/astara/test/unit/test_tenant.py index 954f0310..31b3ee8c 100644 --- a/astara/test/unit/test_tenant.py +++ b/astara/test/unit/test_tenant.py @@ -14,17 +14,17 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid import mock import unittest2 as unittest -import uuid -from akanda.rug import event -from akanda.rug import tenant -from akanda.rug.drivers import router -from akanda.rug import state -from akanda.rug.drivers import states -from akanda.rug.test.unit import fakes +from astara import event +from astara import tenant +from astara.drivers import router +from astara import state +from astara.drivers import states +from astara.test.unit import fakes class TestTenantResourceManager(unittest.TestCase): @@ -35,7 +35,7 @@ class TestTenantResourceManager(unittest.TestCase): self.fake_driver = fakes.fake_driver() self.tenant_id = 'cfb48b9c-66f6-11e5-a7be-525400cfc326' self.instance_mgr = \ - mock.patch('akanda.rug.instance_manager.InstanceManager').start() + mock.patch('astara.instance_manager.InstanceManager').start() self.addCleanup(mock.patch.stopall) self.notifier = mock.Mock() self.trm = tenant.TenantResourceManager( @@ -260,7 +260,7 @@ class TestTenantResourceManager(unittest.TestCase): self.assertEqual('1234', n['tenant_id']) self.assertIn('5678', n['uuid']) self.assertIn('timestamp', n) - self.assertEqual('akanda.bandwidth.used', n['event_type']) + self.assertEqual('astara.bandwidth.used', n['event_type']) self.assertIn('a', n['payload']) self.assertIn('b', n['payload']) diff --git a/astara/test/unit/test_worker.py b/astara/test/unit/test_worker.py index bd137fc4..31d59e75 100644 --- a/astara/test/unit/test_worker.py +++ b/astara/test/unit/test_worker.py @@ -18,21 +18,19 @@ import threading import mock - +from oslo_config import cfg import unittest2 as unittest -from oslo_config import cfg +from astara import commands +from astara import event +from astara import notifications +from astara.api import neutron +from astara.drivers import router +from astara import worker -from akanda.rug import commands -from akanda.rug import event -from akanda.rug import notifications -from akanda.rug.api import neutron -from akanda.rug.drivers import router -from akanda.rug import worker +from astara.common.hash_ring import DC_KEY -from akanda.rug.common.hash_ring import DC_KEY - -from akanda.rug.test.unit.db import base +from astara.test.unit.db import base class FakeFetchedResource(object): @@ -46,12 +44,12 @@ class WorkerTestBase(base.DbTestCase): def setUp(self): super(WorkerTestBase, self).setUp() cfg.CONF.boot_timeout = 1 - cfg.CONF.akanda_mgt_service_port = 5000 + cfg.CONF.astara_mgt_service_port = 5000 cfg.CONF.max_retries = 3 cfg.CONF.management_prefix = 'fdca:3ba5:a17a:acda::/64' cfg.CONF.num_worker_threads = 0 - self.fake_nova = mock.patch('akanda.rug.worker.nova').start() + self.fake_nova = mock.patch('astara.worker.nova').start() fake_neutron_obj = mock.patch.object( neutron, 'Neutron', autospec=True).start() fake_neutron_obj.get_ports_for_instance.return_value = ( @@ -135,7 +133,7 @@ class TestWorker(WorkerTestBase): self.assertFalse( self.w._should_process_message(self.target, self.msg)) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_no_router_id(self, fake_hash): fake_ring_manager = fake_hash.HashRingManager() fake_ring_manager.ring.get_hosts.return_value = [self.w.host] @@ -180,8 +178,8 @@ class TestWorker(WorkerTestBase): ) self.assertFalse(self.w._should_process_message(self.target, msg)) - @mock.patch('akanda.rug.worker.Worker._deliver_message') - @mock.patch('akanda.rug.worker.Worker._should_process_message') + @mock.patch('astara.worker.Worker._deliver_message') + @mock.patch('astara.worker.Worker._should_process_message') def test_handle_message_should_process(self, fake_should_process, fake_deliver): # ensure we plumb through the return of should_process to @@ -198,8 +196,8 @@ class TestWorker(WorkerTestBase): fake_deliver.assert_called_with(self.target, new_msg) fake_should_process.assert_called_with(self.target, self.msg) - @mock.patch('akanda.rug.worker.Worker._deliver_message') - @mock.patch('akanda.rug.worker.Worker._should_process_message') + @mock.patch('astara.worker.Worker._deliver_message') + @mock.patch('astara.worker.Worker._should_process_message') def test_handle_message_should_not_process(self, fake_should_process, fake_deliver): fake_should_process.return_value = False @@ -207,7 +205,7 @@ class TestWorker(WorkerTestBase): self.assertFalse(fake_deliver.called) fake_should_process.assert_called_with(self.target, self.msg) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_message_does_not_hash(self, fake_hash): fake_ring_manager = fake_hash.HashRingManager() fake_ring_manager.ring.get_hosts.return_value = ['not_this_host'] @@ -216,7 +214,7 @@ class TestWorker(WorkerTestBase): self.w._should_process_message(self.target, self.msg)) fake_ring_manager.ring.get_hosts.assert_called_with(self.router_id) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_message_wildcard_true(self, fake_hash): fake_ring_manager = fake_hash.HashRingManager() fake_ring_manager.ring.get_hosts.return_value = ['not_this_host'] @@ -225,7 +223,7 @@ class TestWorker(WorkerTestBase): self.w._should_process_message('*', self.msg)) self.assertFalse(fake_ring_manager.ring.called) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_message_true(self, fake_hash): fake_ring_manager = fake_hash.HashRingManager() fake_ring_manager.ring.get_hosts.return_value = [self.w.host] @@ -285,50 +283,50 @@ class TestWorker(WorkerTestBase): fake_ring_manager.ring.get_hosts.assert_called_with( msg.body[key]) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_resources(self, fake_hash): cmds = worker.EVENT_COMMANDS self._test__should_process_command( fake_hash, cmds=cmds, key='resource_id', negative=False) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_resources_negative(self, fake_hash): cmds = [commands.RESOURCE_DEBUG, commands.RESOURCE_MANAGE] self._test__should_process_command( fake_hash, cmds=cmds, key='resource_id', negative=True) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_routers(self, fake_hash): cmds = [commands.ROUTER_DEBUG, commands.ROUTER_MANAGE] self._test__should_process_command( fake_hash, cmds=cmds, key='router_id', negative=False) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_routers_negative(self, fake_hash): cmds = [commands.ROUTER_DEBUG, commands.ROUTER_MANAGE] self._test__should_process_command( fake_hash, cmds=cmds, key='router_id', negative=True) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_tenants(self, fake_hash): cmds = [commands.TENANT_DEBUG, commands.TENANT_MANAGE] self._test__should_process_command( fake_hash, cmds=cmds, key='tenant_id', negative=False) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_tenants_negative(self, fake_hash): cmds = [commands.TENANT_DEBUG, commands.TENANT_MANAGE] self._test__should_process_command( fake_hash, cmds=cmds, key='tenant_id', negative=True) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_global_debug(self, fake_hash): fake_hash.DC_KEY = DC_KEY cmds = [commands.GLOBAL_DEBUG] self._test__should_process_command( fake_hash, cmds=cmds, key=DC_KEY, negative=False) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test__should_process_command_global_debug_negative(self, fake_hash): fake_hash.DC_KEY = DC_KEY cmds = [commands.GLOBAL_DEBUG] @@ -384,7 +382,7 @@ class TestCreatingResource(WorkerTestBase): super(TestCreatingResource, self).setUp() self.tenant_id = '98dd9c41-d3ac-4fd6-8927-567afa0b8fc3' self.router_id = 'ac194fc5-f317-412e-8611-fb290629f624' - self.hostname = 'akanda' + self.hostname = 'astara' self.resource = event.Resource(router.Router.RESOURCE_NAME, self.router_id, @@ -518,11 +516,11 @@ class TestUpdateStateMachine(WorkerTestBase): else: self.assertFalse(meth.called) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test_host_mapped(self, fake_hash): self._test(fake_hash) - @mock.patch('akanda.rug.worker.hash_ring', autospec=True) + @mock.patch('astara.worker.hash_ring', autospec=True) def test_host_not_mapped(self, fake_hash): self._test(fake_hash, negative=True) @@ -538,7 +536,7 @@ class TestReportStatus(WorkerTestBase): meth.assert_called_once_with() def test_handle_message_report_status(self): - with mock.patch('akanda.rug.worker.cfg.CONF') as conf: + with mock.patch('astara.worker.cfg.CONF') as conf: self.w.handle_message( 'debug', event.Event('*', event.COMMAND, diff --git a/astara/worker.py b/astara/worker.py index 2e23cf5b..4c8ba5fc 100644 --- a/astara/worker.py +++ b/astara/worker.py @@ -28,16 +28,16 @@ from logging import INFO from oslo_config import cfg from oslo_log import log as logging -from akanda.rug import commands -from akanda.rug import drivers -from akanda.rug.common.i18n import _LE, _LI, _LW -from akanda.rug import event -from akanda.rug import tenant -from akanda.rug.common import hash_ring -from akanda.rug.api import nova -from akanda.rug.api import neutron -from akanda.rug.db import api as db_api -from akanda.rug import populate +from astara import commands +from astara import drivers +from astara.common.i18n import _LE, _LI, _LW +from astara import event +from astara import tenant +from astara.common import hash_ring +from astara.api import nova +from astara.api import neutron +from astara.db import api as db_api +from astara import populate LOG = logging.getLogger(__name__) CONF = cfg.CONF @@ -45,7 +45,7 @@ CONF = cfg.CONF WORKER_OPTS = [ cfg.StrOpt( 'ignored_router_directory', - default='/etc/akanda-rug/ignored', + default='/etc/astara/ignored', help='Directory to scan for routers to ignore for debugging', ), cfg.IntOpt( diff --git a/devstack/plugin.sh b/devstack/plugin.sh index a3872dfa..182816f6 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -38,7 +38,7 @@ ASTARA_API_PORT=${ASTARA_API_PORT:-44250} HORIZON_LOCAL_SETTINGS=$HORIZON_DIR/openstack_dashboard/local/local_settings.py -# Path to public ssh key that will be added to the 'akanda' users authorized_keys +# Path to public ssh key that will be added to the 'astara' users authorized_keys # within the appliance VM. ASTARA_APPLIANCE_SSH_PUBLIC_KEY=${ASTARA_APPLIANCE_SSH_PUBLIC_KEY:-/home/$STACK_USER/.ssh/id_rsa.pub} @@ -78,7 +78,7 @@ function configure_astara() { iniset $ASTARA_CONF DEFAULT rug_api_port $ASTARA_API_PORT if [[ "$Q_AGENT" == "linuxbridge" ]]; then - iniset $ASTARA_CONF DEFAULT interface_driver "akanda.rug.common.linux.interface.BridgeInterfaceDriver" + iniset $ASTARA_CONF DEFAULT interface_driver "astara.common.linux.interface.BridgeInterfaceDriver" fi iniset $ASTARA_CONF DEFAULT ssh_public_key $ASTARA_APPLIANCE_SSH_PUBLIC_KEY diff --git a/docs/source/operation.rst b/docs/source/operation.rst index 823ef1e3..f30f77a9 100644 --- a/docs/source/operation.rst +++ b/docs/source/operation.rst @@ -10,11 +10,11 @@ You can install from GitHub directly with ``pip``:: $ pip install -e git://github.com/stackforge/akanda-rug.git@stable/kilo#egg=akanda-rug -After installing :py:mod:`akanda.rug`, it can be invoked as:: +After installing :py:mod:`astara`, it can be invoked as:: $ akanda-rug-service --config-file /etc/akanda-rug/rug.ini -The :py:mod:`akanda.rug` service is intended to run on a management network (a +The :py:mod:`astara` service is intended to run on a management network (a separate network for use by your cloud operators). This segregation prevents system administration and the monitoring of system access from being disrupted by traffic generated by guests. @@ -26,7 +26,7 @@ rug-ctl +++++++ :program:`rug-ctl` is a tool which can be used to send manual instructions to -a running :py:mod:`akanda.rug` via AMQP:: +a running :py:mod:`astara` via AMQP:: $ rug-ctl browse A curses console interface for browsing the state @@ -86,7 +86,7 @@ akanda-debug-router :program:`akanda-debug-router` is a diagnostic tool which can be used to analyze the state machine flow of any router and step through its operation using Python's debugger. This is particularly useful for development purposes -and understanding the nature of the :py:mod:`akanda.rug` state machine, but it's +and understanding the nature of the :py:mod:`astara` state machine, but it's also useful for debugging problematic routers as an operator; a common pattern for determining why a Service VM won't boot is to place the router in `debug mode`:: diff --git a/docs/source/rug.rst b/docs/source/rug.rst index 67cfed01..ad453616 100644 --- a/docs/source/rug.rst +++ b/docs/source/rug.rst @@ -8,12 +8,12 @@ RUG - Router Update Generator :program:`akanda-rug-service` is a multiprocessed, multithreaded Python process composed of three primary subsystems, each of which are spawned as a subprocess -of the main :py:mod:`akanda.rug` process: +of the main :py:mod:`astara` process: L3 and DHCP Event Consumption ----------------------------- -:py:mod:`akanda.rug.notifications` uses `kombu `_ +:py:mod:`astara.notifications` uses `kombu `_ and a Python :py:mod:`multiprocessing.Queue` to listen for specific Neutron service events (e.g., ``router.interface.create``, ``subnet.create.end``, ``port.create.end``, ``port.delete.end``) and normalize them into one of @@ -27,10 +27,10 @@ several event types: * ``REBUILD`` - a Service VM should be destroyed and recreated As events are normalized and shuttled onto the :py:mod:`multiprocessing.Queue`, -:py:mod:`akanda.rug.scheduler` shards (by Tenant ID, by default) and +:py:mod:`astara.scheduler` shards (by Tenant ID, by default) and distributes them amongst a pool of worker processes it manages. -This system also consumes and distributes special :py:mod:`akanda.rug.command` events +This system also consumes and distributes special :py:mod:`astara.command` events which are published by the :program:`rug-ctl` :ref:`operator tools`. @@ -87,7 +87,7 @@ The supported states in the state machine are: :ClearError: After a (configurable) number of ``nova boot`` failures, Neutron routers are automatically transitioned into a cooldown ``ERROR`` state - (so that :py:mod:`akanda.rug` will not continue to boot them forever; this is + (so that :py:mod:`astara` will not continue to boot them forever; this is to prevent further exasperation of failing hypervisors). This state transition is utilized to add routers back into management after issues are resolved and signal to :py:mod:`akanda-rug` that it should attempt @@ -140,7 +140,7 @@ VM Variables are: Health Monitoring ----------------- -``akanda.rug.health`` is a subprocess which (at a configurable interval) +``astara.health`` is a subprocess which (at a configurable interval) periodically delivers ``POLL`` events to every known virtual router. This event transitions the state machine into the ``Alive`` state, which (depending on the availability of the router), may simply exit the state machine (because diff --git a/etc/rug.ini b/etc/rug.ini index 4a11117e..20901e55 100644 --- a/etc/rug.ini +++ b/etc/rug.ini @@ -28,54 +28,54 @@ external_prefix=172.16.77.0/24 plug_external_port=True -# Public SSH key to insert into the 'akanda' user of appliance +# Public SSH key to insert into the 'astara' user of appliance # VMs. -ssh_public_key=/etc/akanda/akanda.pub +ssh_public_key=/etc/astara/astara.pub # *Deprecated* Use image_uuid/instance_flavor in the [router] section. router_image_uuid=1e9c16f3-e070-47b7-b49c-ffcf38df5f9a router_instance_flavor=1 # *Deprecated* Use ssh_public_key. -router_ssh_public_key=/etc/akanda/akanda.pub +router_ssh_public_key=/etc/astara/astara.pub # to plug in rug interface -interface_driver=akanda.rug.common.linux.interface.OVSInterfaceDriver +interface_driver=astara.common.linux.interface.OVSInterfaceDriver ovs_integration_bridge=br-int # URL for connecting to oslo.messaging backend -amqp_url = amqp://rabbit:akanda@127.0.0.1:/ +amqp_url = amqp://rabbit:astara@127.0.0.1:/ # *Deprecated* use amqp_url instead. rabbit_password = yetanothersecret rabbit_host = 192.168.57.200 -provider_rules_path=/opt/stack/akanda-rug/etc/provider_rules.json +provider_rules_path=/opt/stack/astara/etc/provider_rules.json control_exchange = quantum neutron_port_security_extension_enabled = True [AGENT] root_helper=sudo -# If running multiple akanda-rug instances, configure use of an external +# If running multiple astara instances, configure use of an external # cluster coordinator here. For more information on supported coordination # backends, see http://docs.openstack.org/developer/tooz/. # NOTE: This feature is currently marked experimental for Liberty. [coordination] enabled = False url = memcached://localhost:11211 -group_id = akanda.rug +group_id = astara heartbeat_interval = 1 # This section should be updated as per service user credentials. [keystone_authtoken] -signing_dir = /var/cache/akanda +signing_dir = /var/cache/astara cafile = /etc/ssl/openstack/ca-bundle.pem auth_uri = http://127.0.0.1:5000 project_domain_id = default project_name = service user_domain_id = default -password = akanda +password = astara username = neutron auth_url = http://127.0.0.1:35357 auth_plugin = password diff --git a/openstack-common.conf b/openstack-common.conf index 37f96ea6..4237fe08 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -20,4 +20,4 @@ modules=setup modules=threadgroup modules=timeutils # The base module to hold the copy of openstack.common -base=akanda.rug +base=astara diff --git a/setup.cfg b/setup.cfg index c4636e0d..4b211a76 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,7 +6,7 @@ description-file = README.md author = OpenStack author-email = openstack-dev@lists.openstack.org -home-page = http://github.com/openstack/akanda-rug +home-page = http://github.com/openstack/astara classifier = Environment :: OpenStack Intended Audience :: Developers @@ -22,10 +22,6 @@ classifier = [files] packages = astara - akanda - akanda.rug -namespace_packages = - akanda [global] setup-hooks = @@ -33,37 +29,37 @@ setup-hooks = [entry_points] console_scripts = - akanda-rug-service=akanda.rug.main:main - akanda-pez-service=akanda.rug.pez.service:main - akanda-debug-router=akanda.rug.debug:debug_one_router - akanda-rug-dbsync=akanda.rug.db.sqlalchemy.dbsync:main - rug-ctl=akanda.rug.cli.main:main - astara-orchestrator=akanda.rug.main:main - astara-pez-service=akanda.rug.pez.service:main - astara-debug-router=akanda.rug.debug:debug_one_router - astara-dbsync=akanda.rug.db.sqlalchemy.dbsync:main - astara-ctl=akanda.rug.cli.main:main -akanda.rug.cli = - config reload=akanda.rug.cli.config:ConfigReload + akanda-rug-service=astara.main:main + akanda-pez-service=astara.pez.service:main + akanda-debug-router=astara.debug:debug_one_router + akanda-rug-dbsync=astara.db.sqlalchemy.dbsync:main + rug-ctl=astara.cli.main:main + astara-orchestrator=astara.main:main + astara-pez-service=astara.pez.service:main + astara-debug-router=astara.debug:debug_one_router + astara-dbsync=astara.db.sqlalchemy.dbsync:main + astara-ctl=astara.cli.main:main +astara.cli = + config reload=astara.cli.config:ConfigReload - resource debug=akanda.rug.cli.resource:ResourceDebug - resource manage=akanda.rug.cli.resource:ResourceManage - resource update=akanda.rug.cli.resource:ResourceUpdate - resource rebuild=akanda.rug.cli.resource:ResourceRebuild + resource debug=astara.cli.resource:ResourceDebug + resource manage=astara.cli.resource:ResourceManage + resource update=astara.cli.resource:ResourceUpdate + resource rebuild=astara.cli.resource:ResourceRebuild # NOTE(adam_g): The 'router' commands are deprecated in favor # of the generic 'resource' commands and can be dropped in M. - router debug=akanda.rug.cli.router:RouterDebug - router manage=akanda.rug.cli.router:RouterManage - router update=akanda.rug.cli.router:RouterUpdate - router rebuild=akanda.rug.cli.router:RouterRebuild - tenant debug=akanda.rug.cli.tenant:TenantDebug - tenant manage=akanda.rug.cli.tenant:TenantManage - workers debug=akanda.rug.cli.worker:WorkerDebug - global debug=akanda.rug.cli.global_debug:GlobalDebug - browse=akanda.rug.cli.browse:BrowseRouters - poll=akanda.rug.cli.poll:Poll - ssh=akanda.rug.cli.router:RouterSSH + router debug=astara.cli.router:RouterDebug + router manage=astara.cli.router:RouterManage + router update=astara.cli.router:RouterUpdate + router rebuild=astara.cli.router:RouterRebuild + tenant debug=astara.cli.tenant:TenantDebug + tenant manage=astara.cli.tenant:TenantManage + workers debug=astara.cli.worker:WorkerDebug + global debug=astara.cli.global_debug:GlobalDebug + browse=astara.cli.browse:BrowseRouters + poll=astara.cli.poll:Poll + ssh=astara.cli.router:RouterSSH [build_sphinx] all_files = 1 diff --git a/tools/run_functional.sh b/tools/run_functional.sh index 0efee7bf..585422a9 100755 --- a/tools/run_functional.sh +++ b/tools/run_functional.sh @@ -1,6 +1,6 @@ #!/bin/bash -xe -FUNC_TEST_DIR=$(dirname $0)/../akanda/rug/test/functional/ +FUNC_TEST_DIR=$(dirname $0)/../astara/test/functional/ CONFIG_FILE=$FUNC_TEST_DIR/test.conf APPLIANCE_API_PORT=${APPLIANCE_API_PORT:-5000} @@ -9,19 +9,19 @@ if [ -z "$SERVICE_TENANT_ID" ]; then SERVICE_TENANT_ID="$(keystone tenant-list | grep $SERVICE_TENANT_NAME | awk '{ print $2 }')" fi -# Functional tests require a test akanda router be created prior to the test +# Functional tests require a test astara router be created prior to the test # run. Devstack does this, but you may specify another here. If not specified, # the ID of the devstack created router will be used. -AKANDA_TEST_ROUTER_UUID=${AKANDA_TEST_ROUTER_UUID:-''} +ASTARA_TEST_ROUTER_UUID=${ASTARA_TEST_ROUTER_UUID:-''} function find_router() { - # Find the UUID of the akanda router created by devstack. + # Find the UUID of the astara router created by devstack. router=$(neutron router-list | grep "ak-" | awk '{ print $2 }') if [ $(echo "$router" | wc -l) -gt 1 ]; then - echo "ERROR: Found multiple akanda routers, cannot continue." + echo "ERROR: Found multiple astara routers, cannot continue." exit 1 elif [ -z "$router" ]; then - echo "ERROR: Could not locate akanda router." + echo "ERROR: Could not locate astara router." exit 1 fi echo $router @@ -40,9 +40,9 @@ service_tenant_id=$SERVICE_TENANT_ID appliance_api_port=$APPLIANCE_API_PORT END -if [ -z "$AKANDA_TEST_ROUTER_UUID" ]; then - AKANDA_TEST_ROUTER_UUID="$(find_router)" +if [ -z "$ASTARA_TEST_ROUTER_UUID" ]; then + ASTARA_TEST_ROUTER_UUID="$(find_router)" fi -echo "akanda_test_router_uuid=$AKANDA_TEST_ROUTER_UUID" >>$CONFIG_FILE +echo "astara_test_router_uuid=$ASTARA_TEST_ROUTER_UUID" >>$CONFIG_FILE tox -e functional