Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions internal/orchestrator/bricks/bricks.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,13 @@ func (s *Service) List() (BrickListResult, error) {
res := BrickListResult{Bricks: make([]BrickListItem, len(s.bricksIndex.Bricks))}
for i, brick := range s.bricksIndex.Bricks {
res.Bricks[i] = BrickListItem{
ID: brick.ID,
Name: brick.Name,
Author: "Arduino", // TODO: for now we only support our bricks
Description: brick.Description,
Category: brick.Category,
Status: "installed",
ID: brick.ID,
Name: brick.Name,
Author: "Arduino", // TODO: for now we only support our bricks
Description: brick.Description,
Category: brick.Category,
Status: "installed",
ModelRequired: brick.ModelRequired,
Models: f.Map(s.modelsIndex.GetModelsByBrick(brick.ID), func(m modelsindex.AIModel) string {
return m.ID
}),
Expand All @@ -88,6 +89,7 @@ func (s *Service) AppBrickInstancesList(a *app.ArduinoApp) (AppBrickInstancesRes
Author: "Arduino", // TODO: for now we only support our bricks
Category: brick.Category,
Status: "installed",
ModelRequired: brick.ModelRequired, // TODO: in case is not set by the user, should we return false?
ModelID: brickInstance.Model, // TODO: in case is not set by the user, should we return the default model?
Variables: variablesMap, // TODO: do we want to show also the default value of not explicitly set variables?
ConfigVariables: configVariables,
Expand Down Expand Up @@ -121,6 +123,7 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
Author: "Arduino", // TODO: for now we only support our bricks
Category: brick.Category,
Status: "installed", // For now every Arduino brick are installed
ModelRequired: brick.ModelRequired,
Variables: variables,
ConfigVariables: configVariables,
ModelID: modelID,
Expand Down Expand Up @@ -195,17 +198,18 @@ func (s *Service) BricksDetails(id string, idProvider *app.IDProvider,
}

return BrickDetailsResult{
ID: id,
Name: brick.Name,
Author: "Arduino", // TODO: for now we only support our bricks
Description: brick.Description,
Category: brick.Category,
Status: "installed", // For now every Arduino brick are installed
Variables: variables,
Readme: readme,
ApiDocsPath: apiDocsPath,
CodeExamples: codeExamples,
UsedByApps: usedByApps,
ID: id,
Name: brick.Name,
Author: "Arduino", // TODO: for now we only support our bricks
Description: brick.Description,
Category: brick.Category,
ModelRequired: brick.ModelRequired,
Status: "installed", // For now every Arduino brick are installed
Variables: variables,
Readme: readme,
ApiDocsPath: apiDocsPath,
CodeExamples: codeExamples,
UsedByApps: usedByApps,
}, nil
}

Expand Down
39 changes: 21 additions & 18 deletions internal/orchestrator/bricks/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@ type BrickListResult struct {
}

type BrickListItem struct {
ID string `json:"id"`
Name string `json:"name"`
Author string `json:"author"`
Description string `json:"description"`
Category string `json:"category"`
Status string `json:"status"`
Models []string `json:"models"`
ID string `json:"id"`
Name string `json:"name"`
Author string `json:"author"`
Description string `json:"description"`
Category string `json:"category"`
Status string `json:"status"`
ModelRequired bool `json:"require_model"`
Models []string `json:"models"`
}

type AppBrickInstancesResult struct {
Expand All @@ -41,6 +42,7 @@ type BrickInstance struct {
Status string `json:"status"`
Variables map[string]string `json:"variables,omitempty" description:"Deprecated: use config_variables instead. This field is kept for backward compatibility."`
ConfigVariables []BrickConfigVariable `json:"config_variables,omitempty"`
ModelRequired bool `json:"require_model,omitempty"`
ModelID string `json:"model,omitempty"`
}

Expand All @@ -67,15 +69,16 @@ type AppReference struct {
}

type BrickDetailsResult struct {
ID string `json:"id"`
Name string `json:"name"`
Author string `json:"author"`
Description string `json:"description"`
Category string `json:"category"`
Status string `json:"status"`
Variables map[string]BrickVariable `json:"variables,omitempty"`
Readme string `json:"readme"`
ApiDocsPath string `json:"api_docs_path"`
CodeExamples []CodeExample `json:"code_examples"`
UsedByApps []AppReference `json:"used_by_apps"`
ID string `json:"id"`
Name string `json:"name"`
Author string `json:"author"`
Description string `json:"description"`
Category string `json:"category"`
Status string `json:"status"`
ModelRequired bool `json:"require_model"`
Variables map[string]BrickVariable `json:"variables,omitempty"`
Readme string `json:"readme"`
ApiDocsPath string `json:"api_docs_path"`
CodeExamples []CodeExample `json:"code_examples"`
UsedByApps []AppReference `json:"used_by_apps"`
}
2 changes: 1 addition & 1 deletion internal/orchestrator/bricksindex/bricks_index.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ type Brick struct {
Category string `yaml:"category,omitempty"`
RequiresDisplay string `yaml:"requires_display,omitempty"`
RequireContainer bool `yaml:"require_container"`
RequireModel bool `yaml:"require_model"`
Variables []BrickVariable `yaml:"variables,omitempty"`
Ports []string `yaml:"ports,omitempty"`
ModelRequired bool `yaml:"require_model,omitempty"`
ModelName string `yaml:"model_name,omitempty"`
MountDevicesIntoContainer bool `yaml:"mount_devices_into_container,omitempty"`
RequiredDevices []string `yaml:"required_devices,omitempty"`
Expand Down
2 changes: 1 addition & 1 deletion internal/orchestrator/bricksindex/bricks_index_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func TestBricksIndex(t *testing.T) {
require.True(t, found)
require.Equal(t, "Image Classification", b.Name)
require.Equal(t, "mobilenet-image-classification", b.ModelName)
require.True(t, b.RequireModel)
require.True(t, b.ModelRequired)
require.Len(t, b.Variables, 2)
require.Equal(t, "CUSTOM_MODEL_PATH", b.Variables[0].Name)
require.Equal(t, "/opt/models/ei/", b.Variables[0].DefaultValue)
Expand Down
8 changes: 5 additions & 3 deletions internal/orchestrator/orchestrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -667,9 +667,10 @@ type AppDetailedInfo struct {
}

type AppDetailedBrick struct {
ID string `json:"id" required:"true"`
Name string `json:"name" required:"true"`
Category string `json:"category,omitempty"`
ID string `json:"id" required:"true"`
Name string `json:"name" required:"true"`
Category string `json:"category,omitempty"`
ModelRequired bool `json:"require_model,omitempty"`
}

func AppDetails(
Expand Down Expand Up @@ -732,6 +733,7 @@ func AppDetails(
}
res.Name = bi.Name
res.Category = bi.Category
res.ModelRequired = bi.ModelRequired
return res
}),
}, nil
Expand Down