| 
									
										
										
										
											2016-09-20 04:14:55 +08:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2019-04-18 14:16:27 +08:00
										 |  |  |  * MinIO Cloud Storage, (C) 2019 MinIO, Inc. | 
					
						
							| 
									
										
										
										
											2016-09-20 04:14:55 +08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package cmd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2019-08-29 07:12:57 +08:00
										 |  |  | 	"errors" | 
					
						
							| 
									
										
										
										
											2016-09-20 04:14:55 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 01:30:59 +08:00
										 |  |  | const ( | 
					
						
							| 
									
										
										
										
											2021-01-26 02:01:27 +08:00
										 |  |  | 	lockRESTVersion       = "v5" // Add Quorum query param
 | 
					
						
							| 
									
										
										
										
											2020-02-21 13:59:57 +08:00
										 |  |  | 	lockRESTVersionPrefix = SlashSeparator + lockRESTVersion | 
					
						
							| 
									
										
										
										
											2019-11-05 01:30:59 +08:00
										 |  |  | 	lockRESTPrefix        = minioReservedBucketPath + "/lock" | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2019-04-18 14:16:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const ( | 
					
						
							| 
									
										
										
										
											2021-01-26 02:01:27 +08:00
										 |  |  | 	lockRESTMethodHealth      = "/health" | 
					
						
							|  |  |  | 	lockRESTMethodLock        = "/lock" | 
					
						
							|  |  |  | 	lockRESTMethodRLock       = "/rlock" | 
					
						
							|  |  |  | 	lockRESTMethodUnlock      = "/unlock" | 
					
						
							|  |  |  | 	lockRESTMethodRUnlock     = "/runlock" | 
					
						
							|  |  |  | 	lockRESTMethodExpired     = "/expired" | 
					
						
							|  |  |  | 	lockRESTMethodForceUnlock = "/force-unlock" | 
					
						
							| 
									
										
										
										
											2019-08-06 02:45:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-26 10:21:52 +08:00
										 |  |  | 	// lockRESTOwner represents owner UUID
 | 
					
						
							|  |  |  | 	lockRESTOwner = "owner" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 02:45:30 +08:00
										 |  |  | 	// Unique ID of lock/unlock request.
 | 
					
						
							|  |  |  | 	lockRESTUID = "uid" | 
					
						
							| 
									
										
										
										
											2020-09-26 10:21:52 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 02:45:30 +08:00
										 |  |  | 	// Source contains the line number, function and file name of the code
 | 
					
						
							|  |  |  | 	// on the client node that requested the lock.
 | 
					
						
							|  |  |  | 	lockRESTSource = "source" | 
					
						
							| 
									
										
										
										
											2020-10-25 04:23:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Quroum value to be saved along lock requester info, useful
 | 
					
						
							|  |  |  | 	// in verifying stale locks
 | 
					
						
							|  |  |  | 	lockRESTQuorum = "quorum" | 
					
						
							| 
									
										
										
										
											2019-04-18 14:16:27 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-26 08:39:43 +08:00
										 |  |  | var ( | 
					
						
							| 
									
										
										
										
											2020-09-24 03:00:29 +08:00
										 |  |  | 	errLockConflict       = errors.New("lock conflict") | 
					
						
							|  |  |  | 	errLockNotExpired     = errors.New("lock not expired") | 
					
						
							|  |  |  | 	errLockNotInitialized = errors.New("lock not initialized") | 
					
						
							| 
									
										
										
										
											2019-11-26 08:39:43 +08:00
										 |  |  | ) |