Quick remove node from SMap
(ctx *Ctx, proxyURL, sid string, timeout time.Duration)
| 790 | |
| 791 | // Quick remove node from SMap |
| 792 | func _removeNodeFromSmap(ctx *Ctx, proxyURL, sid string, timeout time.Duration) error { |
| 793 | var ( |
| 794 | baseParams = api.BaseParams{Client: ctx.Client, URL: proxyURL, Token: LoggedUserToken} |
| 795 | smap, err = api.GetClusterMap(baseParams) |
| 796 | node = smap.GetNode(sid) |
| 797 | ) |
| 798 | if err != nil { |
| 799 | return fmt.Errorf("api.GetClusterMap failed, err: %v", err) |
| 800 | } |
| 801 | if node != nil && smap.IsPrimary(node) { |
| 802 | return fmt.Errorf("unregistering primary proxy is not allowed") |
| 803 | } |
| 804 | tlog.Logf("Remove %s from %s\n", node.StringEx(), smap) |
| 805 | |
| 806 | err = api.RemoveNodeFromSmap(baseParams, sid) |
| 807 | if err != nil { |
| 808 | return err |
| 809 | } |
| 810 | |
| 811 | // If node does not exist in cluster we should not wait for map version |
| 812 | // sync because update will not be scheduled. |
| 813 | if node != nil { |
| 814 | return _waitMapVersionSync(baseParams, ctx, time.Now().Add(timeout), smap, smap.Version, cos.NewStringSet(node.ID())) |
| 815 | } |
| 816 | return nil |
| 817 | } |
no test coverage detected