Integrate BACKBEAT SDK and resolve KACHING license validation
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>
This commit is contained in:
		
							
								
								
									
										126
									
								
								vendor/github.com/elastic/gosigar/sigar_format.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								vendor/github.com/elastic/gosigar/sigar_format.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| // Copyright (c) 2012 VMware, Inc. | ||||
|  | ||||
| package gosigar | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"bytes" | ||||
| 	"fmt" | ||||
| 	"strconv" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // Go version of apr_strfsize | ||||
| func FormatSize(size uint64) string { | ||||
| 	ord := []string{"K", "M", "G", "T", "P", "E"} | ||||
| 	o := 0 | ||||
| 	buf := new(bytes.Buffer) | ||||
| 	w := bufio.NewWriter(buf) | ||||
|  | ||||
| 	if size < 973 { | ||||
| 		fmt.Fprintf(w, "%3d ", size) | ||||
| 		w.Flush() | ||||
| 		return buf.String() | ||||
| 	} | ||||
|  | ||||
| 	for { | ||||
| 		remain := size & 1023 | ||||
| 		size >>= 10 | ||||
|  | ||||
| 		if size >= 973 { | ||||
| 			o++ | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		if size < 9 || (size == 9 && remain < 973) { | ||||
| 			remain = ((remain * 5) + 256) / 512 | ||||
| 			if remain >= 10 { | ||||
| 				size++ | ||||
| 				remain = 0 | ||||
| 			} | ||||
|  | ||||
| 			fmt.Fprintf(w, "%d.%d%s", size, remain, ord[o]) | ||||
| 			break | ||||
| 		} | ||||
|  | ||||
| 		if remain >= 512 { | ||||
| 			size++ | ||||
| 		} | ||||
|  | ||||
| 		fmt.Fprintf(w, "%3d%s", size, ord[o]) | ||||
| 		break | ||||
| 	} | ||||
|  | ||||
| 	w.Flush() | ||||
| 	return buf.String() | ||||
| } | ||||
|  | ||||
| func FormatPercent(percent float64) string { | ||||
| 	return strconv.FormatFloat(percent, 'f', -1, 64) + "%" | ||||
| } | ||||
|  | ||||
| func (self *FileSystemUsage) UsePercent() float64 { | ||||
| 	b_used := (self.Total - self.Free) / 1024 | ||||
| 	b_avail := self.Avail / 1024 | ||||
| 	utotal := b_used + b_avail | ||||
| 	used := b_used | ||||
|  | ||||
| 	if utotal != 0 { | ||||
| 		u100 := used * 100 | ||||
| 		pct := u100 / utotal | ||||
| 		if u100%utotal != 0 { | ||||
| 			pct += 1 | ||||
| 		} | ||||
| 		return (float64(pct) / float64(100)) * 100.0 | ||||
| 	} | ||||
|  | ||||
| 	return 0.0 | ||||
| } | ||||
|  | ||||
| func (self *Uptime) Format() string { | ||||
| 	buf := new(bytes.Buffer) | ||||
| 	w := bufio.NewWriter(buf) | ||||
| 	uptime := uint64(self.Length) | ||||
|  | ||||
| 	days := uptime / (60 * 60 * 24) | ||||
|  | ||||
| 	if days != 0 { | ||||
| 		s := "" | ||||
| 		if days > 1 { | ||||
| 			s = "s" | ||||
| 		} | ||||
| 		fmt.Fprintf(w, "%d day%s, ", days, s) | ||||
| 	} | ||||
|  | ||||
| 	minutes := uptime / 60 | ||||
| 	hours := minutes / 60 | ||||
| 	hours %= 24 | ||||
| 	minutes %= 60 | ||||
|  | ||||
| 	fmt.Fprintf(w, "%2d:%02d", hours, minutes) | ||||
|  | ||||
| 	w.Flush() | ||||
| 	return buf.String() | ||||
| } | ||||
|  | ||||
| func (self *ProcTime) FormatStartTime() string { | ||||
| 	if self.StartTime == 0 { | ||||
| 		return "00:00" | ||||
| 	} | ||||
| 	start := time.Unix(int64(self.StartTime)/1000, 0) | ||||
| 	format := "Jan02" | ||||
| 	if time.Since(start).Seconds() < (60 * 60 * 24) { | ||||
| 		format = "15:04" | ||||
| 	} | ||||
| 	return start.Format(format) | ||||
| } | ||||
|  | ||||
| func (self *ProcTime) FormatTotal() string { | ||||
| 	t := self.Total / 1000 | ||||
| 	ss := t % 60 | ||||
| 	t /= 60 | ||||
| 	mm := t % 60 | ||||
| 	t /= 60 | ||||
| 	hh := t % 24 | ||||
| 	return fmt.Sprintf("%02d:%02d:%02d", hh, mm, ss) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins