func NewExperimentClient()

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
}