MCPcopy Create free account
hub / github.com/cloudwan/gohan / NewGohanClientCLI

Function NewGohanClientCLI

cli/client/client.go:192–236  ·  view source on GitHub ↗

NewGohanClientCLI GohanClientCLI constructor

(opts *GohanClientCLIOpts)

Source from the content-addressed store, hash-verified

190
191// NewGohanClientCLI GohanClientCLI constructor
192func NewGohanClientCLI(opts *GohanClientCLIOpts) (*GohanClientCLI, error) {
193 gohanClientCLI := GohanClientCLI{
194 opts: opts,
195 }
196 setUpLogging(gohanClientCLI.opts.logLevel)
197
198 provider, err := getProviderClient()
199 if err != nil {
200 return nil, err
201 }
202 gohanClientCLI.provider = provider
203
204 if opts.authTokenID != "" {
205 gohanClientCLI.provider.TokenID = opts.authTokenID
206 }
207
208 if opts.gohanEndpointURL == "" {
209 gohanEndpointURL, err := gohanClientCLI.getGohanEndpointURL(provider)
210 if err != nil {
211 return nil, err
212 }
213 gohanClientCLI.opts.gohanEndpointURL = gohanEndpointURL
214 }
215
216 var schemas []*schema.Schema
217 if gohanClientCLI.opts.cacheSchemas {
218 schemas, err = gohanClientCLI.getCachedSchemas()
219 } else {
220 schemas, err = gohanClientCLI.getSchemas()
221 }
222 if err != nil {
223 return nil, err
224 }
225 gohanClientCLI.schemas = schemas
226 if gohanClientCLI.opts.cacheSchemas {
227 err := gohanClientCLI.setCachedSchemas()
228 if err != nil {
229 return nil, fmt.Errorf("Error caching schemas: %v", err)
230 }
231 }
232
233 gohanClientCLI.commands = gohanClientCLI.getCommands()
234
235 return &gohanClientCLI, nil
236}
237
238func getProviderClient() (*gophercloud.ProviderClient, error) {
239 opts, err := openstack.AuthOptionsFromEnv()

Callers 1

client_test.goFile · 0.85

Calls 8

getGohanEndpointURLMethod · 0.95
getCachedSchemasMethod · 0.95
getSchemasMethod · 0.95
setCachedSchemasMethod · 0.95
getCommandsMethod · 0.95
setUpLoggingFunction · 0.85
getProviderClientFunction · 0.85
ErrorfMethod · 0.65

Tested by

no test coverage detected