in experiments/client.go [63:93]
func NewExperimentClient(instanceId, regionId, accessKeyId, accessKeySecret, environment string, opts ...ClientOption) (*ExperimentClient, error) {
client := ExperimentClient{
Environment: environment,
SceneMap: make(map[string]*model.Scene, 0),
}
var err error
client.APIClient, err = api.NewAPIClient(instanceId, regionId, accessKeyId, accessKeySecret)
if err != nil {
return nil, err
}
for _, opt := range opts {
opt(&client)
}
if err := client.Validate(); err != nil {
return nil, err
}
client.LoadExperimentData()
client.LoadSceneParamsData()
go client.loopLoadExperimentData()
go client.loopLoadSceneParamsData()
client.LoadSceneTrafficControlTasksData()
go client.loopLoadSceneFlowCtrlPlansData()
return &client, nil
}