Delete Workspace 會面臨幾個比較難搞的狀況:
與俊孝討論後,提出幾個建議:
inspired by https://github.com/oharastream/ohara/pull/5315#issuecomment-650858154
某個步驟 retry 達三次,則允許跳過該步驟。例如刪除 broker 失敗,並且 retry 三次後仍失敗,出現 SKIP 按鈕讓使用者決定放棄該步驟,讓 broker 變成孤兒,避免走不到最後一步 delete workspace。
不確定我們是否需要做的這麼完整,因為當刪除的動作觸發後就已經是不可復原的狀態了;任何的刪除失敗應該讓使用者知道錯誤的訊息(或者我們可以在錯誤的訊息中提示使用者可以怎麼做?)、提供RETRY的功能應該就足夠了,SKIP的功能會延伸:
再次建立workspace可能會與這些孤兒產生名稱衝突等問題
這確實是一個大問題,會讓無腦(使用預設名稱)建立 Workspace 失敗
不確定我們是否需要做的這麼完整,因為當刪除的動作觸發後就已經是不可復原的狀態了;任何的刪除失敗應該讓使用者知道錯誤的訊息(或者我們可以在錯誤的訊息中提示使用者可以怎麼做?)、提供RETRY的功能應該就足夠了
如果一直 RETRY 失敗會讓 UI 卡在 Delete Workspace 的畫面,使用者無法做其他的事,只能 Refresh 了。如果不要 SKIP 的話,或許在 RETRY 失敗達到某個次數,允許使用者離開目前的畫面,可以去查看 Event Log,進一步排除 RETRY 失敗的原因,再重新進行刪除。
Delele workspace 愈單純愈好, 我心中的方案有二:
但仍不排除連 force delete 都失敗的情境,
不過這部份我想己經超過 "Delele workspace" 須要負責的範圍.
要用其他方式來克服, 在此我們可以略過, 只要能讓使用者回到主畫面即可.
刪除未結束前,重新整理畫面會跳出警示
重整畫面後,檢查是否有 Workspace 的刪除任務尚未結束,如果有的話,提示使用者繼續刪除
+1
某個步驟 retry 達三次,則允許跳過該步驟。例如刪除 broker 失敗,並且 retry 三次後仍失敗,出現 SKIP 按鈕讓使用者決定放棄該步驟,讓 broker 變成孤兒,避免走不到最後一步 delete workspace。
What if we just let the users resolve the issue manually? I'd assume if a given workspace cannot be deleted by UI, it's not a problem that could be handled by UI along, thus it'd be better to just hand over this to the users and let them resolve this by using APIs?
+1 to @vitojeng,在0.11.0就只要"能"刪除workspace就好,孤兒的問題(包含force delete)我們之後再處理
不過一個重點是就算發生了無法預期的事情,也需要讓其他workspace能正常運作,換言之,前端要有辦法去判斷workspace現在是否為"正常"
簡單來說
其實也不用讓使用者去retry了,因為UI內部的retry都無效,此時讓使用者retry已經沒啥意義了
in conclusion: