environment.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package client
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/porter-dev/porter/api/types"
  6. )
  7. func (c *Client) ListEnvironments(
  8. ctx context.Context,
  9. projID, clusterID uint,
  10. ) (*types.ListEnvironmentsResponse, error) {
  11. resp := &types.ListEnvironmentsResponse{}
  12. err := c.getRequest(
  13. fmt.Sprintf("/projects/%d/clusters/%d/environments", projID, clusterID),
  14. nil,
  15. resp,
  16. )
  17. return resp, err
  18. }
  19. func (c *Client) CreateDeployment(
  20. ctx context.Context,
  21. projID, gitInstallationID, clusterID uint,
  22. gitRepoOwner, gitRepoName string,
  23. req *types.CreateDeploymentRequest,
  24. ) (*types.Deployment, error) {
  25. resp := &types.Deployment{}
  26. err := c.postRequest(
  27. fmt.Sprintf(
  28. "/projects/%d/gitrepos/%d/%s/%s/clusters/%d/deployment",
  29. projID, gitInstallationID, gitRepoOwner, gitRepoName, clusterID,
  30. ),
  31. req,
  32. resp,
  33. )
  34. return resp, err
  35. }
  36. func (c *Client) GetDeployment(
  37. ctx context.Context,
  38. projID, clusterID, envID uint,
  39. req *types.GetDeploymentRequest,
  40. ) (*types.Deployment, error) {
  41. resp := &types.Deployment{}
  42. err := c.getRequest(
  43. fmt.Sprintf("/projects/%d/clusters/%d/environments/%d/deployment", projID, clusterID, envID),
  44. req,
  45. resp,
  46. )
  47. return resp, err
  48. }
  49. func (c *Client) UpdateDeployment(
  50. ctx context.Context,
  51. projID, gitInstallationID, clusterID uint,
  52. gitRepoOwner, gitRepoName string,
  53. req *types.UpdateDeploymentRequest,
  54. ) (*types.Deployment, error) {
  55. resp := &types.Deployment{}
  56. err := c.postRequest(
  57. fmt.Sprintf(
  58. "/projects/%d/gitrepos/%d/%s/%s/clusters/%d/deployment/update",
  59. projID, gitInstallationID, gitRepoOwner, gitRepoName, clusterID,
  60. ),
  61. req,
  62. resp,
  63. )
  64. return resp, err
  65. }
  66. func (c *Client) UpdateDeploymentStatus(
  67. ctx context.Context,
  68. projID, gitInstallationID, clusterID uint,
  69. gitRepoOwner, gitRepoName string,
  70. req *types.UpdateDeploymentStatusRequest,
  71. ) (*types.Deployment, error) {
  72. resp := &types.Deployment{}
  73. err := c.postRequest(
  74. fmt.Sprintf(
  75. "/projects/%d/gitrepos/%d/%s/%s/clusters/%d/deployment/update/status",
  76. projID, gitInstallationID, gitRepoOwner, gitRepoName, clusterID,
  77. ),
  78. req,
  79. resp,
  80. )
  81. return resp, err
  82. }
  83. func (c *Client) FinalizeDeployment(
  84. ctx context.Context,
  85. projID, gitInstallationID, clusterID uint,
  86. gitRepoOwner, gitRepoName string,
  87. req *types.FinalizeDeploymentRequest,
  88. ) (*types.Deployment, error) {
  89. resp := &types.Deployment{}
  90. err := c.postRequest(
  91. fmt.Sprintf(
  92. "/projects/%d/gitrepos/%d/%s/%s/clusters/%d/deployment/finalize",
  93. projID, gitInstallationID, gitRepoOwner, gitRepoName, clusterID,
  94. ),
  95. req,
  96. resp,
  97. )
  98. return resp, err
  99. }
  100. func (c *Client) FinalizeDeploymentWithErrors(
  101. ctx context.Context,
  102. projID, gitInstallationID, clusterID uint,
  103. gitRepoOwner, gitRepoName string,
  104. req *types.FinalizeDeploymentWithErrorsRequest,
  105. ) (*types.Deployment, error) {
  106. resp := &types.Deployment{}
  107. err := c.postRequest(
  108. fmt.Sprintf(
  109. "/projects/%d/gitrepos/%d/%s/%s/clusters/%d/deployment/finalize_errors",
  110. projID, gitInstallationID, gitRepoOwner, gitRepoName, clusterID,
  111. ),
  112. req,
  113. resp,
  114. )
  115. return resp, err
  116. }
  117. func (c *Client) DeleteDeployment(
  118. ctx context.Context,
  119. projID, clusterID, deploymentID uint,
  120. ) error {
  121. return c.deleteRequest(
  122. fmt.Sprintf(
  123. "/projects/%d/clusters/%d/deployments/%d",
  124. projID, clusterID, deploymentID,
  125. ),
  126. nil, nil,
  127. )
  128. }