diff --git a/gantt/cmd/__init__.py b/gantt/cmd/__init__.py index 87edf9b4b..6ebc077ad 100644 --- a/gantt/cmd/__init__.py +++ b/gantt/cmd/__init__.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -# TODO(mikal): move eventlet imports to nova.__init__ once we move to PBR +# TODO(mikal): move eventlet imports to gantt.__init__ once we move to PBR import os import sys @@ -23,7 +23,7 @@ import sys # that the magic environment variable was set when the import happened. if ('eventlet' in sys.modules and os.environ.get('EVENTLET_NO_GREENDNS', '').lower() != 'yes'): - raise ImportError('eventlet imported before nova/cmd/__init__ ' + raise ImportError('eventlet imported before gantt/cmd/__init__ ' '(env var set to %s)' % os.environ.get('EVENTLET_NO_GREENDNS')) diff --git a/gantt/cmd/scheduler.py b/gantt/cmd/scheduler.py index b8e6b99aa..d965fce1c 100644 --- a/gantt/cmd/scheduler.py +++ b/gantt/cmd/scheduler.py @@ -22,20 +22,21 @@ import sys from oslo.config import cfg -from nova import config from nova.openstack.common import log as logging -from nova import service from nova import utils +from gantt import config +from gantt import service + CONF = cfg.CONF -CONF.import_opt('scheduler_topic', 'nova.scheduler.rpcapi') +CONF.import_opt('sched_topic', 'gantt.scheduler.rpcapi') def main(): config.parse_args(sys.argv) - logging.setup("nova") + logging.setup("gantt") utils.monkey_patch() - server = service.Service.create(binary='nova-scheduler', - topic=CONF.scheduler_topic) + server = service.Service.create(binary='gantt-sched', + topic=CONF.sched_topic) service.serve(server) service.wait() diff --git a/gantt/scheduler/__init__.py b/gantt/scheduler/__init__.py index 7dc4ffc35..6d87e31d8 100644 --- a/gantt/scheduler/__init__.py +++ b/gantt/scheduler/__init__.py @@ -15,10 +15,10 @@ # under the License. """ -:mod:`nova.scheduler` -- Scheduler Nodes +:mod:`gantt.scheduler` -- Scheduler Nodes ===================================================== -.. automodule:: nova.scheduler +.. automodule:: gantt.scheduler :platform: Unix :synopsis: Module that picks a compute node to run a VM instance. .. moduleauthor:: Sandy Walsh diff --git a/gantt/scheduler/baremetal_host_manager.py b/gantt/scheduler/baremetal_host_manager.py index 226476714..df433b169 100644 --- a/gantt/scheduler/baremetal_host_manager.py +++ b/gantt/scheduler/baremetal_host_manager.py @@ -18,7 +18,7 @@ Manage hosts in the current zone. """ -from nova.scheduler import host_manager +from gantt.scheduler import host_manager class BaremetalNodeState(host_manager.HostState): diff --git a/gantt/scheduler/chance.py b/gantt/scheduler/chance.py index b6483d646..b45b3fc69 100644 --- a/gantt/scheduler/chance.py +++ b/gantt/scheduler/chance.py @@ -28,7 +28,8 @@ from oslo.config import cfg from nova.compute import rpcapi as compute_rpcapi from nova import exception from nova.openstack.common.gettextutils import _ -from nova.scheduler import driver + +from gantt.scheduler import driver CONF = cfg.CONF CONF.import_opt('compute_topic', 'nova.compute.rpcapi') diff --git a/gantt/scheduler/driver.py b/gantt/scheduler/driver.py index a1392a496..b46f6f619 100644 --- a/gantt/scheduler/driver.py +++ b/gantt/scheduler/driver.py @@ -36,13 +36,14 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova.openstack.common import timeutils -from nova import servicegroup + +from gantt import servicegroup LOG = logging.getLogger(__name__) scheduler_driver_opts = [ cfg.StrOpt('scheduler_host_manager', - default='nova.scheduler.host_manager.HostManager', + default='gantt.scheduler.host_manager.HostManager', help='The scheduler host manager class to use'), cfg.IntOpt('scheduler_max_attempts', default=3, diff --git a/gantt/scheduler/filter_scheduler.py b/gantt/scheduler/filter_scheduler.py index 2b8be5e4f..af78e375b 100644 --- a/gantt/scheduler/filter_scheduler.py +++ b/gantt/scheduler/filter_scheduler.py @@ -29,9 +29,10 @@ from nova import notifier from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging from nova.pci import pci_request -from nova.scheduler import driver -from nova.scheduler import scheduler_options -from nova.scheduler import utils as scheduler_utils + +from gantt.scheduler import driver +from gantt.scheduler import scheduler_options +from gantt.scheduler import utils as scheduler_utils CONF = cfg.CONF diff --git a/gantt/scheduler/filters/__init__.py b/gantt/scheduler/filters/__init__.py index 1359913e1..fed755f5f 100644 --- a/gantt/scheduler/filters/__init__.py +++ b/gantt/scheduler/filters/__init__.py @@ -17,7 +17,7 @@ Scheduler host filters """ -from nova import filters +from gantt import filters class BaseHostFilter(filters.BaseFilter): diff --git a/gantt/scheduler/filters/affinity_filter.py b/gantt/scheduler/filters/affinity_filter.py index 9e72088a1..230ae4ec2 100644 --- a/gantt/scheduler/filters/affinity_filter.py +++ b/gantt/scheduler/filters/affinity_filter.py @@ -21,7 +21,8 @@ import six from nova.compute import api as compute from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/aggregate_instance_extra_specs.py b/gantt/scheduler/filters/aggregate_instance_extra_specs.py index d8fe8b1cc..954f829d2 100644 --- a/gantt/scheduler/filters/aggregate_instance_extra_specs.py +++ b/gantt/scheduler/filters/aggregate_instance_extra_specs.py @@ -17,8 +17,9 @@ from nova import db from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters -from nova.scheduler.filters import extra_specs_ops + +from gantt.scheduler import filters +from gantt.scheduler.filters import extra_specs_ops LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/aggregate_multitenancy_isolation.py b/gantt/scheduler/filters/aggregate_multitenancy_isolation.py index 1b8a25cfa..a0e50ee90 100644 --- a/gantt/scheduler/filters/aggregate_multitenancy_isolation.py +++ b/gantt/scheduler/filters/aggregate_multitenancy_isolation.py @@ -16,7 +16,8 @@ from nova import db from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/all_hosts_filter.py b/gantt/scheduler/filters/all_hosts_filter.py index 71d136f43..2dfcd807a 100644 --- a/gantt/scheduler/filters/all_hosts_filter.py +++ b/gantt/scheduler/filters/all_hosts_filter.py @@ -14,7 +14,7 @@ # under the License. -from nova.scheduler import filters +from gantt.scheduler import filters class AllHostsFilter(filters.BaseHostFilter): diff --git a/gantt/scheduler/filters/availability_zone_filter.py b/gantt/scheduler/filters/availability_zone_filter.py index d4b525c42..af5500919 100644 --- a/gantt/scheduler/filters/availability_zone_filter.py +++ b/gantt/scheduler/filters/availability_zone_filter.py @@ -16,7 +16,8 @@ from oslo.config import cfg from nova import db -from nova.scheduler import filters + +from gantt.scheduler import filters CONF = cfg.CONF CONF.import_opt('default_availability_zone', 'nova.availability_zones') diff --git a/gantt/scheduler/filters/compute_capabilities_filter.py b/gantt/scheduler/filters/compute_capabilities_filter.py index 6596c74e7..92831bd60 100644 --- a/gantt/scheduler/filters/compute_capabilities_filter.py +++ b/gantt/scheduler/filters/compute_capabilities_filter.py @@ -15,8 +15,9 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters -from nova.scheduler.filters import extra_specs_ops + +from gantt.scheduler import filters +from gantt.scheduler.filters import extra_specs_ops LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/compute_filter.py b/gantt/scheduler/filters/compute_filter.py index fa7712cf5..2548d039a 100644 --- a/gantt/scheduler/filters/compute_filter.py +++ b/gantt/scheduler/filters/compute_filter.py @@ -17,8 +17,9 @@ from oslo.config import cfg from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters -from nova import servicegroup + +from gantt.scheduler import filters +from gantt import servicegroup CONF = cfg.CONF diff --git a/gantt/scheduler/filters/core_filter.py b/gantt/scheduler/filters/core_filter.py index ef5ea69de..91172f8c4 100644 --- a/gantt/scheduler/filters/core_filter.py +++ b/gantt/scheduler/filters/core_filter.py @@ -20,7 +20,8 @@ from oslo.config import cfg from nova import db from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/disk_filter.py b/gantt/scheduler/filters/disk_filter.py index 066474cb3..2c14ce41d 100644 --- a/gantt/scheduler/filters/disk_filter.py +++ b/gantt/scheduler/filters/disk_filter.py @@ -17,7 +17,8 @@ from oslo.config import cfg from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/image_props_filter.py b/gantt/scheduler/filters/image_props_filter.py index 621c34211..6a056bea0 100644 --- a/gantt/scheduler/filters/image_props_filter.py +++ b/gantt/scheduler/filters/image_props_filter.py @@ -18,9 +18,10 @@ from distutils import versionpredicate from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters from nova import utils +from gantt.scheduler import filters + LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/io_ops_filter.py b/gantt/scheduler/filters/io_ops_filter.py index 570bb8921..6d97e0ef8 100644 --- a/gantt/scheduler/filters/io_ops_filter.py +++ b/gantt/scheduler/filters/io_ops_filter.py @@ -17,7 +17,8 @@ from oslo.config import cfg from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/isolated_hosts_filter.py b/gantt/scheduler/filters/isolated_hosts_filter.py index 6caaf5d4c..92774218c 100644 --- a/gantt/scheduler/filters/isolated_hosts_filter.py +++ b/gantt/scheduler/filters/isolated_hosts_filter.py @@ -15,7 +15,7 @@ from oslo.config import cfg -from nova.scheduler import filters +from gantt.scheduler import filters isolated_opts = [ cfg.ListOpt('isolated_images', diff --git a/gantt/scheduler/filters/json_filter.py b/gantt/scheduler/filters/json_filter.py index 19a3b1e13..ed7794d27 100644 --- a/gantt/scheduler/filters/json_filter.py +++ b/gantt/scheduler/filters/json_filter.py @@ -18,7 +18,8 @@ import operator import six from nova.openstack.common import jsonutils -from nova.scheduler import filters + +from gantt.scheduler import filters class JsonFilter(filters.BaseHostFilter): diff --git a/gantt/scheduler/filters/num_instances_filter.py b/gantt/scheduler/filters/num_instances_filter.py index 33268354e..177c23375 100644 --- a/gantt/scheduler/filters/num_instances_filter.py +++ b/gantt/scheduler/filters/num_instances_filter.py @@ -17,7 +17,8 @@ from oslo.config import cfg from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/pci_passthrough_filter.py b/gantt/scheduler/filters/pci_passthrough_filter.py index f66795ead..1be4c6236 100644 --- a/gantt/scheduler/filters/pci_passthrough_filter.py +++ b/gantt/scheduler/filters/pci_passthrough_filter.py @@ -15,7 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. -from nova.scheduler import filters +from gantt.scheduler import filters class PciPassthroughFilter(filters.BaseHostFilter): diff --git a/gantt/scheduler/filters/ram_filter.py b/gantt/scheduler/filters/ram_filter.py index 4f95c9f82..843d3e9be 100644 --- a/gantt/scheduler/filters/ram_filter.py +++ b/gantt/scheduler/filters/ram_filter.py @@ -19,7 +19,8 @@ from oslo.config import cfg from nova import db from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/retry_filter.py b/gantt/scheduler/filters/retry_filter.py index dea27ff06..31e0c440f 100644 --- a/gantt/scheduler/filters/retry_filter.py +++ b/gantt/scheduler/filters/retry_filter.py @@ -15,7 +15,8 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/trusted_filter.py b/gantt/scheduler/filters/trusted_filter.py index a49b33101..3e50a83d8 100644 --- a/gantt/scheduler/filters/trusted_filter.py +++ b/gantt/scheduler/filters/trusted_filter.py @@ -56,7 +56,8 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import jsonutils from nova.openstack.common import log as logging from nova.openstack.common import timeutils -from nova.scheduler import filters + +from gantt.scheduler import filters LOG = logging.getLogger(__name__) diff --git a/gantt/scheduler/filters/type_filter.py b/gantt/scheduler/filters/type_filter.py index e9b69e7e4..de2dc8bbd 100644 --- a/gantt/scheduler/filters/type_filter.py +++ b/gantt/scheduler/filters/type_filter.py @@ -15,7 +15,8 @@ # under the License. from nova import db -from nova.scheduler import filters + +from gantt.scheduler import filters class TypeAffinityFilter(filters.BaseHostFilter): diff --git a/gantt/scheduler/host_manager.py b/gantt/scheduler/host_manager.py index 6e5594bc1..a83e9417a 100644 --- a/gantt/scheduler/host_manager.py +++ b/gantt/scheduler/host_manager.py @@ -32,15 +32,16 @@ from nova.openstack.common import log as logging from nova.openstack.common import timeutils from nova.pci import pci_request from nova.pci import pci_stats -from nova.scheduler import filters -from nova.scheduler import weights + +from gantt.scheduler import filters +from gantt.scheduler import weights host_manager_opts = [ cfg.MultiStrOpt('scheduler_available_filters', - default=['nova.scheduler.filters.all_filters'], + default=['gantt.scheduler.filters.all_filters'], help='Filter classes available to the scheduler which may ' 'be specified more than once. An entry of ' - '"nova.scheduler.filters.standard_filters" ' + '"gantt.scheduler.filters.standard_filters" ' 'maps to all filters included with nova.'), cfg.ListOpt('scheduler_default_filters', default=[ @@ -54,7 +55,7 @@ host_manager_opts = [ help='Which filter class names to use for filtering hosts ' 'when not specified in the request.'), cfg.ListOpt('scheduler_weight_classes', - default=['nova.scheduler.weights.all_weighers'], + default=['gantt.scheduler.weights.all_weighers'], help='Which weight class names to use for weighing hosts'), ] diff --git a/gantt/scheduler/manager.py b/gantt/scheduler/manager.py index 06e308baf..9787186bb 100644 --- a/gantt/scheduler/manager.py +++ b/gantt/scheduler/manager.py @@ -30,7 +30,6 @@ from nova.compute import vm_states from nova.conductor import api as conductor_api from nova.conductor.tasks import live_migrate from nova import exception -from nova import manager from nova.objects import instance as instance_obj from nova.openstack.common import excutils from nova.openstack.common import importutils @@ -39,13 +38,15 @@ from nova.openstack.common import log as logging from nova.openstack.common import periodic_task from nova.openstack.common.rpc import common as rpc_common from nova import quota -from nova.scheduler import utils as scheduler_utils + +from gantt import manager +from gantt.scheduler import utils as scheduler_utils LOG = logging.getLogger(__name__) scheduler_driver_opt = cfg.StrOpt('scheduler_driver', - default='nova.scheduler.filter_scheduler.FilterScheduler', + default='gantt.scheduler.filter_scheduler.FilterScheduler', help='Default driver to use for the scheduler') CONF = cfg.CONF diff --git a/gantt/scheduler/rpcapi.py b/gantt/scheduler/rpcapi.py deleted file mode 100644 index 004ddcd0f..000000000 --- a/gantt/scheduler/rpcapi.py +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright 2013, Red Hat, Inc. -# -# 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. - -""" -Client side of the scheduler manager RPC API. -""" - -from oslo.config import cfg -from oslo import messaging - -from nova.objects import base as objects_base -from nova.openstack.common import jsonutils -from nova import rpc - -rpcapi_opts = [ - cfg.StrOpt('scheduler_topic', - default='scheduler', - help='The topic scheduler nodes listen on'), -] - -CONF = cfg.CONF -CONF.register_opts(rpcapi_opts) - -rpcapi_cap_opt = cfg.StrOpt('scheduler', - help='Set a version cap for messages sent to scheduler services') -CONF.register_opt(rpcapi_cap_opt, 'upgrade_levels') - - -class SchedulerAPI(object): - '''Client side of the scheduler rpc API. - - API version history: - - 1.0 - Initial version. - 1.1 - Changes to prep_resize(): - - remove instance_uuid, add instance - - remove instance_type_id, add instance_type - - remove topic, it was unused - 1.2 - Remove topic from run_instance, it was unused - 1.3 - Remove instance_id, add instance to live_migration - 1.4 - Remove update_db from prep_resize - 1.5 - Add reservations argument to prep_resize() - 1.6 - Remove reservations argument to run_instance() - 1.7 - Add create_volume() method, remove topic from live_migration() - - 2.0 - Remove 1.x backwards compat - 2.1 - Add image_id to create_volume() - 2.2 - Remove reservations argument to create_volume() - 2.3 - Remove create_volume() - 2.4 - Change update_service_capabilities() - - accepts a list of capabilities - 2.5 - Add get_backdoor_port() - 2.6 - Add select_hosts() - - ... Grizzly supports message version 2.6. So, any changes to existing - methods in 2.x after that point should be done such that they can - handle the version_cap being set to 2.6. - - 2.7 - Add select_destinations() - 2.8 - Deprecate prep_resize() -- JUST KIDDING. It is still used - by the compute manager for retries. - 2.9 - Added the legacy_bdm_in_spec parameter to run_instance() - - ... Havana supports message version 2.9. So, any changes to existing - methods in 2.x after that point should be done such that they can - handle the version_cap being set to 2.9. - - ... - Deprecated live_migration() call, moved to conductor - ... - Deprecated select_hosts() - ''' - - VERSION_ALIASES = { - 'grizzly': '2.6', - 'havana': '2.9', - } - - def __init__(self): - super(SchedulerAPI, self).__init__() - target = messaging.Target(topic=CONF.scheduler_topic, version='2.0') - version_cap = self.VERSION_ALIASES.get(CONF.upgrade_levels.scheduler, - CONF.upgrade_levels.scheduler) - serializer = objects_base.NovaObjectSerializer() - self.client = rpc.get_client(target, version_cap=version_cap, - serializer=serializer) - - def select_destinations(self, ctxt, request_spec, filter_properties): - cctxt = self.client.prepare(version='2.7') - return cctxt.call(ctxt, 'select_destinations', - request_spec=request_spec, filter_properties=filter_properties) - - def run_instance(self, ctxt, request_spec, admin_password, - injected_files, requested_networks, is_first_time, - filter_properties, legacy_bdm_in_spec=True): - version = '2.0' - msg_kwargs = {'request_spec': request_spec, - 'admin_password': admin_password, - 'injected_files': injected_files, - 'requested_networks': requested_networks, - 'is_first_time': is_first_time, - 'filter_properties': filter_properties} - if self.client.can_send_version('2.9'): - version = '2.9' - msg_kwargs['legacy_bdm_in_spec'] = legacy_bdm_in_spec - cctxt = self.client.prepare(version=version) - return cctxt.cast(ctxt, 'run_instance', **msg_kwargs) - - def prep_resize(self, ctxt, instance, instance_type, image, - request_spec, filter_properties, reservations): - instance_p = jsonutils.to_primitive(instance) - instance_type_p = jsonutils.to_primitive(instance_type) - reservations_p = jsonutils.to_primitive(reservations) - image_p = jsonutils.to_primitive(image) - self.client.cast(ctxt, 'prep_resize', - instance=instance_p, instance_type=instance_type_p, - image=image_p, request_spec=request_spec, - filter_properties=filter_properties, - reservations=reservations_p) diff --git a/gantt/scheduler/weights/__init__.py b/gantt/scheduler/weights/__init__.py index e3c7a07e8..f07c56078 100644 --- a/gantt/scheduler/weights/__init__.py +++ b/gantt/scheduler/weights/__init__.py @@ -19,7 +19,7 @@ Scheduler host weights from oslo.config import cfg -from nova import weights +from gantt import weights CONF = cfg.CONF diff --git a/gantt/scheduler/weights/metrics.py b/gantt/scheduler/weights/metrics.py index 89d87591c..de6509fc7 100644 --- a/gantt/scheduler/weights/metrics.py +++ b/gantt/scheduler/weights/metrics.py @@ -30,7 +30,8 @@ from oslo.config import cfg from nova import exception from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging -from nova.scheduler import weights + +from gantt.scheduler import weights metrics_weight_opts = [ cfg.FloatOpt('weight_multiplier', diff --git a/gantt/scheduler/weights/ram.py b/gantt/scheduler/weights/ram.py index b8478c7bd..6dffc3034 100644 --- a/gantt/scheduler/weights/ram.py +++ b/gantt/scheduler/weights/ram.py @@ -22,7 +22,7 @@ number and the weighing has the opposite effect of the default. from oslo.config import cfg -from nova.scheduler import weights +from gantt.scheduler import weights ram_weight_opts = [ cfg.FloatOpt('ram_weight_multiplier', diff --git a/gantt/service.py b/gantt/service.py index 9e82ba1db..5be9f08e3 100644 --- a/gantt/service.py +++ b/gantt/service.py @@ -33,11 +33,12 @@ from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova.openstack.common import rpc from nova.openstack.common import service -from nova import servicegroup from nova import utils -from nova import version from nova import wsgi +from gantt import servicegroup +from gantt import version + LOG = logging.getLogger(__name__) service_opts = [ @@ -97,8 +98,8 @@ service_opts = [ cfg.StrOpt('network_manager', default='nova.network.manager.VlanManager', help='full class name for the Manager for network'), - cfg.StrOpt('scheduler_manager', - default='nova.scheduler.manager.SchedulerManager', + cfg.StrOpt('sched_manager', + default='gantt.scheduler.manager.SchedulerManager', help='full class name for the Manager for scheduler'), cfg.IntOpt('service_down_time', default=60, @@ -225,7 +226,7 @@ class Service(service.Service): :param host: defaults to CONF.host :param binary: defaults to basename of executable - :param topic: defaults to bin_name - 'nova-' part + :param topic: defaults to bin_name - 'gantt-' part :param manager: defaults to CONF._manager :param report_interval: defaults to CONF.report_interval :param periodic_enable: defaults to CONF.periodic_enable @@ -238,10 +239,10 @@ class Service(service.Service): if not binary: binary = os.path.basename(sys.argv[0]) if not topic: - topic = binary.rpartition('nova-')[2] + topic = binary.rpartition('gantt-')[2] if not manager: manager_cls = ('%s_manager' % - binary.rpartition('nova-')[2]) + binary.rpartition('gantt-')[2]) manager = CONF.get(manager_cls, None) if report_interval is None: report_interval = CONF.report_interval diff --git a/gantt/servicegroup/api.py b/gantt/servicegroup/api.py index 4ad52a403..b976d7cc1 100644 --- a/gantt/servicegroup/api.py +++ b/gantt/servicegroup/api.py @@ -41,9 +41,9 @@ class API(object): _driver = None _driver_name_class_mapping = { - 'db': 'nova.servicegroup.drivers.db.DbDriver', - 'zk': 'nova.servicegroup.drivers.zk.ZooKeeperDriver', - 'mc': 'nova.servicegroup.drivers.mc.MemcachedDriver' + 'db': 'gantt.servicegroup.drivers.db.DbDriver', + 'zk': 'gantt.servicegroup.drivers.zk.ZooKeeperDriver', + 'mc': 'gantt.servicegroup.drivers.mc.MemcachedDriver' } def __new__(cls, *args, **kwargs): diff --git a/gantt/servicegroup/drivers/db.py b/gantt/servicegroup/drivers/db.py index 238e867aa..18dd3d513 100644 --- a/gantt/servicegroup/drivers/db.py +++ b/gantt/servicegroup/drivers/db.py @@ -21,11 +21,12 @@ from nova import context from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging from nova.openstack.common import timeutils -from nova.servicegroup import api + +from gantt.servicegroup import api CONF = cfg.CONF -CONF.import_opt('service_down_time', 'nova.service') +CONF.import_opt('service_down_time', 'gantt.service') LOG = logging.getLogger(__name__) diff --git a/gantt/servicegroup/drivers/mc.py b/gantt/servicegroup/drivers/mc.py index a22aa7cf4..132b4ad08 100644 --- a/gantt/servicegroup/drivers/mc.py +++ b/gantt/servicegroup/drivers/mc.py @@ -25,11 +25,12 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging from nova.openstack.common import memorycache from nova.openstack.common import timeutils -from nova.servicegroup import api + +from gantt.servicegroup import api CONF = cfg.CONF -CONF.import_opt('service_down_time', 'nova.service') +CONF.import_opt('service_down_time', 'gantt.service') CONF.import_opt('memcached_servers', 'nova.openstack.common.memorycache') diff --git a/gantt/servicegroup/drivers/zk.py b/gantt/servicegroup/drivers/zk.py index faf057a90..4eae13ef0 100644 --- a/gantt/servicegroup/drivers/zk.py +++ b/gantt/servicegroup/drivers/zk.py @@ -24,7 +24,8 @@ from nova.openstack.common.gettextutils import _ from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova.openstack.common import loopingcall -from nova.servicegroup import api + +from gantt.servicegroup import api evzookeeper = importutils.try_import('evzookeeper') membership = importutils.try_import('evzookeeper.membership') diff --git a/gantt/test.py b/gantt/test.py index 1b56315f1..bcde9f57b 100644 --- a/gantt/test.py +++ b/gantt/test.py @@ -49,8 +49,9 @@ from nova.openstack.common import log as logging from nova.openstack.common import timeutils from nova import paths from nova import service -from nova.tests import conf_fixture -from nova.tests import policy_fixture + +from gantt.tests import conf_fixture +from gantt.tests import policy_fixture test_opts = [ diff --git a/gantt/tests/conf_fixture.py b/gantt/tests/conf_fixture.py index e29087f18..ec67956dd 100644 --- a/gantt/tests/conf_fixture.py +++ b/gantt/tests/conf_fixture.py @@ -23,12 +23,13 @@ from nova import config from nova import ipv6 from nova.openstack.common.fixture import config as config_fixture from nova import paths -from nova.tests import utils + +from gantt.tests import utils CONF = cfg.CONF CONF.import_opt('use_ipv6', 'nova.netconf') CONF.import_opt('host', 'nova.netconf') -CONF.import_opt('scheduler_driver', 'nova.scheduler.manager') +CONF.import_opt('scheduler_driver', 'gantt.scheduler.manager') CONF.import_opt('fake_network', 'nova.network.manager') CONF.import_opt('network_size', 'nova.network.manager') CONF.import_opt('num_networks', 'nova.network.manager') @@ -50,9 +51,9 @@ class ConfFixture(config_fixture.Config): self.conf.set_default('fake_network', True) self.conf.set_default('flat_network_bridge', 'br100') self.conf.set_default('floating_ip_dns_manager', - 'nova.tests.utils.dns_manager') + 'gantt.tests.utils.dns_manager') self.conf.set_default('instance_dns_manager', - 'nova.tests.utils.dns_manager') + 'gantt.tests.utils.dns_manager') self.conf.set_default('network_size', 8) self.conf.set_default('num_networks', 2) self.conf.set_default('rpc_backend', diff --git a/gantt/tests/policy_fixture.py b/gantt/tests/policy_fixture.py index 91813defd..8ceae6e49 100644 --- a/gantt/tests/policy_fixture.py +++ b/gantt/tests/policy_fixture.py @@ -19,7 +19,8 @@ from oslo.config import cfg from nova.openstack.common import policy as common_policy import nova.policy -from nova.tests import fake_policy + +from gantt.tests import fake_policy CONF = cfg.CONF diff --git a/gantt/tests/scheduler/fakes.py b/gantt/tests/scheduler/fakes.py index 6d020c760..2259151bc 100644 --- a/gantt/tests/scheduler/fakes.py +++ b/gantt/tests/scheduler/fakes.py @@ -21,8 +21,9 @@ import mox from nova.compute import vm_states from nova import db from nova.openstack.common import jsonutils -from nova.scheduler import filter_scheduler -from nova.scheduler import host_manager + +from gantt.scheduler import filter_scheduler +from gantt.scheduler import host_manager COMPUTE_NODES = [ diff --git a/gantt/tests/scheduler/test_chance_scheduler.py b/gantt/tests/scheduler/test_chance_scheduler.py index c0615d214..dde55ec69 100644 --- a/gantt/tests/scheduler/test_chance_scheduler.py +++ b/gantt/tests/scheduler/test_chance_scheduler.py @@ -29,9 +29,10 @@ from nova.conductor import api as conductor_api from nova import context from nova import db from nova import exception -from nova.scheduler import chance -from nova.scheduler import driver -from nova.tests.scheduler import test_scheduler + +from gantt.scheduler import chance +from gantt.scheduler import driver +from gantt.tests.scheduler import test_scheduler class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): diff --git a/gantt/tests/scheduler/test_filter_scheduler.py b/gantt/tests/scheduler/test_filter_scheduler.py index f5c168681..98fae61a7 100644 --- a/gantt/tests/scheduler/test_filter_scheduler.py +++ b/gantt/tests/scheduler/test_filter_scheduler.py @@ -26,13 +26,14 @@ from nova import context from nova import db from nova import exception from nova.pci import pci_request -from nova.scheduler import driver -from nova.scheduler import filter_scheduler -from nova.scheduler import host_manager -from nova.scheduler import utils as scheduler_utils -from nova.scheduler import weights -from nova.tests.scheduler import fakes -from nova.tests.scheduler import test_scheduler + +from gantt.scheduler import driver +from gantt.scheduler import filter_scheduler +from gantt.scheduler import host_manager +from gantt.scheduler import utils as scheduler_utils +from gantt.scheduler import weights +from gantt.tests.scheduler import fakes +from gantt.tests.scheduler import test_scheduler def fake_get_filtered_hosts(hosts, filter_properties, index): diff --git a/gantt/tests/scheduler/test_filters.py b/gantt/tests/scheduler/test_filters.py index 9b96ebddc..7b30dfa77 100644 --- a/gantt/tests/scheduler/test_filters.py +++ b/gantt/tests/scheduler/test_filters.py @@ -18,9 +18,10 @@ Tests For Scheduler Host Filters. import inspect import sys -from nova import filters from nova import loadables -from nova import test + +from gantt import filters +from gantt import test class Filter1(filters.BaseFilter): diff --git a/gantt/tests/scheduler/test_host_filters.py b/gantt/tests/scheduler/test_host_filters.py index 52b44e13c..c17b60677 100644 --- a/gantt/tests/scheduler/test_host_filters.py +++ b/gantt/tests/scheduler/test_host_filters.py @@ -25,14 +25,15 @@ from nova import db from nova.openstack.common import jsonutils from nova.openstack.common import timeutils from nova.pci import pci_stats -from nova.scheduler import filters -from nova.scheduler.filters import extra_specs_ops -from nova.scheduler.filters import trusted_filter -from nova import servicegroup -from nova import test -from nova.tests.scheduler import fakes from nova import utils +from gantt.scheduler import filters +from gantt.scheduler.filters import extra_specs_ops +from gantt.scheduler.filters import trusted_filter +from gantt import servicegroup +from gantt import test +from gantt.tests.scheduler import fakes + CONF = cfg.CONF CONF.import_opt('my_ip', 'nova.netconf') @@ -256,7 +257,7 @@ class HostFiltersTestCase(test.NoDBTestCase): ['>=', '$free_disk_mb', 200 * 1024]]) filter_handler = filters.HostFilterHandler() classes = filter_handler.get_matching_classes( - ['nova.scheduler.filters.all_filters']) + ['gantt.scheduler.filters.all_filters']) self.class_map = {} for cls in classes: self.class_map[cls.__name__] = cls diff --git a/gantt/tests/scheduler/test_host_manager.py b/gantt/tests/scheduler/test_host_manager.py index 8c9b63b59..8ce2396d0 100644 --- a/gantt/tests/scheduler/test_host_manager.py +++ b/gantt/tests/scheduler/test_host_manager.py @@ -21,13 +21,14 @@ from nova import db from nova import exception from nova.openstack.common import jsonutils from nova.openstack.common import timeutils -from nova.scheduler import filters -from nova.scheduler import host_manager -from nova import test -from nova.tests import matchers -from nova.tests.scheduler import fakes from nova import utils +from gantt.scheduler import filters +from gantt.scheduler import host_manager +from gantt import test +from gantt.tests import matchers +from gantt.tests.scheduler import fakes + class FakeFilterClass1(filters.BaseHostFilter): def host_passes(self, host_state, filter_properties): diff --git a/gantt/tests/scheduler/test_scheduler.py b/gantt/tests/scheduler/test_scheduler.py index a077d7315..80edbef1e 100644 --- a/gantt/tests/scheduler/test_scheduler.py +++ b/gantt/tests/scheduler/test_scheduler.py @@ -35,17 +35,18 @@ from nova.image import glance from nova import notifier as notify from nova.objects import instance as instance_obj from nova.openstack.common.rpc import common as rpc_common -from nova.scheduler import driver -from nova.scheduler import manager -from nova import servicegroup -from nova import test -from nova.tests import fake_instance -from nova.tests import fake_instance_actions -from nova.tests.image import fake as fake_image -from nova.tests import matchers -from nova.tests.scheduler import fakes from nova import utils +from gantt.scheduler import driver +from gantt.scheduler import manager +from gantt import servicegroup +from gantt import test +from gantt.tests import fake_instance +from gantt.tests import fake_instance_actions +from gantt.tests.image import fake as fake_image +from gantt.tests import matchers +from gantt.tests.scheduler import fakes + CONF = cfg.CONF @@ -54,7 +55,7 @@ class SchedulerManagerTestCase(test.NoDBTestCase): manager_cls = manager.SchedulerManager driver_cls = driver.Scheduler - driver_cls_name = 'nova.scheduler.driver.Scheduler' + driver_cls_name = 'gantt.scheduler.driver.Scheduler' def setUp(self): super(SchedulerManagerTestCase, self).setUp() diff --git a/gantt/tests/scheduler/test_scheduler_options.py b/gantt/tests/scheduler/test_scheduler_options.py index 05322b0fa..43cbe5bd8 100644 --- a/gantt/tests/scheduler/test_scheduler_options.py +++ b/gantt/tests/scheduler/test_scheduler_options.py @@ -20,8 +20,9 @@ import datetime import StringIO from nova.openstack.common import jsonutils -from nova.scheduler import scheduler_options -from nova import test + +from gantt.scheduler import scheduler_options +from gantt import test class FakeSchedulerOptions(scheduler_options.SchedulerOptions): diff --git a/gantt/tests/scheduler/test_scheduler_utils.py b/gantt/tests/scheduler/test_scheduler_utils.py index b23002f45..62ae42b78 100644 --- a/gantt/tests/scheduler/test_scheduler_utils.py +++ b/gantt/tests/scheduler/test_scheduler_utils.py @@ -24,8 +24,9 @@ from nova.conductor import api as conductor_api from nova import db from nova import notifications from nova import notifier as notify -from nova.scheduler import utils as scheduler_utils -from nova import test + +from gantt.scheduler import utils as scheduler_utils +from gantt import test CONF = cfg.CONF diff --git a/gantt/tests/scheduler/test_weights.py b/gantt/tests/scheduler/test_weights.py index dfbe3d6f2..ef6baf199 100644 --- a/gantt/tests/scheduler/test_weights.py +++ b/gantt/tests/scheduler/test_weights.py @@ -19,10 +19,11 @@ Tests For Scheduler weights. from nova import context from nova import exception from nova.openstack.common.fixture import mockpatch -from nova.scheduler import weights -from nova import test -from nova.tests import matchers -from nova.tests.scheduler import fakes + +from gantt.scheduler import weights +from gantt import test +from gantt.tests import matchers +from gantt.tests.scheduler import fakes class TestWeighedHost(test.NoDBTestCase): @@ -50,7 +51,7 @@ class RamWeigherTestCase(test.NoDBTestCase): self.host_manager = fakes.FakeHostManager() self.weight_handler = weights.HostWeightHandler() self.weight_classes = self.weight_handler.get_matching_classes( - ['nova.scheduler.weights.ram.RAMWeigher']) + ['gantt.scheduler.weights.ram.RAMWeigher']) def _get_weighed_host(self, hosts, weight_properties=None): if weight_properties is None: @@ -113,7 +114,7 @@ class MetricsWeigherTestCase(test.NoDBTestCase): self.host_manager = fakes.FakeHostManager() self.weight_handler = weights.HostWeightHandler() self.weight_classes = self.weight_handler.get_matching_classes( - ['nova.scheduler.weights.metrics.MetricsWeigher']) + ['gantt.scheduler.weights.metrics.MetricsWeigher']) def _get_weighed_host(self, hosts, setting, weight_properties=None): if not weight_properties: diff --git a/gantt/version.py b/gantt/version.py index 0ec3dff3b..e578872eb 100644 --- a/gantt/version.py +++ b/gantt/version.py @@ -16,12 +16,14 @@ import pbr.version -NOVA_VENDOR = "OpenStack Foundation" -NOVA_PRODUCT = "OpenStack Nova" -NOVA_PACKAGE = None # OS distro package version suffix +from nova.openstack.common.gettextutils import _ + +GANTT_VENDOR = "OpenStack Foundation" +GANTT_PRODUCT = "OpenStack Gantt" +GANTT_PACKAGE = None # OS distro package version suffix loaded = False -version_info = pbr.version.VersionInfo('nova') +version_info = pbr.version.VersionInfo('gantt') version_string = version_info.version_string @@ -35,7 +37,7 @@ def _load_config(): from nova.openstack.common import log as logging - global loaded, NOVA_VENDOR, NOVA_PRODUCT, NOVA_PACKAGE + global loaded, GANTT_VENDOR, GANTT_PRODUCT, GANTT_PACKAGE if loaded: return @@ -49,39 +51,39 @@ def _load_config(): cfg = ConfigParser.RawConfigParser() cfg.read(cfgfile) - NOVA_VENDOR = cfg.get("Nova", "vendor") - if cfg.has_option("Nova", "vendor"): - NOVA_VENDOR = cfg.get("Nova", "vendor") + GANTT_VENDOR = cfg.get("Gantt", "vendor") + if cfg.has_option("Gantt", "vendor"): + GANTT_VENDOR = cfg.get("Gantt", "vendor") - NOVA_PRODUCT = cfg.get("Nova", "product") - if cfg.has_option("Nova", "product"): - NOVA_PRODUCT = cfg.get("Nova", "product") + GANTT_PRODUCT = cfg.get("Gantt", "product") + if cfg.has_option("Gantt", "product"): + GANTT_PRODUCT = cfg.get("Gantt", "product") - NOVA_PACKAGE = cfg.get("Nova", "package") - if cfg.has_option("Nova", "package"): - NOVA_PACKAGE = cfg.get("Nova", "package") + GANTT_PACKAGE = cfg.get("Gantt", "package") + if cfg.has_option("Gantt", "package"): + GANTT_PACKAGE = cfg.get("Gantt", "package") except Exception as ex: LOG = logging.getLogger(__name__) - LOG.error(("Failed to load %(cfgfile)s: %(ex)s"), + LOG.error(_("Failed to load %(cfgfile)s: %(ex)s"), {'cfgfile': cfgfile, 'ex': ex}) def vendor_string(): _load_config() - return NOVA_VENDOR + return GANTT_VENDOR def product_string(): _load_config() - return NOVA_PRODUCT + return GANTT_PRODUCT def package_string(): _load_config() - return NOVA_PACKAGE + return GANTT_PACKAGE def version_string_with_package(): diff --git a/test-requirements.txt b/test-requirements.txt index 32b0af2fb..61e88b498 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -13,3 +13,5 @@ sphinx>=1.1.2,<1.2 oslo.sphinx testrepository>=0.0.17 testtools>=0.9.32 + +http://tarballs.openstack.org/nova/nova-2014.1.b2.tar.gz#egg=nova diff --git a/tools/lintstack.py b/tools/lintstack.py index c887738ae..c66432cd3 100755 --- a/tools/lintstack.py +++ b/tools/lintstack.py @@ -36,7 +36,7 @@ ignore_messages = ["An attribute affected in gantt.tests"] # Note(maoy): we ignore all errors in openstack.common because it should be # checked elsewhere. We also ignore gantt.tests for now due to high false # positive rate. -ignore_modules = ["gantt/openstack/common/", "gantt/tests/"] +ignore_modules = ["gantt/tests/"] KNOWN_PYLINT_EXCEPTIONS_FILE = "tools/pylint_exceptions" diff --git a/tox.ini b/tox.ini index 5185d2cb3..31f954426 100644 --- a/tox.ini +++ b/tox.ini @@ -48,7 +48,7 @@ commands = {posargs} # H102 Apache 2.0 license header not found # E125 is deliberately excluded. See https://github.com/jcrocholl/pep8/issues/126 -ignore = E121,E122,E123,E124,E125,E126,E127,E128,E711,E712,H102,H302,H404,F403,F811,F841,H803 +ignore = E121,E122,E123,E124,E125,E126,E127,E128,E711,E712,H102,H404,F403,F811,F841,H302,H803 exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools [hacking]