@@ -21,7 +21,9 @@ import (
21
21
"os/user"
22
22
"strings"
23
23
"time"
24
+ "fmt"
24
25
26
+ "github.com/google/uuid"
25
27
"github.com/spf13/viper"
26
28
"k8s.io/klog/v2"
27
29
"k8s.io/minikube/pkg/minikube/config"
@@ -51,14 +53,34 @@ func args() string {
51
53
}
52
54
53
55
// Log details about the executed command.
54
- func Log ( startTime time. Time ) {
56
+ func LogCommandStart () ( string , err ) {
55
57
if len (os .Args ) < 2 || ! shouldLog () {
56
- return
58
+ return "" , fmt . Errorf ( "This command should not be logged and len(os.Args) : %v, should be less than 2" , len ( os . Args ))
57
59
}
58
- r := newRow (os .Args [1 ], args (), userName (), version .GetVersion (), startTime , time .Now ())
60
+ id := uuid .New ().String ()
61
+ r := newRow (os .Args [1 ], args (), userName (), version .GetVersion (), time .Now (), id )
59
62
if err := appendToLog (r ); err != nil {
60
- klog .Warning (err )
63
+ return "" , klog .Warning (err )
61
64
}
65
+ return r .id , nil
66
+ }
67
+
68
+ func LogCommandEnd (id string ) err {
69
+ if currentLogFile == nil {
70
+ if err := setLogFile (); err != nil {
71
+ return fmt .Errorf ("failed to set the log file: %v" , err )
72
+ }
73
+ }
74
+ auditLogs , err := logsToRows (currentLogFile )
75
+ if err != nil {
76
+ return fmt .Errorf ("%v" , err )
77
+ }
78
+ for _ , v := range auditLogs {
79
+ if v .id == id {
80
+ v .endTime = time .Now ()
81
+ }
82
+ }
83
+ return nil
62
84
}
63
85
64
86
// shouldLog returns if the command should be logged.
0 commit comments