Skip to content

Commit d967002

Browse files
committed
storage-with-rest-basics-working
1 parent c41fccd commit d967002

File tree

40 files changed

+1138
-719
lines changed

40 files changed

+1138
-719
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ ARGS ?=
2222
.PHONY: $(BIN)
2323
$(BIN):
2424
go build $(GO_FLAGS) -o $(BIN) $(CMD)
25+
go build $(GO_FLAGS) -o _output/location ./cmd/location/...
26+
go build $(GO_FLAGS) -o _output/rhoai-normalizer ./cmd/rhoai-normalizer/...
27+
go build $(GO_FLAGS) -o _output/storage-rest ./cmd/storage-rest/...
2528

2629
build: $(BIN)
2730

cmd/location/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package main
22

33
import (
44
goflag "flag"
5-
gin_gonic_http_srv "github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/cmd/server/gin-gonic-http/server"
5+
gin_gonic_http_srv "github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/cmd/server/location/server"
66
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/util"
77
"io/fs"
88
"k8s.io/klog/v2"

cmd/storage-rest/main.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package main
2+
3+
import (
4+
goflag "flag"
5+
"fmt"
6+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/cmd/server/storage"
7+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/config"
8+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/types"
9+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/pkg/util"
10+
"k8s.io/klog/v2"
11+
"os"
12+
)
13+
14+
func main() {
15+
flagset := goflag.NewFlagSet("storage-rest", goflag.ContinueOnError)
16+
klog.InitFlags(flagset)
17+
18+
st := os.Getenv("STORAGE_TYPE")
19+
storageType := types.BridgeStorageType(st)
20+
21+
bs := storage.NewBridgeStorage(storageType)
22+
23+
bridgeURL := os.Getenv("BRIDGE_URL")
24+
cfg := &config.Config{}
25+
restCfg, err := util.GetK8sConfig(cfg)
26+
if err != nil {
27+
fmt.Fprintf(os.Stderr, "%s", err.Error())
28+
os.Exit(1)
29+
}
30+
bridgeToken := util.GetCurrentToken(restCfg)
31+
bkstgURL := os.Getenv("BKSTG_URL")
32+
bkstgToken := os.Getenv("RHDH_TOKEN")
33+
34+
server := storage.NewStorageRESTServer(bs, bridgeURL, bridgeToken, bkstgURL, bkstgToken)
35+
stopCh := util.SetupSignalHandler()
36+
server.Run(stopCh)
37+
38+
}

pkg/cmd/cli/backstage/apis_test.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
11
package backstage
22

33
import (
4-
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub"
4+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/backstage"
5+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/common"
56
"testing"
67
)
78

89
func TestListAPIs(t *testing.T) {
9-
ts := stub.CreateServer(t)
10+
ts := backstage.CreateServer(t)
1011
defer ts.Close()
1112

1213
// Get with no args calls List
1314
str, err := SetupBackstageTestRESTClient(ts).GetAPI()
1415

15-
stub.AssertError(t, err)
16-
stub.AssertLineCompare(t, str, stub.Apis, 0)
16+
common.AssertError(t, err)
17+
common.AssertLineCompare(t, str, common.Apis, 0)
1718
}
1819

1920
func TestGetAPIs(t *testing.T) {
20-
ts := stub.CreateServer(t)
21+
ts := backstage.CreateServer(t)
2122
defer ts.Close()
2223

2324
nsName := "default:ollama-service-api"
2425
str, err := SetupBackstageTestRESTClient(ts).GetAPI(nsName)
2526

26-
stub.AssertError(t, err)
27-
stub.AssertContains(t, str, []string{nsName})
27+
common.AssertError(t, err)
28+
common.AssertContains(t, str, []string{nsName})
2829
}
2930

3031
func TestGetAPIsError(t *testing.T) {
31-
ts := stub.CreateServer(t)
32+
ts := backstage.CreateServer(t)
3233
defer ts.Close()
3334

3435
nsName := "404:404"
@@ -39,7 +40,7 @@ func TestGetAPIsError(t *testing.T) {
3940
}
4041

4142
func TestGetAPIsWithTags(t *testing.T) {
42-
ts := stub.CreateServer(t)
43+
ts := backstage.CreateServer(t)
4344
defer ts.Close()
4445

4546
bs := SetupBackstageTestRESTClient(ts)
@@ -55,17 +56,17 @@ func TestGetAPIsWithTags(t *testing.T) {
5556
},
5657
{
5758
args: []string{"vllm", "api", "openai"},
58-
str: stub.ApisFromTagsNoSubset,
59+
str: common.ApisFromTagsNoSubset,
5960
},
6061
{
6162
args: []string{"vllm"},
6263
subset: true,
63-
str: stub.ApisFromTags,
64+
str: common.ApisFromTags,
6465
},
6566
} {
6667
bs.Subset = tc.subset
6768
str, err := bs.GetAPI(tc.args...)
68-
stub.AssertError(t, err)
69-
stub.AssertLineCompare(t, str, tc.str, 0)
69+
common.AssertError(t, err)
70+
common.AssertLineCompare(t, str, tc.str, 0)
7071
}
7172
}
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
package backstage
22

33
import (
4-
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub"
4+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/backstage"
5+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/common"
56
"testing"
67
)
78

89
func TestListComponents(t *testing.T) {
9-
ts := stub.CreateServer(t)
10+
ts := backstage.CreateServer(t)
1011
defer ts.Close()
1112

1213
// Get with no args calls List
1314
str, err := SetupBackstageTestRESTClient(ts).GetComponent()
14-
stub.AssertError(t, err)
15-
stub.AssertLineCompare(t, str, stub.Components, 0)
15+
common.AssertError(t, err)
16+
common.AssertLineCompare(t, str, common.Components, 0)
1617
}
1718

1819
func TestGetComponents(t *testing.T) {
19-
ts := stub.CreateServer(t)
20+
ts := backstage.CreateServer(t)
2021
defer ts.Close()
2122

2223
nsName := "default:ollama-service-component"
2324
str, err := SetupBackstageTestRESTClient(ts).GetComponent(nsName)
2425

25-
stub.AssertError(t, err)
26-
stub.AssertContains(t, str, []string{nsName})
26+
common.AssertError(t, err)
27+
common.AssertContains(t, str, []string{nsName})
2728
}
2829

2930
func TestGetComponentsError(t *testing.T) {
30-
ts := stub.CreateServer(t)
31+
ts := backstage.CreateServer(t)
3132
defer ts.Close()
3233

3334
nsName := "404:404"
@@ -38,7 +39,7 @@ func TestGetComponentsError(t *testing.T) {
3839
}
3940

4041
func TestGetComponentsWithTags(t *testing.T) {
41-
ts := stub.CreateServer(t)
42+
ts := backstage.CreateServer(t)
4243
defer ts.Close()
4344

4445
bs := SetupBackstageTestRESTClient(ts)
@@ -54,17 +55,17 @@ func TestGetComponentsWithTags(t *testing.T) {
5455
},
5556
{
5657
args: []string{"gateway", "authenticated", "developer-model-service", "llm", "vllm", "ibm-granite", "genai"},
57-
str: stub.ComponentsFromTagsNoSubset,
58+
str: common.ComponentsFromTagsNoSubset,
5859
},
5960
{
6061
args: []string{"genai"},
6162
subset: true,
62-
str: stub.ComponentsFromTags,
63+
str: common.ComponentsFromTags,
6364
},
6465
} {
6566
bs.Subset = tc.subset
6667
str, err := bs.GetComponent(tc.args...)
67-
stub.AssertError(t, err)
68-
stub.AssertLineCompare(t, str, tc.str, 0)
68+
common.AssertError(t, err)
69+
common.AssertLineCompare(t, str, tc.str, 0)
6970
}
7071
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package backstage
22

33
import (
4-
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub"
4+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/backstage"
5+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/common"
56
"testing"
67
)
78

89
func TestListEntities(t *testing.T) {
9-
ts := stub.CreateServer(t)
10+
ts := backstage.CreateServer(t)
1011
defer ts.Close()
1112

1213
str, err := SetupBackstageTestRESTClient(ts).ListEntities()
13-
stub.AssertError(t, err)
14-
stub.AssertEqual(t, stub.TestJSONStringIndented, str)
14+
common.AssertError(t, err)
15+
common.AssertEqual(t, common.TestJSONStringIndented, str)
1516
}

pkg/cmd/cli/backstage/locations_test.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
package backstage
22

33
import (
4-
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub"
4+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/backstage"
5+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/common"
56
"testing"
67
)
78

89
func TestListLocations(t *testing.T) {
9-
ts := stub.CreateServer(t)
10+
ts := backstage.CreateServer(t)
1011
defer ts.Close()
1112

1213
str, err := SetupBackstageTestRESTClient(ts).ListLocations()
13-
stub.AssertError(t, err)
14-
stub.AssertEqual(t, stub.TestJSONStringIndented, str)
14+
common.AssertError(t, err)
15+
common.AssertEqual(t, common.TestJSONStringIndented, str)
1516
}
1617

1718
func TestGetLocations(t *testing.T) {
18-
ts := stub.CreateServer(t)
19+
ts := backstage.CreateServer(t)
1920
defer ts.Close()
2021

2122
key := "key1"
2223
str, err := SetupBackstageTestRESTClient(ts).GetLocation(key)
23-
stub.AssertError(t, err)
24-
stub.AssertContains(t, str, []string{key})
24+
common.AssertError(t, err)
25+
common.AssertContains(t, str, []string{key})
2526
}
2627

2728
func TestGetLocationsError(t *testing.T) {
28-
ts := stub.CreateServer(t)
29+
ts := backstage.CreateServer(t)
2930
defer ts.Close()
3031

3132
nsName := "404:404"
@@ -36,19 +37,19 @@ func TestGetLocationsError(t *testing.T) {
3637
}
3738

3839
func TestImportLocation(t *testing.T) {
39-
ts := stub.CreateServer(t)
40+
ts := backstage.CreateServer(t)
4041
defer ts.Close()
4142

4243
arg := "https://my-repo/my.yaml"
4344
retJSON, err := SetupBackstageTestRESTClient(ts).ImportLocation(arg)
44-
stub.AssertError(t, err)
45+
common.AssertError(t, err)
4546
str, err := SetupBackstageTestRESTClient(ts).PrintImportLocation(retJSON)
46-
stub.AssertError(t, err)
47-
stub.AssertContains(t, str, []string{arg})
47+
common.AssertError(t, err)
48+
common.AssertContains(t, str, []string{arg})
4849
}
4950

5051
func TestImportLocationError(t *testing.T) {
51-
ts := stub.CreateServer(t)
52+
ts := backstage.CreateServer(t)
5253
defer ts.Close()
5354

5455
arg := ":"
@@ -59,17 +60,17 @@ func TestImportLocationError(t *testing.T) {
5960
}
6061

6162
func TestDeleteLocation(t *testing.T) {
62-
ts := stub.CreateServer(t)
63+
ts := backstage.CreateServer(t)
6364
defer ts.Close()
6465

6566
arg := "my-location-id"
6667
str, err := SetupBackstageTestRESTClient(ts).DeleteLocation(arg)
67-
stub.AssertError(t, err)
68-
stub.AssertContains(t, str, []string{arg})
68+
common.AssertError(t, err)
69+
common.AssertContains(t, str, []string{arg})
6970
}
7071

7172
func TestDeleteLocationsError(t *testing.T) {
72-
ts := stub.CreateServer(t)
73+
ts := backstage.CreateServer(t)
7374
defer ts.Close()
7475

7576
nsName := "404:404"
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
package backstage
22

33
import (
4-
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub"
4+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/backstage"
5+
"github.com/redhat-ai-dev/rhdh-ai-catalog-cli/test/stub/common"
56
"testing"
67
)
78

89
func TestListResources(t *testing.T) {
9-
ts := stub.CreateServer(t)
10+
ts := backstage.CreateServer(t)
1011
defer ts.Close()
1112

1213
// Get with no args calls List
1314
str, err := SetupBackstageTestRESTClient(ts).GetResource()
14-
stub.AssertError(t, err)
15-
stub.AssertLineCompare(t, str, stub.Resources, 0)
15+
common.AssertError(t, err)
16+
common.AssertLineCompare(t, str, common.Resources, 0)
1617
}
1718

1819
func TestGetResources(t *testing.T) {
19-
ts := stub.CreateServer(t)
20+
ts := backstage.CreateServer(t)
2021
defer ts.Close()
2122

2223
nsName := "default:phi-mini-instruct"
2324
str, err := SetupBackstageTestRESTClient(ts).GetResource(nsName)
2425

25-
stub.AssertError(t, err)
26-
stub.AssertContains(t, str, []string{nsName})
26+
common.AssertError(t, err)
27+
common.AssertContains(t, str, []string{nsName})
2728
}
2829

2930
func TestGetResourceError(t *testing.T) {
30-
ts := stub.CreateServer(t)
31+
ts := backstage.CreateServer(t)
3132
defer ts.Close()
3233

3334
nsName := "404:404"
@@ -38,7 +39,7 @@ func TestGetResourceError(t *testing.T) {
3839
}
3940

4041
func TestGetResourceWithTags(t *testing.T) {
41-
ts := stub.CreateServer(t)
42+
ts := backstage.CreateServer(t)
4243
defer ts.Close()
4344

4445
bs := SetupBackstageTestRESTClient(ts)
@@ -54,17 +55,17 @@ func TestGetResourceWithTags(t *testing.T) {
5455
},
5556
{
5657
args: []string{"task-text-generation", "multilingual", "meta", "llm", "llama", "genai", "conversational", "1b"},
57-
str: stub.ResourcesFromTagsNoSubset,
58+
str: common.ResourcesFromTagsNoSubset,
5859
},
5960
{
6061
args: []string{"genai", "meta"},
6162
subset: true,
62-
str: stub.ResourcesFromTags,
63+
str: common.ResourcesFromTags,
6364
},
6465
} {
6566
bs.Subset = tc.subset
6667
str, err := bs.GetResource(tc.args...)
67-
stub.AssertError(t, err)
68-
stub.AssertLineCompare(t, str, tc.str, 0)
68+
common.AssertError(t, err)
69+
common.AssertLineCompare(t, str, tc.str, 0)
6970
}
7071
}

0 commit comments

Comments
 (0)