Commit 9e4f6725 authored by Grégory Wisniewski's avatar Grégory Wisniewski

Remove an XXX: _getPartition is no more private because it's now used by the

master handler to ensure that the master connection is well established. Check
of greater ptid received with incremental partition table update is now done by
the PartitionTable class.


git-svn-id: https://svn.erp5.org/repos/neo/branches/prototype3@1078 71dcc9de-d417-0410-9af5-da40c76e7ee4
parent 1b28f75a
#
##
# Copyright (C) 2006-2009 Nexedi SA
#
# This program is free software; you can redistribute it and/or
......@@ -272,7 +272,6 @@ class Application(object):
self.uuid = None
self.mq_cache = MQ()
self.new_oid_list = []
self.ptid = None
self.last_oid = '\0' * 8
self.storage_event_handler = storage.StorageEventHandler(self, self.dispatcher)
self.storage_bootstrap_handler = storage.StorageBootstrapHandler(self)
......@@ -390,7 +389,7 @@ class Application(object):
finally:
self._connecting_to_master_node_release()
def _getPartitionTable(self):
def getPartitionTable(self):
""" Return the partition table manager, reconnect the PMN if needed """
# this ensure the master connection is established and the partition
# table is up to date.
......@@ -399,12 +398,12 @@ class Application(object):
def _getCellListForOID(self, oid, readable=False, writable=False):
""" Return the cells available for the specified OID """
pt = self._getPartitionTable()
pt = self.getPartitionTable()
return pt.getCellListForOID(oid, readable, writable)
def _getCellListForTID(self, tid, readable=False, writable=False):
""" Return the cells available for the specified TID """
pt = self._getPartitionTable()
pt = self.getPartitionTable()
return pt.getCellListForTID(tid, readable, writable)
def _connectToPrimaryMasterNode(self):
......@@ -732,7 +731,7 @@ class Application(object):
ext = dumps(transaction._extension)
oid_list = self.local_var.data_dict.keys()
# Store data on each node
pt = self._getPartitionTable()
pt = self.getPartitionTable()
cell_list = self._getCellListForTID(self.local_var.tid, writable=True)
self.local_var.voted_counter = 0
for cell in cell_list:
......@@ -890,7 +889,7 @@ class Application(object):
# First get a list of transactions from all storage nodes.
# Each storage node will return TIDs only for UP_TO_DATE_STATE and
# FEEDING_STATE cells
pt = self._getPartitionTable()
pt = self.getPartitionTable()
storage_node_list = pt.getNodeList()
self.local_var.node_tids = {}
......
......@@ -150,19 +150,13 @@ class PrimaryNotificationsHandler(BaseHandler):
finally:
app._cache_lock_release()
def handleNotifyPartitionChanges(self, conn, packet, ptid, cell_list):
# XXX: delegate this test to the partition table and use the pt.getID()
# instead of app.ptid
app = self.app
if app.ptid >= ptid:
# Ignore this packet.
return
app.ptid = ptid
self.app.pt.update(ptid, cell_list, self.app.nm)
pt = self.app.getPartitionTable()
pt.update(ptid, cell_list, self.app.nm)
def handleSendPartitionTable(self, conn, packet, ptid, row_list):
self.app.pt.load(ptid, row_list, self.app.nm)
pt = self.app.getPartitionTable()
pt.load(ptid, row_list, self.app.nm)
def handleNotifyNodeInformation(self, conn, packet, node_list):
app = self.app
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment