Skip to content

Commit

Permalink
Merge pull request #24 from fuweid/weifu/fix-no-permission-issue
Browse files Browse the repository at this point in the history
cmd/runner: fix --result permission issue
  • Loading branch information
fuweid authored and Sara Wei committed Jan 11, 2024
2 parents 4487bbd + d5c9e99 commit 5ba3f57
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 4 deletions.
24 changes: 22 additions & 2 deletions cmd/kperf/commands/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@ package runner

import (
"context"
"flag"
"fmt"
"os"
"path/filepath"
"sort"
"strconv"

"github.com/Azure/kperf/api/types"
"github.com/Azure/kperf/request"

"github.com/urfave/cli"
"gopkg.in/yaml.v2"
"k8s.io/klog/v2"
)

// Command represents runner subcommand.
Expand Down Expand Up @@ -68,8 +71,19 @@ var runCommand = cli.Command{
Name: "result",
Usage: "Path to the file which stores results",
},
cli.IntFlag{
Name: "v",
Usage: "set log level verbosity",
Value: 0,
},
},
Action: func(cliCtx *cli.Context) error {
// initialize klog
klog.InitFlags(nil)
flag.Set("v", strconv.Itoa(cliCtx.Int("v")))
defer klog.Flush()
flag.Parse()

profileCfg, err := loadConfig(cliCtx)
if err != nil {
return err
Expand All @@ -95,10 +109,16 @@ var runCommand = cli.Command{

var f *os.File = os.Stdout
if outputFilePath != "" {
err := os.MkdirAll(filepath.Dir(outputFilePath), 0600)
outputFileDir := filepath.Dir(outputFilePath)

_, err = os.Stat(outputFileDir)
if err != nil && os.IsNotExist(err) {
err = os.MkdirAll(outputFileDir, 0750)
}
if err != nil {
return err
return fmt.Errorf("failed to ensure output's dir %s: %w", outputFileDir, err)
}

f, err = os.Create(outputFilePath)
if err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ require (
k8s.io/apimachinery v0.28.4
k8s.io/cli-runtime v0.28.4
k8s.io/client-go v0.28.4
k8s.io/klog/v2 v2.100.1
k8s.io/kubectl v0.28.4
)

Expand Down Expand Up @@ -135,7 +136,6 @@ require (
k8s.io/apiextensions-apiserver v0.28.4 // indirect
k8s.io/apiserver v0.28.4 // indirect
k8s.io/component-base v0.28.4 // indirect
k8s.io/klog/v2 v2.100.1 // indirect
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
oras.land/oras-go v1.2.4 // indirect
Expand Down
1 change: 1 addition & 0 deletions manifests/virtualcluster/nodes/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
apiVersion: v2,
"name": "virtualnodes",
"version": "0.0.1"
}
2 changes: 1 addition & 1 deletion manifests/virtualcluster/nodes/values.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ""
name: "vc-testing"
controllerNodeSelectors: {}
replicas: 0
nodeLabels: {}
Expand Down
5 changes: 5 additions & 0 deletions request/schedule.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (

"golang.org/x/time/rate"
"k8s.io/client-go/rest"
"k8s.io/klog/v2"
)

const defaultTimeout = 60 * time.Second
Expand Down Expand Up @@ -46,7 +47,10 @@ func Schedule(ctx context.Context, spec *types.LoadProfileSpec, restCli []rest.I
for builder := range reqBuilderCh {
_, req := builder.Build(cli)

klog.V(9).Infof("Request URL: %s", req.URL())

if err := limiter.Wait(ctx); err != nil {
klog.V(9).Infof("Rate limiter wait failed: %v", err)
cancel()
return
}
Expand All @@ -68,6 +72,7 @@ func Schedule(ctx context.Context, spec *types.LoadProfileSpec, restCli []rest.I

if err != nil {
respMetric.ObserveFailure(err)
klog.V(9).Infof("Request stream failed: %v", err)
}
}()
}
Expand Down

0 comments on commit 5ba3f57

Please sign in to comment.