diff --git a/IPython/html/services/clusters/clustermanager.py b/IPython/html/services/clusters/clustermanager.py
index b159fc2..c0a8776 100644
--- a/IPython/html/services/clusters/clustermanager.py
+++ b/IPython/html/services/clusters/clustermanager.py
@@ -1,20 +1,7 @@
-"""Manage IPython.parallel clusters in the notebook.
+"""Manage IPython.parallel clusters in the notebook."""
-Authors:
-
-* Brian Granger
-"""
-
-#-----------------------------------------------------------------------------
-# Copyright (C) 2008-2011 The IPython Development Team
-#
-# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING, distributed as part of this software.
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-# Imports
-#-----------------------------------------------------------------------------
+# Copyright (c) IPython Development Team.
+# Distributed under the terms of the Modified BSD License.
from tornado import web
@@ -26,13 +13,6 @@ from IPython.utils import py3compat
from IPython.utils.path import get_ipython_dir
-#-----------------------------------------------------------------------------
-# Classes
-#-----------------------------------------------------------------------------
-
-
-
-
class ClusterManager(LoggingConfigurable):
profiles = Dict()
@@ -74,16 +54,24 @@ class ClusterManager(LoggingConfigurable):
def update_profiles(self):
"""List all profiles in the ipython_dir and cwd.
"""
+
+ stale = set(self.profiles)
for path in [get_ipython_dir(), py3compat.getcwd()]:
for profile in list_profiles_in(path):
+ if profile in stale:
+ stale.remove(profile)
pd = self.get_profile_dir(profile, path)
if profile not in self.profiles:
- self.log.debug("Adding cluster profile '%s'" % profile)
+ self.log.debug("Adding cluster profile '%s'", profile)
self.profiles[profile] = {
'profile': profile,
'profile_dir': pd,
'status': 'stopped'
}
+ for profile in stale:
+ # remove profiles that no longer exist
+ self.log.debug("Profile '%s' no longer exists", profile)
+ self.profiles.pop(stale)
def list_profiles(self):
self.update_profiles()