如何通过API删除一个Jelastic环境?

How to delete a Jelastic environment through the API?

我试图通过以下 API 调用删除我的一个 Jelastic 环境:

curl -k \ 
-H "${CONTENT_TYPE}" \ 
-A "${USER_AGENT}" \ 
-X POST \ 
-fsS ${HOSTER_URL}/1.0/environment/control/rest/deleteenv -d "password=${password}&session=${session}&envName=${envName} 

我确信 sessionenvName 是正确的,因为我有其他命令 运行 非常适合它们。特别是,我通过以下方式获得 session

getSession() { 
  local login= 
  local password= 
  local hosterUrl= 
  echo "Signing in..." >&2 
  local cmd=$(curl -k -H "${CONTENT_TYPE}" -A "${USER_AGENT}" -X POST \ 
    -fsS "$hosterUrl/1.0/users/authentication/rest/signin" -d "login=$login&password=$password"); 
  exitOnFail $cmd 
  echo "Signed in" >&2 
  echo $(jq '.session' <<< $cmd | sed 's/\"//g') 
} 

在调用 deleteenv 时,我提供了与我的 Jelastic 提供商帐户完全相同的密码。事实上,当我想通过 Jelastic 的仪表板删除环境时,这是我需要提供的密码才能进行删除。但是,我收到以下错误:

{"result":801,"source":"hx-core","error":"invalid password"} 

因为密码字段在 Jelastic's API documentation 中被记录为可选,所以我尝试不设置密码。这会产生以下错误:

{"result":3,"source":"JEL","error":"invalid parameter [password] for method [DeleteEnv] in service [ControlService]"} 

我尝试使用其他秘密作为该密码,例如 APPID,但没有成功。

有人知道我需要输入什么密码吗?

我们使用了与您使用的相同的 oneliner based on API,您用于获取会话的脚本和相同的 Jelastic 版本,但无法重现此问题。已成功删除环境。

Does anyone have a clue what password I need to put there?

这与您用于获取会话或进入仪表板的密码相同。请确保您的密码变量中没有其他符号。

Because the password field is documented as optional

确实,如果使用 token 而不是会话,则它是可选的。在会话的情况下,密码是必需的参数。