func Test_api_registry_revoke(t *testing.T) { logging.SetLevel("debug") go serve_api() config.CORE_CONF_FILEPATH, _ = filepath.Abs("./test/core_config.yml") config.CONF_FILEPATH, _ = filepath.Abs("./test/config_wo_groups.yml") ioutil.WriteFile(config.REGISTRY_FILEPATH, []byte(`test`), 0644) uri, _ := url.Parse("http://localhost:3031/registry/revoke") values := url.Values{} values.Add("hostname", newcore.GetHostname()) values.Encode() uri.RawQuery = values.Encode() resp, err := goreq.Request{ Method: "DELETE", Uri: uri.String(), Accept: "application/json", Timeout: 1 * time.Second, }.Do() if err != nil { t.Errorf("failed to do revoke: %s", err) return } defer resp.Body.Close() if resp.StatusCode != 200 { t.Errorf("statuscode != 200, %d", resp.StatusCode) } data, err := ioutil.ReadAll(resp.Body) if err != nil { t.Errorf("failed to read response") } t.Logf("data: %s", data) b, err := utils.PathExists(config.REGISTRY_FILEPATH) if b != false || err != nil { t.Errorf("revoke not working.") } }
func Test_api_registry_revoke_secure(t *testing.T) { logging.SetLevel("debug") go serve_api() config.CORE_CONF_FILEPATH, _ = filepath.Abs("./test/core_config.yml") config.CONF_FILEPATH, _ = filepath.Abs("./test/config_wo_groups.yml") config.CoreConf.Secure_api_write = true // need to add signature unsigner, _ = utils.LoadPublicKey(public_key) // override interval unsigner signer, _ := utils.LoadPrivateKey(private_key) hostname := newcore.GetHostname() now := fmt.Sprintf("%d", time.Now().Unix()) uri, _ := url.Parse("http://localhost:3031/registry/revoke") values := url.Values{} values.Add("hostname", newcore.GetHostname()) values.Add("time", now) values.Encode() uri.RawQuery = values.Encode() go_req := goreq.Request{ Method: "DELETE", Uri: uri.String(), Accept: "application/json", Timeout: 1 * time.Second, } // mock registry file before call api ioutil.WriteFile(config.REGISTRY_FILEPATH, []byte(`test`), 0644) resp, _ := go_req.Do() // if err == nil { // t.Errorf("should fail but not.") // return // } if resp.StatusCode == 200 { t.Errorf("should fail but not") return } if b, _ := utils.PathExists(config.REGISTRY_FILEPATH); b != true { t.Errorf("should fail but not") return } resp.Body.Close() toSign := fmt.Sprintf("%s%s", hostname, now) sign, _ := signer.Sign([]byte(toSign)) sign_str := base64.StdEncoding.EncodeToString(sign) go_req.AddHeader("HICKWALL_ADMIN_SIGN", sign_str) // mock registry file before call api ioutil.WriteFile(config.REGISTRY_FILEPATH, []byte(`test`), 0644) resp, err := go_req.Do() if err != nil { t.Errorf("should work but not: %v", err) return } defer resp.Body.Close() if resp.StatusCode != 200 { t.Errorf("statuscode != 200, %d", resp.StatusCode) return } b, err := utils.PathExists(config.REGISTRY_FILEPATH) if b != false || err != nil { t.Errorf("revoke not working.") } }