func QueryDeployVersionFiles(name string) { log.Println("QueryDeployVersionFiles:", name) data, err := util.JsonRpcData("http://" + deployUrl + "/rpc/files?version=" + name) if err != nil { log.Println(err) return } var files []interface{} = data["files"].([]interface{}) versionLock.Lock() defer versionLock.Unlock() cur := FindVersion(name) if cur == nil { return } cur.filesQed = true cur.Files = make([]VerFile, len(files)) for i := 0; i < len(files); i++ { f := files[i].(map[string]interface{}) name := f["Name"].(string) size := int64(f["Size"].(float64)) modtime := f["ModTime"].(string) var t time.Time t.UnmarshalJSON([]byte("\"" + modtime + "\"")) cur.Files[i] = VerFile{name, size, t, false} //log.Println("f:", i, name, size, modtime, t, err) } log.Println("QueryDeployVersionFiles:", name, len(cur.Files)) CheckVersionLocalState(cur) // dbg, _ := json.Marshal(cur.Files) // log.Println("4:", string(dbg)) }
func QueryDeployVersions() { data, err := util.JsonRpcData("http://" + deployUrl + "/rpc/status?versions=1") if err != nil { log.Println(err) return } var vers []interface{} = data["versions"].([]interface{}) if len(vers) <= 0 { //deploy has no versions, skip further actions return } versionLock.Lock() for e := versionList.Front(); e != nil; e = e.Next() { d := e.Value.(*Version) d.deploySynced = false } versionLock.Unlock() for i := 0; i < len(vers); i++ { v := vers[i].(map[string]interface{}) ver := Version{} ver.Name = v["Name"].(string) ver.Active = v["Active"].(bool) ver.Size = int64(v["Size"].(float64)) ver.numFiles = int(v["Files"].(float64)) UpdateDeployVersion(&ver) } DeleteOrphanedVersions() //dbg, _ := json.Marshal(vers) //log.Println(string(dbg)) }