objectLayer: Check for format.json in a wrapped disk. (#3311)

This is needed to validate if the `format.json` indeed exists
when a fresh node is brought online.

This wrapped implementation also connects to the remote node
by attempting a re-login. Subsequently after a successful
connect `format.json` is validated as well.

Fixes #3207
This commit is contained in:
Harshavardhana
2016-11-23 15:48:10 -08:00
committed by GitHub
parent 7a5bbf7a2e
commit 6efee2072d
26 changed files with 877 additions and 194 deletions

View File

@@ -156,38 +156,22 @@ func TestNewXL(t *testing.T) {
t.Fatal("Unexpected error: ", err)
}
err = waitForFormatDisks(true, endpoints, nil)
_, err = waitForFormatDisks(true, endpoints, nil)
if err != errInvalidArgument {
t.Fatalf("Expecting error, got %s", err)
}
err = waitForFormatDisks(true, nil, storageDisks)
_, err = waitForFormatDisks(true, nil, storageDisks)
if err != errInvalidArgument {
t.Fatalf("Expecting error, got %s", err)
}
// Initializes all erasure disks
err = waitForFormatDisks(true, endpoints, storageDisks)
formattedDisks, err := waitForFormatDisks(true, endpoints, storageDisks)
if err != nil {
t.Fatalf("Unable to format disks for erasure, %s", err)
}
_, err = newXLObjects(storageDisks)
if err != nil {
t.Fatalf("Unable to initialize erasure, %s", err)
}
endpoints, err = parseStorageEndpoints(erasureDisks)
if err != nil {
t.Fatalf("Unable to initialize erasure, %s", err)
}
storageDisks, err = initStorageDisks(endpoints)
if err != nil {
t.Fatal("Unexpected error: ", err)
}
// Initializes all erasure disks, ignoring first two.
_, err = newXLObjects(storageDisks)
_, err = newXLObjects(formattedDisks)
if err != nil {
t.Fatalf("Unable to initialize erasure, %s", err)
}