Mercurial > gemma
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 |