Skip to content

Commit

Permalink
Migrate model subcommand to analyze
Browse files Browse the repository at this point in the history
Signed-off-by: Yi Chen <github@chenyicn.net>
  • Loading branch information
ChenYi015 committed Mar 26, 2024
1 parent 5ac396c commit a135fa6
Show file tree
Hide file tree
Showing 26 changed files with 187 additions and 179 deletions.
5 changes: 3 additions & 2 deletions pkg/model/delete.go → pkg/analyze/delete.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package model
package analyze

import (
"strings"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/workflow"
log "github.com/sirupsen/logrus"
"strings"
)

func DeleteModelJob(namespace, name string, jobType types.ModelJobType) error {
Expand Down
9 changes: 5 additions & 4 deletions pkg/model/get.go → pkg/analyze/get.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package model
package analyze

import (
"encoding/json"
"fmt"
"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
"gopkg.in/yaml.v2"
"os"
"strings"
"text/tabwriter"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
"gopkg.in/yaml.v2"
)

var getJobTemplate = `
Expand Down
13 changes: 7 additions & 6 deletions pkg/model/list.go → pkg/analyze/list.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package model
package analyze

import (
"encoding/json"
"fmt"
"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
"github.com/kubeflow/arena/pkg/util"
log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
"io"
"os"
"strconv"
"strings"
"text/tabwriter"
"time"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
"github.com/kubeflow/arena/pkg/util"
log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
)

func ListModelJobs(namespace string, allNamespaces bool, modelJobType types.ModelJobType) ([]ModelJob, error) {
Expand Down
9 changes: 5 additions & 4 deletions pkg/model/model.go → pkg/analyze/model.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package model
package analyze

import (
"fmt"
"math"
"strings"
"time"

"github.com/kubeflow/arena/pkg/apis/config"
"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
Expand All @@ -12,9 +16,6 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"math"
"strings"
"time"
)

type modelProcessor struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package model
package analyze

import (
"time"

"github.com/kubeflow/arena/pkg/apis/types"
batchv1 "k8s.io/api/batch/v1"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"time"
)

type ModelJob interface {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package model
package analyze

import (
"fmt"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/util"
"github.com/kubeflow/arena/pkg/workflow"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package model
package analyze

import (
"fmt"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/util"
"github.com/kubeflow/arena/pkg/workflow"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package model
package analyze

import (
"fmt"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/util"
"github.com/kubeflow/arena/pkg/workflow"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package model
package analyze

import (
"fmt"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/util"
"github.com/kubeflow/arena/pkg/workflow"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package model
package analyze

import (
"fmt"
"strings"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/argsbuilder"
"strings"
)

type ModelBenchmarkArgsBuilder struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package model
package analyze

import (
"fmt"
"strings"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/argsbuilder"
"strings"
)

type ModelEvaluateJobBuilder struct {
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/model/job.go → pkg/apis/analyze/job.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package model
package analyze

import "github.com/kubeflow/arena/pkg/apis/types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package model
package analyze

import (
"fmt"
"strings"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/argsbuilder"
"strings"
)

type ModelOptimizeJobBuilder struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package model
package analyze

import (
"fmt"
"strings"

"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/argsbuilder"
"strings"
)

type ModelProfileJobBuilder struct {
Expand Down
102 changes: 102 additions & 0 deletions pkg/apis/arenaclient/analyze_client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package arenaclient

import (
"github.com/kubeflow/arena/pkg/analyze"
apismodel "github.com/kubeflow/arena/pkg/apis/analyze"
"github.com/kubeflow/arena/pkg/apis/config"
"github.com/kubeflow/arena/pkg/apis/types"
"github.com/kubeflow/arena/pkg/apis/utils"
)

type AnalyzeClient struct {
namespace string
configer *config.ArenaConfiger
}

func NewAnalyzeClient(namespace string, configer *config.ArenaConfiger) *AnalyzeClient {
return &AnalyzeClient{
namespace: namespace,
configer: configer,
}
}

// Namespace sets the namespace,this operation does not change the default namespace
func (m *AnalyzeClient) Namespace(namespace string) *AnalyzeClient {
copyModelJobClient := &AnalyzeClient{
namespace: namespace,
configer: m.configer,
}
return copyModelJobClient
}

func (m *AnalyzeClient) Submit(job *apismodel.Job) error {
switch job.Type() {
case types.ModelProfileJob:
args := job.Args().(*types.ModelProfileArgs)
return analyze.SubmitModelProfileJob(args.Namespace, args)
case types.ModelOptimizeJob:
args := job.Args().(*types.ModelOptimizeArgs)
return analyze.SubmitModelOptimizeJob(args.Namespace, args)
case types.ModelBenchmarkJob:
args := job.Args().(*types.ModelBenchmarkArgs)
return analyze.SubmitModelBenchmarkJob(args.Namespace, args)
case types.ModelEvaluateJob:
args := job.Args().(*types.ModelEvaluateArgs)
return analyze.SubmitModelEvaluateJob(args.Namespace, args)
}
return nil
}

func (m *AnalyzeClient) Get(jobType types.ModelJobType, name string) (*types.ModelJobInfo, error) {
job, err := analyze.SearchModelJob(m.namespace, name, jobType)
if err != nil {
return nil, err
}

jobInfo := job.Convert2JobInfo()
return &jobInfo, nil
}

func (m *AnalyzeClient) GetAndPrint(jobType types.ModelJobType, name string, format string) error {
job, err := analyze.SearchModelJob(m.namespace, name, jobType)
if err != nil {
return err
}

analyze.PrintModelJob(job, utils.TransferPrintFormat(format))
return nil
}

func (m *AnalyzeClient) List(allNamespaces bool, jobType types.ModelJobType) ([]*types.ModelJobInfo, error) {
jobs, err := analyze.ListModelJobs(m.namespace, allNamespaces, jobType)
if err != nil {
return nil, err
}

var jobInfos []*types.ModelJobInfo
for _, job := range jobs {
jobInfo := job.Convert2JobInfo()
jobInfos = append(jobInfos, &jobInfo)
}
return jobInfos, nil
}

func (m *AnalyzeClient) ListAndPrint(allNamespaces bool, jobType types.ModelJobType, format string) error {
jobs, err := analyze.ListModelJobs(m.namespace, allNamespaces, jobType)
if err != nil {
return err
}

analyze.PrintAllModelJobs(jobs, allNamespaces, utils.TransferPrintFormat(format))
return nil
}

func (m *AnalyzeClient) Delete(jobType types.ModelJobType, jobNames ...string) error {
for _, jobName := range jobNames {
err := analyze.DeleteModelJob(m.namespace, jobName, jobType)
if err != nil {
return err
}
}
return nil
}
4 changes: 2 additions & 2 deletions pkg/apis/arenaclient/arenaclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ func (a *ArenaClient) Evaluate() *EvaluateClient {
return NewEvaluateClient(a.namespace, a.arenaConfiger)
}

func (a *ArenaClient) Model() *ModelClient {
return NewModelClient(a.namespace, a.arenaConfiger)
func (a *ArenaClient) Analyze() *AnalyzeClient {
return NewAnalyzeClient(a.namespace, a.arenaConfiger)
}
Loading

0 comments on commit a135fa6

Please sign in to comment.