comparison pkg/imports/bn.go @ 2195:3437ceee1529

Uploaded bottleneck import: Implemented in terms of normal bottleneck import.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 12 Feb 2019 11:54:12 +0100
parents 7c83b5277c1c
children cce158db02b0
comparison
equal deleted inserted replaced
2194:4d6979dedb11 2195:3437ceee1529
141 ctx context.Context, 141 ctx context.Context,
142 importID int64, 142 importID int64,
143 conn *sql.Conn, 143 conn *sql.Conn,
144 feedback Feedback, 144 feedback Feedback,
145 ) (interface{}, error) { 145 ) (interface{}, error) {
146 client := ifbn.NewIBottleneckService(bn.URL, bn.Insecure, nil) 146
147 147 fetch := func(feedback Feedback) ([]*ifbn.BottleNeckType, error) {
148 req := &ifbn.Export_bn_by_isrs{} 148 client := ifbn.NewIBottleneckService(bn.URL, bn.Insecure, nil)
149 149
150 resp, err := client.Export_bn_by_isrs(req) 150 req := &ifbn.Export_bn_by_isrs{}
151
152 resp, err := client.Export_bn_by_isrs(req)
153 if err != nil {
154 return nil, err
155 }
156
157 if resp.Export_bn_by_isrsResult == nil {
158 return nil, errors.New("no Bottlenecks found")
159 }
160
161 return resp.Export_bn_by_isrsResult.BottleNeckType, nil
162 }
163
164 return storeBottlenecks(ctx, fetch, importID, conn, feedback)
165 }
166
167 func storeBottlenecks(
168 ctx context.Context,
169 fetch func(Feedback) ([]*ifbn.BottleNeckType, error),
170 importID int64,
171 conn *sql.Conn,
172 feedback Feedback,
173 ) (interface{}, error) {
174 start := time.Now()
175
176 bns, err := fetch(feedback)
151 if err != nil { 177 if err != nil {
152 feedback.Error("%v", err)
153 return nil, err 178 return nil, err
154 } 179 }
155 180
156 if resp.Export_bn_by_isrsResult == nil {
157 err := errors.New("no Bottlenecks found")
158 feedback.Error("%v", err)
159 return nil, err
160 }
161
162 bns := resp.Export_bn_by_isrsResult.BottleNeckType
163 feedback.Info("Found %d bottlenecks for import", len(bns)) 181 feedback.Info("Found %d bottlenecks for import", len(bns))
164 182
165 tx, err := conn.BeginTx(ctx, nil) 183 tx, err := conn.BeginTx(ctx, nil)
166 if err != nil { 184 if err != nil {
167 return nil, err 185 return nil, err
184 } 202 }
185 defer (*x.stmt).Close() 203 defer (*x.stmt).Close()
186 } 204 }
187 205
188 var nids []string 206 var nids []string
189
190 start := time.Now()
191 207
192 nextBN: 208 nextBN:
193 for _, bn := range bns { 209 for _, bn := range bns {
194 210
195 var found bool 211 var found bool