123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- package dao
- import (
- "context"
- "fmt"
- "net/http"
- "go-common/app/admin/ep/merlin/model"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- const (
- _deviceCode = 0
- _devicesListURL = "/apis/devices/list"
- _deviceURL = "/apis/devices/get"
- _deviceBootURL = "/apis/devices/boot"
- _deviceShutDownURL = "/apis/devices/shutdown"
- )
- // MobileDeviceList Get Device Farm List .
- func (d *Dao) MobileDeviceList(c context.Context) (resTotal map[string][]*model.Device, err error) {
- var (
- req *http.Request
- hostList = d.c.DeviceFarm.HostList
- )
- resTotal = make(map[string][]*model.Device)
- for _, host := range hostList {
- var res *model.DeviceListResponse
- url := fmt.Sprintf("http://%s", host+_devicesListURL)
- if req, err = d.newRequest(http.MethodGet, url, nil); err != nil {
- log.Error("d.MobileDeviceList newRequest url(%s) err(%+v)", _devicesListURL, err)
- continue
- }
- if err = d.httpClient.Do(c, req, &res); err != nil {
- log.Error("d.MobileDeviceList httpClient url(%s) err(%+v)", _devicesListURL, err)
- continue
- }
- if res.Status.Code != _deviceCode {
- err = ecode.MerlinDeviceFarmErr
- log.Error("Status url(%s) res(%s),err(%+v)", _devicesListURL, res, err)
- continue
- }
- resTotal[host] = res.Data.Devices
- }
- return
- }
- // MobileDeviceDetail Get Mobile Device Detail.
- func (d *Dao) MobileDeviceDetail(c context.Context, host, serial string) (device *model.Device, err error) {
- var (
- req *http.Request
- res *model.DeviceListDetailResponse
- )
- url := fmt.Sprintf("http://%s?serial=%s", host+_deviceURL, serial)
- if req, err = d.newRequest(http.MethodGet, url, nil); err != nil {
- log.Error("d.MobileDeviceDetail newRequest url(%s) err(%+v)", _deviceURL, err)
- return
- }
- if err = d.httpClient.Do(c, req, &res); err != nil {
- log.Error("d.MobileDeviceDetail url(%s) err(%+v)", _deviceURL, err)
- return
- }
- if res.Status.Code != _deviceCode {
- err = ecode.MerlinDeviceFarmErr
- log.Error("Status url(%s) res(%s) err(%+v)", _deviceURL, res, err)
- return
- }
- device = res.Data.Devices
- return
- }
- // BootMobileDevice Boot Mobile Device.
- func (d *Dao) BootMobileDevice(c context.Context, host, serial string) (deviceBootData *model.DeviceBootData, err error) {
- var (
- req *http.Request
- res *model.DeviceBootResponse
- )
- reqModel := &model.DeviceBootRequest{
- Serial: serial,
- }
- url := fmt.Sprintf("http://%s", host+_deviceBootURL)
- if req, err = d.newRequest(http.MethodPost, url, reqModel); err != nil {
- log.Error("d.BootMobileDevice newRequest url(%s) err(%+v)", _deviceBootURL, err)
- return
- }
- req.Header.Set("content-type", "application/json")
- if err = d.httpClient.Do(c, req, &res); err != nil {
- log.Error("d.BootMobileDevice url(%s) err(%+v)", _deviceBootURL, err)
- return
- }
- if res.Status.Code != _deviceCode {
- err = ecode.MerlinDeviceFarmErr
- log.Error("Status url(%s) res(%s) err(%+v)", _deviceBootURL, res, err)
- return
- }
- deviceBootData = res.Data
- return
- }
- // ShutdownMobileDevice Shutdown Mobile Device.
- func (d *Dao) ShutdownMobileDevice(c context.Context, host, serial string) (err error) {
- var (
- req *http.Request
- res *model.DeviceShutDownResponse
- )
- reqModel := &model.DeviceBootRequest{
- Serial: serial,
- }
- url := fmt.Sprintf("http://%s", host+_deviceShutDownURL)
- if req, err = d.newRequest(http.MethodPost, url, reqModel); err != nil {
- log.Error("d.ShutdownMobileDevice newRequest url(%s) err(%+v)", _deviceShutDownURL, err)
- return
- }
- req.Header.Set("content-type", "application/json")
- if err = d.httpClient.Do(c, req, &res); err != nil {
- log.Error("d.ShutdownMobileDevice url(%s) err(%+v)", _deviceShutDownURL, err)
- return
- }
- if res.Status.Code != _deviceCode {
- err = ecode.MerlinDeviceFarmErr
- log.Error("Status url(%s) res(%s) err(%+v)", _deviceShutDownURL, res, err)
- return
- }
- return
- }
|