summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Morrison <sorrison@gmail.com>2013-06-13 16:34:11 +1000
committerSam Morrison <sorrison@gmail.com>2013-06-13 16:49:39 +1000
commit3dee15089470fcefcd07e2f59696b61a9e221a78 (patch)
tree354cd84c9805fa75cf27b5e3d1cf445ede8bfd08
parentbdf362b81097e35b325151db981c32ed3099f2dc (diff)
downloadnova-3dee15089470fcefcd07e2f59696b61a9e221a78.tar.gz
nova-3dee15089470fcefcd07e2f59696b61a9e221a78.tar.xz
nova-3dee15089470fcefcd07e2f59696b61a9e221a78.zip
Don't advertise mute cells capabilities upwards
Fixes bug 1190473 Change-Id: Ic61b549869b1434df81407e499ec8b00ba8f328f
-rw-r--r--nova/cells/opts.py9
-rw-r--r--nova/cells/state.py4
-rw-r--r--nova/cells/weights/mute_child.py6
3 files changed, 12 insertions, 7 deletions
diff --git a/nova/cells/opts.py b/nova/cells/opts.py
index 4e3d75de4..5ab16f377 100644
--- a/nova/cells/opts.py
+++ b/nova/cells/opts.py
@@ -44,8 +44,13 @@ cells_opts = [
help='Percentage of cell capacity to hold in reserve. '
'Affects both memory and disk utilization'),
cfg.StrOpt('cell_type',
- default=None,
- help='Type of cell: api or compute'),
+ default=None,
+ help='Type of cell: api or compute'),
+ cfg.IntOpt("mute_child_interval",
+ default=300,
+ help='Number of seconds after which a lack of capability and '
+ 'capacity updates signals the child cell is to be '
+ 'treated as a mute.'),
]
cfg.CONF.register_opts(cells_opts, group='cells')
diff --git a/nova/cells/state.py b/nova/cells/state.py
index 37813d581..14fa97507 100644
--- a/nova/cells/state.py
+++ b/nova/cells/state.py
@@ -42,6 +42,7 @@ LOG = logging.getLogger(__name__)
CONF = cfg.CONF
CONF.import_opt('name', 'nova.cells.opts', group='cells')
CONF.import_opt('reserve_percent', 'nova.cells.opts', group='cells')
+CONF.import_opt('mute_child_interval', 'nova.cells.opts', group='cells')
#CONF.import_opt('capabilities', 'nova.cells.opts', group='cells')
CONF.register_opts(cell_state_manager_opts, group='cells')
@@ -340,6 +341,9 @@ class CellStateManager(base.Base):
capabs = copy.deepcopy(self.my_cell_state.capabilities)
if include_children:
for cell in self.child_cells.values():
+ if timeutils.is_older_than(cell.last_seen,
+ CONF.cells.mute_child_interval):
+ continue
for capab_name, values in cell.capabilities.items():
if capab_name not in capabs:
capabs[capab_name] = set([])
diff --git a/nova/cells/weights/mute_child.py b/nova/cells/weights/mute_child.py
index 0f6fb0bbb..82139d4f3 100644
--- a/nova/cells/weights/mute_child.py
+++ b/nova/cells/weights/mute_child.py
@@ -35,14 +35,10 @@ mute_weigher_opts = [
default=1000.0,
help='Weight value assigned to mute children. (The value '
'should be positive.)'),
- cfg.IntOpt("mute_child_interval",
- default=300,
- help='Number of seconds after which a lack of capability and '
- 'capacity updates signals the child cell is to be '
- 'treated as a mute.')
]
CONF = cfg.CONF
+CONF.import_opt('mute_child_interval', 'nova.cells.opts', group='cells')
CONF.register_opts(mute_weigher_opts, group='cells')