@@ -19,8 +19,8 @@ import (
19
19
// when unit testing
20
20
type WrappedAPI interface {
21
21
KeepAlive () error
22
- Register (regcode string ) error
23
- RegisterOrKeepAlive (regcode string ) error
22
+ Register (regcode , instanceDataFile string ) error
23
+ RegisterOrKeepAlive (regcode , instanceDataFile string ) error
24
24
IsRegistered () bool
25
25
AssignLabels (labels []string ) ([]labels.Label , error )
26
26
@@ -118,25 +118,38 @@ func (w Wrapper) KeepAlive() error {
118
118
return err
119
119
}
120
120
121
- func (w Wrapper ) Register (regcode string ) error {
121
+ func (w Wrapper ) Register (regcode , instanceDataFile string ) error {
122
122
hwinfo , err := FetchSystemInformation ()
123
123
if err != nil {
124
124
return fmt .Errorf ("could not fetch system's information: %v" , err )
125
125
}
126
126
hostname := collectors .FromResult (hwinfo , "hostname" , "" )
127
127
128
- // TODO: do something with the code
129
- _ , err = registration .Register (w .Connection , regcode , hostname , hwinfo , registration .NoExtraData )
128
+ // If an instance-data file was provided, try to read it and attach it as
129
+ // "extra" data. This will be used inside of the `registration.Register`
130
+ // code.
131
+ extraData := registration .NoExtraData
132
+ if instanceDataFile != "" {
133
+ data , err := os .ReadFile (instanceDataFile )
134
+ if err != nil {
135
+ return err
136
+ }
137
+ extraData ["instance_data" ] = string (data )
138
+ }
139
+
140
+ // NOTE: we are not interested in the code. Hence, we don't save it
141
+ // anywhere.
142
+ _ , err = registration .Register (w .Connection , regcode , hostname , hwinfo , extraData )
130
143
return err
131
144
}
132
145
133
146
// RegisterOrKeepAlive calls either `Register` or `KeepAlive` depending on
134
147
// whether the current system is registered or not.
135
- func (w Wrapper ) RegisterOrKeepAlive (regcode string ) error {
148
+ func (w Wrapper ) RegisterOrKeepAlive (regcode , instanceDataFile string ) error {
136
149
if w .Registered {
137
150
return w .KeepAlive ()
138
151
}
139
- return w .Register (regcode )
152
+ return w .Register (regcode , instanceDataFile )
140
153
}
141
154
142
155
func (w Wrapper ) IsRegistered () bool {
0 commit comments