Skip to content

Commit e1b903f

Browse files
authored
Add version endpoint (#119)
1 parent ef28d9f commit e1b903f

File tree

7 files changed

+390
-0
lines changed

7 files changed

+390
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ This Microservice provides the source of truth for master data.
1515
* limit max clusters
1616
* tenant members
1717
* tenant project members
18+
* version
1819

1920
## Design
2021

api/v1/version.pb.go

Lines changed: 205 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1/version_grpc.pb.go

Lines changed: 119 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/service/version.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package service
2+
3+
import (
4+
"context"
5+
6+
v1 "github.com/metal-stack/masterdata-api/api/v1"
7+
"github.com/metal-stack/v"
8+
)
9+
10+
type versionService struct {
11+
}
12+
13+
func NewVersionService() *versionService {
14+
return &versionService{}
15+
}
16+
func (vs *versionService) Get(ctx context.Context, request *v1.GetVersionRequest) (*v1.GetVersionResponse, error) {
17+
res := v1.GetVersionResponse{Version: v.Version, Revision: v.Revision, BuildDate: v.BuildDate, GitSha1: v.GitSHA1}
18+
return &res, nil
19+
}

pkg/service/version_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package service
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
v1 "github.com/metal-stack/masterdata-api/api/v1"
8+
"github.com/metal-stack/v"
9+
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/require"
11+
)
12+
13+
func TestGetVersion(t *testing.T) {
14+
15+
vs := &versionService{}
16+
ctx := context.Background()
17+
18+
expected := v1.GetVersionResponse{Version: v.Version, Revision: v.Revision, BuildDate: v.BuildDate, GitSha1: v.GitSHA1}
19+
20+
result, err := vs.Get(ctx, &v1.GetVersionRequest{})
21+
22+
require.NoError(t, err)
23+
assert.NotNil(t, result)
24+
assert.Equal(t, expected.Version, result.Version)
25+
assert.Equal(t, expected.Revision, result.Revision)
26+
assert.Equal(t, expected.BuildDate, result.BuildDate)
27+
assert.Equal(t, expected.GitSha1, result.GitSha1)
28+
}

proto/v1/version.proto

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
syntax = "proto3";
2+
3+
package v1;
4+
5+
service VersionService {
6+
rpc Get(GetVersionRequest) returns (GetVersionResponse);
7+
}
8+
9+
message GetVersionRequest {}
10+
11+
message GetVersionResponse {
12+
string version = 1;
13+
string revision = 2;
14+
string git_sha1 = 3;
15+
string build_date = 4;
16+
}

0 commit comments

Comments
 (0)