* feat(notify): Add 'get-types' action for ConfigManager
The List interface is only open to administrators,
because we don't want anyone other than administrators
to see the details of the notify configuration.
To let general user to kown available notification channels,
add 'get-types' actions of ConfigManager.
* feat(notify): Check the availability of contact type before creating notification
Creating notification with unconfigured contact type will fail at
sending message. Now, prevent creation in advance.
* feat(notify): Add workwx for NotifyNormal/Important/Critical
* feat(notify): Add Notify about robot in notifyclient
* fix(notify): Init ParentContactType for SSubContact
1. ParentContactType of SSubContact with webconsole type is empty.
2. ParentContactType of others SSubContact is mobile.
* fix(notify): Unverify SSubContact when ParentContactType match
* fix(notify): When no data is initialized, exit directly
* fix(esxi): Fetch full templates of datastoreImageCache
Datastore 和 DatastoreImageCache 是一对一的关系。
每一个 Datastore 可能有多个对应的 Host,所以 GetIIMages 里面获取
Templates 的逻辑应该尝试去获取所有 Host 的 Templates。
* fix(host-deployer): Exit correctly after mounting
MountRootfs的返回值为nil时,还是需要Umount的操作来正确退出(比如VDDK)。
VDDK的Mount分为两步,第一步会挂在remote
disk到fuse下,然后挂载fuse/xxx/flat
到块设备上。第一步成功,第二部失败也应该正确退出。
* fix(host-deployer): Kill process
* opt(host-deployer): Increase timeout of waiting mount
* opt(host-deployer): Add debug log print command to mount
* fix(esxi): Support multi agent in different zone
* feat(notify): Support update for notify config
* fix(notify): Be compatible with the email configuration
Email config key text changed:
mail.username => username
mail.password => password
mail.smtp.hostname => hostname
mail.smtp.hostport => hostport
* fix(notify): Give users permission to operate receiver
* fix(notify): Allow negative update for receiver
Now, input.Email and input.Mobile can be empty which means
that do not update the corresponding field.
* feat(notify): Support for triggering validation on feishu, dingtalk and worwx
Triggering validation on these contact types means repulling a Contact about them.
* feat(notify): Adds validity period for verify
Verification beyond the expiration date will fail.
* fix(notify): SQuery of scopedomain in FilterByOwner
mac ip dhcp ping xipping xmacping
on on y y n n
on off y y y n
off off y y y y
external access depends on source routing, changing ip address will
fail that
note dst mac address of reply packet when changing only mac address
with vpc ip remains the same
* refactor(notify): ALL
* feat(climc): Notify v2
* feat: support notify for codegen.py
* delete deprecated code and Maintain SDK compatibility
* Adjust the template for mail validation to support captcha
* fix: The issue of notify refactoring
* add copyright for notifyv2 cli
* Adjust according to the advice of make check
* Remove utils package in notify
* fix import format
* remove redundant Template module
* fix validateCreate and validateUpdate of notifytemplate
* fix update issues of receivers
* fix: Add SetStageComplete in tasks
* notify: log with context info
* region: guests: log with context info
* region: hosts: log with context info
* region: misc: remove redundant log
* region: skus: use NewInternalServerError instead of NewGeneralError
* appsrv: dispatcher: preserve text id
* appsrv: dispatcher: remove commented-out code
* cloudcommon: db_dispatcher: note errors that won't be translated
* cloudcommon: db: rbac: preserve text id
* cloudcommon: caller: preserve text id
* treewide: fix fmt string
* region: guest_actions: preserve text id
* region: guest_actions: fix fmt string
* region: usages: fix fmt string
* mcclient: hosts: remove redundant return value
* cloudcommon: fetch: preserve text id
* region: guest_template: preserve text id
* cloudcommon: db: db_dispatcher: preserve text id
* region: guest_actions: preserve text id
* httperrors: add funcs for wrap lang tag into context
* vendor: golang.org/x/text
* httperrors: error with context
* httperrors: HTTPError
* treewide: fix typo
* treewide: use en in source code
* locales: initial version