1
1
package binding
2
2
3
3
import (
4
- "fmt"
5
-
6
4
"github.com/konveyor/controller/pkg/logging"
7
5
"github.com/konveyor/tackle2-hub/api"
8
6
"github.com/konveyor/tackle2-hub/settings"
@@ -13,24 +11,15 @@ var (
13
11
Log = logging .WithName ("binding" )
14
12
)
15
13
16
- var (
17
- // Addon An addon richClient configured for a task execution.
18
- RichClient * Adapter
19
- // Client
20
- //client *Client
21
- )
22
-
23
14
func init () {
24
- err := Settings .Load ()
25
- if err != nil {
26
- panic (err )
27
- }
28
-
29
- RichClient = newRichClient ()
15
+ err := Settings .Load ()
16
+ if err != nil {
17
+ panic (err )
18
+ }
30
19
}
31
20
32
21
// The RichClient provides API integration.
33
- type Adapter struct {
22
+ type RichClient struct {
34
23
// // Task API.
35
24
// Task
36
25
// // Settings API
@@ -54,32 +43,19 @@ type Adapter struct {
54
43
}
55
44
56
45
// Client provides the REST client.
57
- func (h * Adapter ) Client () * Client {
46
+ func (h * RichClient ) Client () * Client {
58
47
return h .client
59
48
}
60
49
61
- // newRichClient builds a new Addon RichClient object.
62
- func newRichClient ( ) (richClient * Adapter ) {
50
+ // newRichClient builds a new RichClient object.
51
+ func New ( baseUrl string ) (r * RichClient ) {
63
52
//
64
53
// Build REST client.
65
- baseUrl := settings .Settings .Addon .Hub .URL
66
- login := api.Login {User : settings .Settings .Auth .Keycloak .Admin .User , Password : settings .Settings .Auth .Keycloak .Admin .Pass }
67
54
client := NewClient (baseUrl , "" )
68
55
69
- // Disable HTTP requests retry for network-related errors to fail quickly.
70
- // TODO: parametrize (only for tests)
71
- client .Retry = 0
72
-
73
- // Login.
74
- err := client .Post (api .AuthLoginRoot , & login )
75
- if err != nil {
76
- panic (fmt .Sprintf ("Cannot login to API: %v." , err .Error ()))
77
- }
78
- client .SetToken (login .Token )
79
-
80
56
//
81
57
// Build RichClient.
82
- richClient = & Adapter {
58
+ r = & RichClient {
83
59
// Task: Task{
84
60
// client: client,
85
61
// },
@@ -115,3 +91,16 @@ func newRichClient() (richClient *Adapter) {
115
91
return
116
92
}
117
93
94
+ func (r * RichClient ) Login (user , password string ) (err error ) {
95
+ //
96
+ // Build REST client.
97
+ login := api.Login {User : user , Password : password }
98
+
99
+ // Login.
100
+ err = r .client .Post (api .AuthLoginRoot , & login )
101
+ if err != nil {
102
+ return
103
+ }
104
+ r .client .SetToken (login .Token )
105
+ return
106
+ }
0 commit comments