No listener.json for single-node mode (Fixes #3052) (#3108)

In FS or single-node XL mode, there is no need to save listener
configuration to persistent storage. As there is only one server, if it
is restarted, any connected listenBucketAPI clients were disconnected
and will have to reconnect - so there is nothing to actually store.

This incidentally solves #3052 by avoiding the problem.
This commit is contained in:
Aditya Manthramurthy
2016-10-26 20:13:00 -07:00
committed by Harshavardhana
parent a15dc5fed5
commit 30dc11a931
4 changed files with 37 additions and 10 deletions
+14 -10
View File
@@ -379,11 +379,13 @@ func AddBucketListenerConfig(bucket string, lcfg *listenerConfig, objAPI ObjectL
// Release lock after notifying peers
defer nsMutex.Unlock(bucket, "", opsID)
// update persistent config
err := persistListenerConfig(bucket, listenerCfgs, objAPI)
if err != nil {
errorIf(err, "Error persisting listener config when adding a listener.")
return err
// update persistent config if dist XL
if globalS3Peers.isDistXL {
err := persistListenerConfig(bucket, listenerCfgs, objAPI)
if err != nil {
errorIf(err, "Error persisting listener config when adding a listener.")
return err
}
}
// persistence success - now update in-memory globals on all
@@ -419,11 +421,13 @@ func RemoveBucketListenerConfig(bucket string, lcfg *listenerConfig, objAPI Obje
// Release lock after notifying peers
defer nsMutex.Unlock(bucket, "", opsID)
// update persistent config
err := persistListenerConfig(bucket, updatedLcfgs, objAPI)
if err != nil {
errorIf(err, "Error persisting listener config when removing a listener.")
return
// update persistent config if dist XL
if globalS3Peers.isDistXL {
err := persistListenerConfig(bucket, updatedLcfgs, objAPI)
if err != nil {
errorIf(err, "Error persisting listener config when removing a listener.")
return
}
}
// persistence success - now update in-memory globals on all