Skip to content

Commit 3ff7295

Browse files
committed
update the client config command to use dmzURL if present
1 parent 697a7e9 commit 3ff7295

File tree

2 files changed

+100
-1
lines changed

2 files changed

+100
-1
lines changed

pkg/cmd/clientConfig.go

+17-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ import (
1818
"fmt"
1919
"io"
2020

21+
"net/url"
22+
23+
"path"
24+
2125
mobile "github.com/aerogear/mobile-cli/pkg/client/mobile/clientset/versioned"
2226
sc "github.com/aerogear/mobile-cli/pkg/client/servicecatalog/clientset/versioned"
2327
"github.com/aerogear/mobile-cli/pkg/cmd/output"
@@ -73,18 +77,30 @@ kubectl plugin mobile get clientconfig`,
7377
return err
7478
}
7579

80+
mc, err := ccc.mobileClient.MobileV1alpha1().MobileClients(ns).Get(clientID, v1.GetOptions{})
81+
if err != nil {
82+
return errors.Wrap(err, "failed to get mobile client with id "+clientID)
83+
}
84+
7685
filter := v1.ListOptions{LabelSelector: fmt.Sprintf("clientId=%s", clientID)}
7786
secrets, err := ccc.k8Client.CoreV1().Secrets(ns).List(filter)
7887
if err != nil {
7988
return errors.Wrap(err, fmt.Sprintf("Error retrieving secrets with clientId %s", clientID))
8089
}
81-
8290
for _, secret := range secrets.Items {
8391
convertor := defaultSecretConvertor{}
8492
svcConfig, err := convertor.Convert(secret)
8593
if err != nil {
8694
return err
8795
}
96+
if nil != mc && mc.Spec.DmzUrl != "" {
97+
u, err := url.Parse(mc.Spec.DmzUrl)
98+
if err != nil {
99+
return errors.Wrap(err, "failed to parse dmz url")
100+
}
101+
u.Path = path.Join(u.Path, svcConfig.Name)
102+
svcConfig.URL = u.String()
103+
}
88104
ret = append(ret, svcConfig)
89105
}
90106

pkg/cmd/clientConfig_test.go

+83
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
"regexp"
2424

25+
"github.com/aerogear/mobile-cli/pkg/apis/mobile/v1alpha1"
2526
mobile "github.com/aerogear/mobile-cli/pkg/client/mobile/clientset/versioned"
2627
mcFake "github.com/aerogear/mobile-cli/pkg/client/mobile/clientset/versioned/fake"
2728
"github.com/aerogear/mobile-cli/pkg/client/servicecatalog/clientset/versioned"
@@ -192,6 +193,88 @@ func TestClientConfigCmd_GetClientConfigCmd(t *testing.T) {
192193
"config": {}
193194
}
194195
]
196+
}`
197+
if strings.TrimSpace(out.String()) != expected {
198+
return errors.New(fmt.Sprintf("expected: '%v', got: '%v'", expected, strings.TrimSpace(out.String())))
199+
}
200+
return nil
201+
},
202+
}, {
203+
name: "get client config command with services and dmz url",
204+
k8Client: func() kubernetes.Interface {
205+
fakeclient := &kFake.Clientset{}
206+
fakeclient.AddReactor("list", "secrets", func(action ktesting.Action) (handled bool, ret runtime.Object, err error) {
207+
secrets := []v1.Secret{
208+
{
209+
ObjectMeta: metav1.ObjectMeta{
210+
Name: "test-service",
211+
Labels: map[string]string{
212+
"mobile": "enabled",
213+
"clientId": "client-id",
214+
},
215+
},
216+
Data: map[string][]byte{
217+
"name": []byte("test-service"),
218+
},
219+
},
220+
{
221+
ObjectMeta: metav1.ObjectMeta{
222+
Name: "keycloak",
223+
Labels: map[string]string{
224+
"mobile": "enabled",
225+
"clientId": "client-id",
226+
},
227+
},
228+
Data: map[string][]byte{
229+
"name": []byte("keycloak"),
230+
},
231+
},
232+
}
233+
secretList := &v1.SecretList{
234+
Items: secrets,
235+
}
236+
return true, secretList, nil
237+
})
238+
return fakeclient
239+
},
240+
mobileClient: func() mobile.Interface {
241+
mc := &mcFake.Clientset{}
242+
mc.AddReactor("get", "mobileclients", func(action ktesting.Action) (handled bool, ret runtime.Object, err error) {
243+
return true, &v1alpha1.MobileClient{Spec: v1alpha1.MobileClientSpec{DmzUrl: "https://test.com"}}, nil
244+
})
245+
return mc
246+
},
247+
SvcCatalogClient: func() versioned.Interface {
248+
fake := &scFake.Clientset{}
249+
return fake
250+
},
251+
namespace: "testing-ns",
252+
ClusterHost: "test",
253+
args: []string{"client-id"},
254+
cobraCmd: getFakeCbrCmd(),
255+
ExpectError: false,
256+
ValidateOut: func(out bytes.Buffer) error {
257+
expected := `{
258+
"version": 1,
259+
"clusterName": "test",
260+
"namespace": "testing-ns",
261+
"clientId": "client-id",
262+
"services": [
263+
{
264+
"id": "test-service",
265+
"name": "test-service",
266+
"type": "",
267+
"url": "https://test.com/test-service",
268+
"config": {}
269+
},
270+
{
271+
"id": "keycloak",
272+
"name": "keycloak",
273+
"type": "",
274+
"url": "https://test.com/keycloak",
275+
"config": {}
276+
}
277+
]
195278
}`
196279
if strings.TrimSpace(out.String()) != expected {
197280
return errors.New(fmt.Sprintf("expected: '%v', got: '%v'", expected, strings.TrimSpace(out.String())))

0 commit comments

Comments
 (0)