@Override
    public boolean prepareFormat() throws Exception {
        boolean ledgerRootExists = store.exists(ledgersRootPath).get(BLOCKING_CALL_TIMEOUT, MILLISECONDS);
        boolean availableNodeExists = store.exists(bookieRegistrationPath).get(BLOCKING_CALL_TIMEOUT, MILLISECONDS);
        // Create ledgers root node if not exists
        if (!ledgerRootExists) {
            store.put(ledgersRootPath, new byte[0], Optional.empty())
                    .get(BLOCKING_CALL_TIMEOUT, MILLISECONDS);
        }
        // create available bookies node if not exists
        if (!availableNodeExists) {
            store.put(bookieRegistrationPath, new byte[0], Optional.empty())
                    .get(BLOCKING_CALL_TIMEOUT, MILLISECONDS);
        }

        // create readonly bookies node if not exists
        if (!store.exists(bookieReadonlyRegistrationPath).get(BLOCKING_CALL_TIMEOUT, MILLISECONDS)) {
            store.put(bookieReadonlyRegistrationPath, new byte[0], Optional.empty())
                    .get(BLOCKING_CALL_TIMEOUT, MILLISECONDS);
        }

        return ledgerRootExists;
    }
@Test(dataProvider = "impl")
    public void testPrepareFormat(String provider, Supplier<String> urlSupplier) throws Exception {
        methodSetup(urlSupplier);
        registrationManager.prepareFormat();
        assertTrue(store.exists(ledgersRootPath).join());
    }