ansibleplaybooks.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package ansible
  15. import (
  16. "yunion.io/x/jsonutils"
  17. "yunion.io/x/onecloud/pkg/mcclient"
  18. modules "yunion.io/x/onecloud/pkg/mcclient/modules/ansible"
  19. "yunion.io/x/onecloud/pkg/mcclient/options"
  20. )
  21. func init() {
  22. printAnsiblePlaybookObject := func(obj jsonutils.JSONObject) {
  23. dict := obj.(*jsonutils.JSONDict)
  24. pbJson, err := dict.Get("playbook")
  25. if err != nil {
  26. printObject(obj)
  27. return
  28. }
  29. pbStr := pbJson.YAMLString()
  30. dict.Set("playbook", jsonutils.NewString(pbStr))
  31. printObject(obj)
  32. }
  33. R(&options.AnsiblePlaybookCreateOptions{}, "ansibleplaybook-create", "Create ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookCreateOptions) error {
  34. params, err := opts.Params()
  35. if err != nil {
  36. return err
  37. }
  38. apb, err := modules.AnsiblePlaybooks.Create(s, params)
  39. if err != nil {
  40. return err
  41. }
  42. printAnsiblePlaybookObject(apb)
  43. return nil
  44. })
  45. R(&options.AnsiblePlaybookIdOptions{}, "ansibleplaybook-show", "Show ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookIdOptions) error {
  46. apb, err := modules.AnsiblePlaybooks.Get(s, opts.ID, nil)
  47. if err != nil {
  48. return err
  49. }
  50. printAnsiblePlaybookObject(apb)
  51. return nil
  52. })
  53. R(&options.AnsiblePlaybookListOptions{}, "ansibleplaybook-list", "List ansible playbooks", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookListOptions) error {
  54. params, err := opts.Params()
  55. if err != nil {
  56. return err
  57. }
  58. apbs, err := modules.AnsiblePlaybooks.List(s, params)
  59. if err != nil {
  60. return err
  61. }
  62. printList(apbs, modules.AnsiblePlaybooks.GetColumns(s))
  63. return nil
  64. })
  65. R(&options.AnsiblePlaybookIdOptions{}, "ansibleplaybook-delete", "Delete ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookIdOptions) error {
  66. apb, err := modules.AnsiblePlaybooks.Delete(s, opts.ID, nil)
  67. if err != nil {
  68. return err
  69. }
  70. printAnsiblePlaybookObject(apb)
  71. return nil
  72. })
  73. R(&options.AnsiblePlaybookUpdateOptions{}, "ansibleplaybook-update", "Update ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookUpdateOptions) error {
  74. params, err := opts.Params()
  75. if err != nil {
  76. return err
  77. }
  78. apb, err := modules.AnsiblePlaybooks.Update(s, opts.ID, params)
  79. if err != nil {
  80. return err
  81. }
  82. printAnsiblePlaybookObject(apb)
  83. return nil
  84. })
  85. R(&options.AnsiblePlaybookIdOptions{}, "ansibleplaybook-run", "Run ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookIdOptions) error {
  86. apb, err := modules.AnsiblePlaybooks.PerformAction(s, opts.ID, "run", nil)
  87. if err != nil {
  88. return err
  89. }
  90. printAnsiblePlaybookObject(apb)
  91. return nil
  92. })
  93. R(&options.AnsiblePlaybookIdOptions{}, "ansibleplaybook-stop", "Stop ansible playbook", func(s *mcclient.ClientSession, opts *options.AnsiblePlaybookIdOptions) error {
  94. apb, err := modules.AnsiblePlaybooks.PerformAction(s, opts.ID, "stop", nil)
  95. if err != nil {
  96. return err
  97. }
  98. printAnsiblePlaybookObject(apb)
  99. return nil
  100. })
  101. }