func (n *GitLabClient) RegisterRunner(runner common.RunnerCredentials, description, tags string) *common.RegisterRunnerResponse { // TODO: pass executor request := common.RegisterRunnerRequest{ Info: n.getRunnerVersion(common.RunnerConfig{}), Token: runner.Token, Description: description, Tags: tags, } var response common.RegisterRunnerResponse result, statusText, _ := n.doJSON(runner, "POST", "runners/register.json", 201, &request, &response) switch result { case 201: runner.Log().Println("Registering runner...", "succeeded") return &response case 403: runner.Log().Errorln("Registering runner...", "forbidden (check registration token)") return nil case clientError: runner.Log().WithField("status", statusText).Errorln("Registering runner...", "error") return nil default: runner.Log().WithField("status", statusText).Errorln("Registering runner...", "failed") return nil } }
func (n *GitLabClient) DeleteRunner(runner common.RunnerCredentials) bool { request := common.DeleteRunnerRequest{ Token: runner.Token, } result, statusText, _ := n.doJSON(runner, "DELETE", "runners/delete", 200, &request, nil) switch result { case 200: runner.Log().Println("Deleting runner...", "succeeded") return true case 403: runner.Log().Errorln("Deleting runner...", "forbidden") return false case clientError: runner.Log().WithField("status", statusText).Errorln("Deleting runner...", "error") return false default: runner.Log().WithField("status", statusText).Errorln("Deleting runner...", "failed") return false } }
func (n *GitLabClient) VerifyRunner(runner common.RunnerCredentials) bool { request := common.VerifyRunnerRequest{ Token: runner.Token, } // HACK: we use non-existing build id to check if receive forbidden or not found result, statusText, _ := n.doJSON(runner, "PUT", fmt.Sprintf("builds/%d", -1), 200, &request, nil) switch result { case 404: // this is expected due to fact that we ask for non-existing job runner.Log().Println("Verifying runner...", "is alive") return true case 403: runner.Log().Errorln("Verifying runner...", "is removed") return false case clientError: runner.Log().WithField("status", statusText).Errorln("Verifying runner...", "error") return false default: runner.Log().WithField("status", statusText).Errorln("Verifying runner...", "failed") return true } }