mirror of https://github.com/minio/minio.git
				
				
				
			fix ConfigSys and NotificationSys initialization for NAS (#6920)
This commit is contained in:
		
							parent
							
								
									8fcc787cba
								
							
						
					
					
						commit
						f6980c4630
					
				|  | @ -177,6 +177,10 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit | |||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	if !objAPI.IsListenBucketSupported() { | ||||
| 		writeErrorResponse(w, ErrNotImplemented, r.URL, guessIsBrowserReq(r)) | ||||
| 		return | ||||
| 	} | ||||
| 	vars := mux.Vars(r) | ||||
| 	bucketName := vars["bucket"] | ||||
| 
 | ||||
|  |  | |||
|  | @ -154,6 +154,9 @@ func (api *DummyObjectLayer) DeleteBucketPolicy(context.Context, string) (err er | |||
| func (api *DummyObjectLayer) IsNotificationSupported() (b bool) { | ||||
| 	return | ||||
| } | ||||
| func (api *DummyObjectLayer) IsListenBucketSupported() (b bool) { | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func (api *DummyObjectLayer) IsEncryptionSupported() (b bool) { | ||||
| 	return | ||||
|  |  | |||
|  | @ -1306,6 +1306,11 @@ func (fs *FSObjects) IsNotificationSupported() bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.
 | ||||
| func (fs *FSObjects) IsListenBucketSupported() bool { | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsEncryptionSupported returns whether server side encryption is applicable for this layer.
 | ||||
| func (fs *FSObjects) IsEncryptionSupported() bool { | ||||
| 	return true | ||||
|  |  | |||
|  | @ -230,7 +230,7 @@ func StartGateway(ctx *cli.Context, gw Gateway) { | |||
| 
 | ||||
| 	// Create a new config system.
 | ||||
| 	globalConfigSys = NewConfigSys() | ||||
| 	if globalEtcdClient != nil { | ||||
| 	if globalEtcdClient != nil && gatewayName == "nas" { | ||||
| 		// Initialize server config.
 | ||||
| 		_ = globalConfigSys.Init(newObject) | ||||
| 	} else { | ||||
|  | @ -281,10 +281,9 @@ func StartGateway(ctx *cli.Context, gw Gateway) { | |||
| 
 | ||||
| 	// Create new notification system.
 | ||||
| 	globalNotificationSys = NewNotificationSys(globalServerConfig, globalEndpoints) | ||||
| 	if globalEtcdClient != nil { | ||||
| 	if globalEtcdClient != nil && newObject.IsNotificationSupported() { | ||||
| 		_ = globalNotificationSys.Init(newObject) | ||||
| 	} | ||||
| 
 | ||||
| 	// Once endpoints are finalized, initialize the new object api.
 | ||||
| 	globalObjLayerMutex.Lock() | ||||
| 	globalObjectAPI = newObject | ||||
|  |  | |||
|  | @ -132,6 +132,11 @@ func (a GatewayUnsupported) IsNotificationSupported() bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.
 | ||||
| func (a GatewayUnsupported) IsListenBucketSupported() bool { | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsEncryptionSupported returns whether server side encryption is applicable for this layer.
 | ||||
| func (a GatewayUnsupported) IsEncryptionSupported() bool { | ||||
| 	return false | ||||
|  |  | |||
|  | @ -116,6 +116,11 @@ func (g *NAS) Production() bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsListenBucketSupported returns whether listen bucket notification is applicable for this gateway.
 | ||||
| func (g *NAS) IsListenBucketSupported() bool { | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // nasObjects implements gateway for Minio and S3 compatible object storage servers.
 | ||||
| type nasObjects struct { | ||||
| 	minio.ObjectLayer | ||||
|  |  | |||
|  | @ -94,6 +94,7 @@ type ObjectLayer interface { | |||
| 
 | ||||
| 	// Supported operations check
 | ||||
| 	IsNotificationSupported() bool | ||||
| 	IsListenBucketSupported() bool | ||||
| 	IsEncryptionSupported() bool | ||||
| 
 | ||||
| 	// Compression support check.
 | ||||
|  |  | |||
|  | @ -516,6 +516,11 @@ func (s *xlSets) IsNotificationSupported() bool { | |||
| 	return s.getHashedSet("").IsNotificationSupported() | ||||
| } | ||||
| 
 | ||||
| // IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.
 | ||||
| func (s *xlSets) IsListenBucketSupported() bool { | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsEncryptionSupported returns whether server side encryption is applicable for this layer.
 | ||||
| func (s *xlSets) IsEncryptionSupported() bool { | ||||
| 	return s.getHashedSet("").IsEncryptionSupported() | ||||
|  |  | |||
|  | @ -294,6 +294,11 @@ func (xl xlObjects) IsNotificationSupported() bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.
 | ||||
| func (xl xlObjects) IsListenBucketSupported() bool { | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsEncryptionSupported returns whether server side encryption is applicable for this layer.
 | ||||
| func (xl xlObjects) IsEncryptionSupported() bool { | ||||
| 	return true | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue