(reqParam *models.ConnectionReqV2)
| 306 | } |
| 307 | |
| 308 | func connectDatabase(reqParam *models.ConnectionReqV2) error { |
| 309 | var db *gosql.DB |
| 310 | var err error |
| 311 | switch reqParam.DatabaseType { |
| 312 | case DB_TYPE_MYSQL: |
| 313 | uri, err := buildMysqlUri(reqParam.Host, reqParam.User, reqParam.Password, |
| 314 | "", int(reqParam.Port), reqParam.IsPasswordEncrypted) |
| 315 | if err != nil { |
| 316 | return fmt.Errorf("build database Uri failed: %v", err) |
| 317 | } |
| 318 | db, err = sql.CreateDB(uri) |
| 319 | case DB_TYPE_ORACLE: |
| 320 | if reqParam.IsPasswordEncrypted && reqParam.Password != "" { |
| 321 | realPwd, err := handler.DecryptPassword(reqParam.Password, g.RsaPrivateKey) |
| 322 | if nil != err { |
| 323 | return err |
| 324 | } |
| 325 | reqParam.Password = realPwd |
| 326 | } |
| 327 | db, err = config.OpenDb(&config.OracleConfig{ |
| 328 | User: reqParam.User, |
| 329 | Password: reqParam.Password, |
| 330 | Host: reqParam.Host, |
| 331 | Port: reqParam.Port, |
| 332 | ServiceName: reqParam.ServiceName, |
| 333 | }) |
| 334 | default: |
| 335 | return fmt.Errorf("data type %v is unsupport", reqParam.DatabaseType) |
| 336 | } |
| 337 | |
| 338 | if err != nil { |
| 339 | return fmt.Errorf("open db failed: %v", err) |
| 340 | } |
| 341 | defer db.Close() |
| 342 | |
| 343 | err = db.Ping() |
| 344 | if err != nil { |
| 345 | return err |
| 346 | } |
| 347 | |
| 348 | return nil |
| 349 | } |
| 350 |
no test coverage detected