[ZStack] WHMCS对接插件开发过程中的一些坑

July 29, 2019 乱七八糟 奇怪的代码

0x0 开始

一些需要注意的地方

  • API地址是IP:8080而不是控制台的地址。
  • 一定一定要在操作完成后删除session,不然会出问题。
  • PHP开发这个没有SDK,意味着要自己先做SDK,这个比较方便,API重合度还是很高的。

0x1 进阶

一些大坑

暂停VM等情况的时候,使用 new stdClass() 可以在json_encode的时候输出成{}

$post_array = array(
    "pauseVmInstance" => new \stdClass()
);

巨大的死坑(RequestConsoleAccess)

在2015年,一位热心的老外给zstack提了一个issue:点我前往
在此之后,这就导致一个巨大的坑。
官方都不知道的一个坑。
使用RequestConsoleAccess拿到的token只有在session有效的情况下才能正常使用!
询问官方居然得到答复:他们这个接口是客户当时开发了,他们也不是特别清楚
我还能说什么!
解决方案很简单,即做一个token记录,如果token不一致就不要关闭api的session,如果一致就关闭这次请求的session。

还算可以的坑

开关机的api不建议你去轮询,极大可能会导致整个php超时,因为太慢了。
ZStack默认没有创建主机密码的api,解决方法是在创建机器的时候就给root和administrator改一下密码。

0x2 其他

  • 有些api的提交,在网页的提示和api的使用是不一样的,如果你提交失败报错,不妨试试去掉params直接提交内部信息。
  • ZStack在删除机器时不会默认删除云盘,因此需要你遍历后删除。
  • 重装机器的API叫 ChangeVmImage ,即 修改云主机根云盘 ,是不是完全想不到?
  • 彻底删除云主机 操作需要先运行 删除云主机 操作,不然报错。

添加新评论