| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package forms
- import (
- "net/url"
- "strconv"
- "github.com/porter-dev/porter/internal/helm"
- "github.com/porter-dev/porter/internal/repository"
- )
- // ReleaseForm is the generic base type for CRUD operations on releases
- type ReleaseForm struct {
- *helm.Form
- }
- // PopulateHelmOptionsFromQueryParams populates fields in the ReleaseForm using the passed
- // url.Values (the parsed query params)
- func (rf *ReleaseForm) PopulateHelmOptionsFromQueryParams(
- vals url.Values,
- repo repository.ClusterRepository,
- ) error {
- if clusterID, ok := vals["cluster_id"]; ok && len(clusterID) == 1 {
- id, err := strconv.ParseUint(clusterID[0], 10, 64)
- if err != nil {
- return err
- }
- cluster, err := repo.ReadCluster(uint(id))
- if err != nil {
- return err
- }
- rf.Cluster = cluster
- }
- if namespace, ok := vals["namespace"]; ok && len(namespace) == 1 {
- rf.Namespace = namespace[0]
- }
- if storage, ok := vals["storage"]; ok && len(storage) == 1 {
- rf.Storage = storage[0]
- }
- return nil
- }
- // ListReleaseForm represents the accepted values for listing Helm releases
- type ListReleaseForm struct {
- *ReleaseForm
- *helm.ListFilter
- }
- // PopulateListFromQueryParams populates fields in the ListReleaseForm using the passed
- // url.Values (the parsed query params)
- func (lrf *ListReleaseForm) PopulateListFromQueryParams(
- vals url.Values,
- _ repository.ClusterRepository,
- ) error {
- if namespace, ok := vals["namespace"]; ok && len(namespace) == 1 {
- lrf.ListFilter.Namespace = namespace[0]
- }
- if limit, ok := vals["limit"]; ok && len(limit) == 1 {
- if limitInt, err := strconv.ParseInt(limit[0], 10, 64); err == nil {
- lrf.ListFilter.Limit = int(limitInt)
- }
- }
- if skip, ok := vals["skip"]; ok && len(skip) == 1 {
- if skipInt, err := strconv.ParseInt(skip[0], 10, 64); err == nil {
- lrf.ListFilter.Skip = int(skipInt)
- }
- }
- if byDate, ok := vals["byDate"]; ok && len(byDate) == 1 {
- if byDateBool, err := strconv.ParseBool(byDate[0]); err == nil {
- lrf.ListFilter.ByDate = byDateBool
- }
- }
- if statusFilter, ok := vals["statusFilter"]; ok {
- lrf.ListFilter.StatusFilter = statusFilter
- }
- return nil
- }
- // GetReleaseForm represents the accepted values for getting a single Helm release
- type GetReleaseForm struct {
- *ReleaseForm
- Name string `json:"name" form:"required"`
- Revision int `json:"revision"`
- }
- // ListReleaseHistoryForm represents the accepted values for getting a single Helm release
- type ListReleaseHistoryForm struct {
- *ReleaseForm
- Name string `json:"name" form:"required"`
- }
- // RollbackReleaseForm represents the accepted values for getting a single Helm release
- type RollbackReleaseForm struct {
- *ReleaseForm
- Name string `json:"name" form:"required"`
- Revision int `json:"revision" form:"required"`
- }
- // UpgradeReleaseForm represents the accepted values for updating a Helm release
- type UpgradeReleaseForm struct {
- *ReleaseForm
- Name string `json:"name" form:"required"`
- Values string `json:"values" form:"required"`
- ChartVersion string `json:"version"`
- }
- // ChartTemplateForm represents the accepted values for installing a new chart from a template.
- type ChartTemplateForm struct {
- TemplateName string `json:"templateName" form:"required"`
- ImageURL string `json:"imageURL" form:"required"`
- FormValues map[string]interface{} `json:"formValues"`
- Name string `json:"name"`
- }
- // InstallChartTemplateForm represents the accepted values for installing a new chart from a template.
- type InstallChartTemplateForm struct {
- *ReleaseForm
- *ChartTemplateForm
- // optional git action config
- GithubActionConfig *CreateGitActionOptional `json:"github_action,omitempty"`
- }
- // UpdateImageForm represents the accepted values for updating a Helm release's image
- type UpdateImageForm struct {
- *ReleaseForm
- ImageRepoURI string `json:"image_repo_uri" form:"required"`
- Tag string `json:"tag" form:"required"`
- }
|