Partial dead code deletion

Most of the unused code around node deletion can now be removed.

Change-Id: I88262abae183c014b7cfa05517794252f0238dcd
This commit is contained in:
David Shrewsbury 2017-02-16 15:15:36 -05:00
parent ae20ff1792
commit 64b39bf970
2 changed files with 0 additions and 140 deletions

View File

@ -16,8 +16,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import apscheduler.schedulers.background
import apscheduler.triggers.cron
import json
import logging
import os
@ -1309,35 +1307,6 @@ class NodePool(threading.Thread):
t.name)
t.online = False
def reconfigureCrons(self, config):
cron_map = {
'cleanup': self._doPeriodicCleanup,
'check': self._doPeriodicCheck,
}
if not self.apsched:
self.apsched = apscheduler.schedulers.background.BackgroundScheduler()
self.apsched.start()
for c in config.crons.values():
if ((not self.config) or
c.timespec != self.config.crons[c.name].timespec):
if self.config and self.config.crons[c.name].job:
self.config.crons[c.name].job.remove()
parts = c.timespec.split()
if len(parts) > 5:
second = parts[5]
else:
second = None
minute, hour, dom, month, dow = parts[:5]
trigger = apscheduler.triggers.cron.CronTrigger(
month=month, day=dom, day_of_week=dow,
hour=hour, minute=minute, second=second)
c.job = self.apsched.add_job(
cron_map[c.name], trigger=trigger)
else:
c.job = self.config.crons[c.name].job
def reconfigureZooKeeper(self, config):
if self.config:
running = self.config.zookeeper_servers.values()
@ -1714,19 +1683,6 @@ class NodePool(threading.Thread):
launch_timeout)
t.start()
def deleteNode(self, node_id):
try:
self._delete_threads_lock.acquire()
if node_id in self._delete_threads:
return
t = NodeDeleter(self, node_id)
self._delete_threads[node_id] = t
t.start()
except Exception:
self.log.exception("Could not delete node %s", node_id)
finally:
self._delete_threads_lock.release()
def _deleteNode(self, session, node):
self.log.debug("Deleting node id: %s which has been in %s "
"state for %s hours" %
@ -1782,72 +1738,6 @@ class NodePool(threading.Thread):
self.statsd.incr(key)
self.updateStats(session, node.provider_name)
def deleteInstance(self, provider_name, external_id):
key = (provider_name, external_id)
try:
self._instance_delete_threads_lock.acquire()
if key in self._instance_delete_threads:
return
t = InstanceDeleter(self, provider_name, external_id)
self._instance_delete_threads[key] = t
t.start()
except Exception:
self.log.exception("Could not delete instance %s on provider %s",
provider_name, external_id)
finally:
self._instance_delete_threads_lock.release()
def _deleteInstance(self, provider_name, external_id):
provider = self.config.providers[provider_name]
manager = self.getProviderManager(provider)
manager.cleanupServer(external_id)
def _doPeriodicCleanup(self):
if self.no_deletes:
return
try:
self.periodicCleanup()
except Exception:
self.log.exception("Exception in periodic cleanup:")
def periodicCleanup(self):
# This function should be run periodically to clean up any hosts
# that may have slipped through the cracks, as well as to remove
# old images.
self.log.debug("Starting periodic cleanup")
for k, t in self._delete_threads.items()[:]:
if not t.isAlive():
del self._delete_threads[k]
for k, t in self._instance_delete_threads.items()[:]:
if not t.isAlive():
del self._instance_delete_threads[k]
node_ids = []
with self.getDB().getSession() as session:
for node in session.getNodes():
node_ids.append(node.id)
for node_id in node_ids:
try:
with self.getDB().getSession() as session:
node = session.getNode(node_id)
if node:
self.cleanupOneNode(session, node)
except Exception:
self.log.exception("Exception cleaning up node id %s:" %
node_id)
try:
self.cleanupLeakedInstances()
pass
except Exception:
self.log.exception("Exception cleaning up leaked nodes")
self.log.debug("Finished periodic cleanup")
def cleanupLeakedInstances(self):
known_providers = self.config.providers.keys()
for provider in self.config.providers.values():
@ -1888,35 +1778,6 @@ class NodePool(threading.Thread):
if provider.clean_floating_ips:
manager.cleanupLeakedFloaters()
def cleanupOneNode(self, session, node):
now = time.time()
time_in_state = now - node.state_time
if (node.state in [nodedb.READY, nodedb.HOLD]):
return
delete = False
if (node.state == nodedb.DELETE):
delete = True
elif (node.state == nodedb.TEST and
time_in_state > TEST_CLEANUP):
delete = True
elif time_in_state > NODE_CLEANUP:
delete = True
if delete:
try:
self.deleteNode(node.id)
except Exception:
self.log.exception("Exception deleting node id: "
"%s" % node.id)
def _doPeriodicCheck(self):
if self.no_deletes:
return
try:
with self.getDB().getSession() as session:
self.periodicCheck(session)
except Exception:
self.log.exception("Exception in periodic check:")
def periodicCheck(self, session):
# This function should be run periodically to make sure we can
# still access hosts via ssh.

View File

@ -6,7 +6,6 @@ paramiko>1.11.6,<2.0.0
python-daemon>=2.0.4,<2.1.0
extras
statsd>=3.0
apscheduler>=3.0
sqlalchemy>=0.8.2,<1.1.0
PyMySQL
PrettyTable>=0.6,<0.8