/** * Pass the VoltMessage to CI's handleRead() and inspect if the expected parameters are passed to * the initiator's createTranction() method. This is a convenient method if the caller expects the * result of handling this message is to create a new transaction. * * @param msg * @param procName * @param partitionParam null if it's a multi-part txn * @param isAdmin * @param isReadonly * @param isSinglePart * @param isEverySite * @return StoredProcedureInvocation object passed to createTransaction() * @throws IOException */ private StoredProcedureInvocation readAndCheck( ByteBuffer msg, String procName, Object partitionParam, boolean isAdmin, boolean isReadonly, boolean isSinglePart, boolean isEverySite) throws IOException { ClientResponseImpl resp = m_ci.handleRead(msg, m_handler, m_cxn); assertNull(resp); ArgumentCaptor<Long> destinationCaptor = ArgumentCaptor.forClass(Long.class); ArgumentCaptor<Iv2InitiateTaskMessage> messageCaptor = ArgumentCaptor.forClass(Iv2InitiateTaskMessage.class); verify(m_messenger).send(destinationCaptor.capture(), messageCaptor.capture()); Iv2InitiateTaskMessage message = messageCaptor.getValue(); // assertEquals(isAdmin, message.); // is admin assertEquals(isReadonly, message.isReadOnly()); // readonly assertEquals(isSinglePart, message.isSinglePartition()); // single-part // assertEquals(isEverySite, message.g); // every site assertEquals(procName, message.getStoredProcedureName()); if (isSinglePart) { int expected = TheHashinator.hashToPartition(partitionParam); assertEquals( new Long(m_cartographer.getHSIdForMaster(expected)), destinationCaptor.getValue()); } else { assertEquals( new Long(m_cartographer.getHSIdForMultiPartitionInitiator()), destinationCaptor.getValue()); } return message.getStoredProcedureInvocation(); }
public int getPartitionCount() { // The list returned by getPartitions includes the MP PID. Need to remove that for the // true partition count. return Cartographer.getPartitions(m_zk).size() - 1; }
public List<Integer> getPartitions() { return Cartographer.getPartitions(m_zk); }