func addImgTransferTransition(sm *SM) { base := replication.InitBaseHandler(sm.Parms.Repository, sm.Parms.LocalRegURL, config.UISecret(), sm.Parms.TargetURL, sm.Parms.TargetUsername, sm.Parms.TargetPassword, sm.Parms.Insecure, sm.Parms.Tags, sm.Logger) sm.AddTransition(models.JobRunning, replication.StateInitialize, &replication.Initializer{BaseHandler: base}) sm.AddTransition(replication.StateInitialize, replication.StateCheck, &replication.Checker{BaseHandler: base}) sm.AddTransition(replication.StateCheck, replication.StatePullManifest, &replication.ManifestPuller{BaseHandler: base}) sm.AddTransition(replication.StatePullManifest, replication.StateTransferBlob, &replication.BlobTransfer{BaseHandler: base}) sm.AddTransition(replication.StatePullManifest, models.JobFinished, &StatusUpdater{sm.JobID, models.JobFinished}) sm.AddTransition(replication.StateTransferBlob, replication.StatePushManifest, &replication.ManifestPusher{BaseHandler: base}) sm.AddTransition(replication.StatePushManifest, replication.StatePullManifest, &replication.ManifestPuller{BaseHandler: base}) }
// calls the api from UI to get repo list func getRepoList(projectID int64) ([]string, error) { /* uiUser := os.Getenv("UI_USR") if len(uiUser) == 0 { uiUser = "******" } uiPwd := os.Getenv("UI_PWD") if len(uiPwd) == 0 { uiPwd = "Harbor12345" } */ uiURL := config.LocalUIURL() client := &http.Client{} req, err := http.NewRequest("GET", uiURL+"/api/repositories?project_id="+strconv.Itoa(int(projectID)), nil) if err != nil { log.Errorf("Error when creating request: %v", err) return nil, err } //req.SetBasicAuth(uiUser, uiPwd) req.AddCookie(&http.Cookie{Name: models.UISecretCookie, Value: config.UISecret()}) //dump, err := httputil.DumpRequest(req, true) //log.Debugf("req: %q", dump) resp, err := client.Do(req) if err != nil { log.Errorf("Error when calling UI api to get repositories, error: %v", err) return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { log.Errorf("Unexpected status code: %d", resp.StatusCode) dump, _ := httputil.DumpResponse(resp, true) log.Debugf("response: %q", dump) return nil, fmt.Errorf("Unexpected status code when getting repository list: %d", resp.StatusCode) } body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Errorf("Failed to read the response body, error: %v", err) return nil, err } var repoList []string err = json.Unmarshal(body, &repoList) return repoList, err }