mirror of https://github.com/minio/minio.git
				
				
				
			
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
| // Copyright (c) 2023 MinIO, Inc.
 | |
| //
 | |
| // This file is part of MinIO Object Storage stack
 | |
| //
 | |
| // This program is free software: you can redistribute it and/or modify
 | |
| // it under the terms of the GNU Affero General Public License as published by
 | |
| // the Free Software Foundation, either version 3 of the License, or
 | |
| // (at your option) any later version.
 | |
| //
 | |
| // This program is distributed in the hope that it will be useful
 | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| // GNU Affero General Public License for more details.
 | |
| //
 | |
| // You should have received a copy of the GNU Affero General Public License
 | |
| // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| package cmd
 | |
| 
 | |
| import "github.com/minio/minio/internal/bucket/lifecycle"
 | |
| 
 | |
| //go:generate stringer -type lcEventSrc -trimprefix lcEventSrc_ $GOFILE
 | |
| type lcEventSrc uint8
 | |
| 
 | |
| //revive:disable:var-naming Underscores is used here to indicate where common prefix ends and the enumeration name begins
 | |
| const (
 | |
| 	lcEventSrc_None lcEventSrc = iota
 | |
| 	lcEventSrc_Scanner
 | |
| 	lcEventSrc_Decom
 | |
| 	lcEventSrc_Rebal
 | |
| 	lcEventSrc_s3HeadObject
 | |
| 	lcEventSrc_s3GetObject
 | |
| 	lcEventSrc_s3ListObjects
 | |
| 	lcEventSrc_s3PutObject
 | |
| 	lcEventSrc_s3CopyObject
 | |
| 	lcEventSrc_s3CompleteMultipartUpload
 | |
| )
 | |
| 
 | |
| //revive:enable:var-naming
 | |
| type lcAuditEvent struct {
 | |
| 	lifecycle.Event
 | |
| 	source lcEventSrc
 | |
| }
 | |
| 
 | |
| func (lae lcAuditEvent) Tags() map[string]interface{} {
 | |
| 	event := lae.Event
 | |
| 	src := lae.source
 | |
| 	const (
 | |
| 		ilmSrc                     = "ilm-src"
 | |
| 		ilmAction                  = "ilm-action"
 | |
| 		ilmDue                     = "ilm-due"
 | |
| 		ilmRuleID                  = "ilm-rule-id"
 | |
| 		ilmTier                    = "ilm-tier"
 | |
| 		ilmNewerNoncurrentVersions = "ilm-newer-noncurrent-versions"
 | |
| 		ilmNoncurrentDays          = "ilm-noncurrent-days"
 | |
| 	)
 | |
| 	tags := make(map[string]interface{}, 5)
 | |
| 	if src > lcEventSrc_None {
 | |
| 		tags[ilmSrc] = src.String()
 | |
| 	}
 | |
| 	tags[ilmAction] = event.Action.String()
 | |
| 	tags[ilmRuleID] = event.RuleID
 | |
| 
 | |
| 	if !event.Due.IsZero() {
 | |
| 		tags[ilmDue] = event.Due
 | |
| 	}
 | |
| 
 | |
| 	// rule with Transition/NoncurrentVersionTransition in effect
 | |
| 	if event.StorageClass != "" {
 | |
| 		tags[ilmTier] = event.StorageClass
 | |
| 	}
 | |
| 
 | |
| 	// rule with NewernoncurrentVersions in effect
 | |
| 	if event.NewerNoncurrentVersions > 0 {
 | |
| 		tags[ilmNewerNoncurrentVersions] = event.NewerNoncurrentVersions
 | |
| 	}
 | |
| 	if event.NoncurrentDays > 0 {
 | |
| 		tags[ilmNoncurrentDays] = event.NoncurrentDays
 | |
| 	}
 | |
| 	return tags
 | |
| }
 | |
| 
 | |
| func newLifecycleAuditEvent(src lcEventSrc, event lifecycle.Event) lcAuditEvent {
 | |
| 	return lcAuditEvent{
 | |
| 		Event:  event,
 | |
| 		source: src,
 | |
| 	}
 | |
| }
 |