 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) 2012 VMware, Inc.
 | |
| 
 | |
| // +build aix darwin freebsd linux
 | |
| 
 | |
| package gosigar
 | |
| 
 | |
| import (
 | |
| 	"syscall"
 | |
| 	"time"
 | |
| 
 | |
| 	"golang.org/x/sys/unix"
 | |
| )
 | |
| 
 | |
| func (self *FileSystemUsage) Get(path string) error {
 | |
| 	stat := syscall.Statfs_t{}
 | |
| 	err := syscall.Statfs(path, &stat)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	self.Total = uint64(stat.Blocks) * uint64(stat.Bsize)
 | |
| 	self.Free = uint64(stat.Bfree) * uint64(stat.Bsize)
 | |
| 	self.Avail = uint64(stat.Bavail) * uint64(stat.Bsize)
 | |
| 	self.Used = self.Total - self.Free
 | |
| 	self.Files = stat.Files
 | |
| 	self.FreeFiles = uint64(stat.Ffree)
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func (r *Rusage) Get(who int) error {
 | |
| 	ru, err := getResourceUsage(who)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	uTime := convertRtimeToDur(ru.Utime)
 | |
| 	sTime := convertRtimeToDur(ru.Stime)
 | |
| 
 | |
| 	r.Utime = uTime
 | |
| 	r.Stime = sTime
 | |
| 	r.Maxrss = int64(ru.Maxrss)
 | |
| 	r.Ixrss = int64(ru.Ixrss)
 | |
| 	r.Idrss = int64(ru.Idrss)
 | |
| 	r.Isrss = int64(ru.Isrss)
 | |
| 	r.Minflt = int64(ru.Minflt)
 | |
| 	r.Majflt = int64(ru.Majflt)
 | |
| 	r.Nswap = int64(ru.Nswap)
 | |
| 	r.Inblock = int64(ru.Inblock)
 | |
| 	r.Oublock = int64(ru.Oublock)
 | |
| 	r.Msgsnd = int64(ru.Msgsnd)
 | |
| 	r.Msgrcv = int64(ru.Msgrcv)
 | |
| 	r.Nsignals = int64(ru.Nsignals)
 | |
| 	r.Nvcsw = int64(ru.Nvcsw)
 | |
| 	r.Nivcsw = int64(ru.Nivcsw)
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func getResourceUsage(who int) (unix.Rusage, error) {
 | |
| 	r := unix.Rusage{}
 | |
| 	err := unix.Getrusage(who, &r)
 | |
| 
 | |
| 	return r, err
 | |
| }
 | |
| 
 | |
| func convertRtimeToDur(t unix.Timeval) time.Duration {
 | |
| 	return time.Duration(t.Nano())
 | |
| }
 |