2023-07-05 13:20:01 +03:00
|
|
|
// Code generated by go-swagger; DO NOT EDIT.
|
|
|
|
|
|
|
|
|
|
package instances
|
|
|
|
|
|
|
|
|
|
// This file was generated by the swagger tool.
|
|
|
|
|
// Editing this file might prove futile when you re-run the swagger generate command
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"net/http"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"github.com/go-openapi/errors"
|
|
|
|
|
"github.com/go-openapi/runtime"
|
|
|
|
|
cr "github.com/go-openapi/runtime/client"
|
|
|
|
|
"github.com/go-openapi/strfmt"
|
Add force delete runner
This branch adds the ability to forcefully remove a runner from GARM.
When the operator wishes to manually remove a runner, the workflow is as
follows:
* Check that the runner exists in GitHub. If it does, attempt to
remove it. An error here indicates that the runner may be processing
a job. In this case, we don't continue and the operator gets immediate
feedback from the API.
* Mark the runner in the database as pending_delete
* Allow the consolidate loop to reap it from the provider and remove it
from the database.
Removing the instance from the provider is async. If the provider errs out,
GARM will keep trying to remove it in perpetuity until the provider succedes.
In situations where the provider is misconfigured, this will never happen, leaving
the instance in a permanent state of pending_delete.
A provider may fail for various reasons. Either credentials have expired, the
API endpoint has changed, the provider is misconfigured or the operator may just
have removed it from the config before cleaning up the runners. While some cases
are recoverable, some are not. We cannot have a situation in which we cannot clean
resources in garm because of a misconfiguration.
This change adds the pending_force_delete instance status. Instances marked with
this status, will be removed from GARM even if the provider reports an error.
The GARM cli has been modified to give new meaning to the --force-remove-runner
option. This option in the CLI is no longer mandatory. Instead, setting it will mark
the runner with the new pending_force_delete status. Omitting it will mark the runner
with the old status of pending_delete.
Fixes: #160
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-10-12 06:15:36 +00:00
|
|
|
"github.com/go-openapi/swag"
|
2023-07-05 13:20:01 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// NewDeleteInstanceParams creates a new DeleteInstanceParams object,
|
|
|
|
|
// with the default timeout for this client.
|
|
|
|
|
//
|
|
|
|
|
// Default values are not hydrated, since defaults are normally applied by the API server side.
|
|
|
|
|
//
|
|
|
|
|
// To enforce default values in parameter, use SetDefaults or WithDefaults.
|
|
|
|
|
func NewDeleteInstanceParams() *DeleteInstanceParams {
|
|
|
|
|
return &DeleteInstanceParams{
|
|
|
|
|
timeout: cr.DefaultTimeout,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewDeleteInstanceParamsWithTimeout creates a new DeleteInstanceParams object
|
|
|
|
|
// with the ability to set a timeout on a request.
|
|
|
|
|
func NewDeleteInstanceParamsWithTimeout(timeout time.Duration) *DeleteInstanceParams {
|
|
|
|
|
return &DeleteInstanceParams{
|
|
|
|
|
timeout: timeout,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewDeleteInstanceParamsWithContext creates a new DeleteInstanceParams object
|
|
|
|
|
// with the ability to set a context for a request.
|
|
|
|
|
func NewDeleteInstanceParamsWithContext(ctx context.Context) *DeleteInstanceParams {
|
|
|
|
|
return &DeleteInstanceParams{
|
|
|
|
|
Context: ctx,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewDeleteInstanceParamsWithHTTPClient creates a new DeleteInstanceParams object
|
|
|
|
|
// with the ability to set a custom HTTPClient for a request.
|
|
|
|
|
func NewDeleteInstanceParamsWithHTTPClient(client *http.Client) *DeleteInstanceParams {
|
|
|
|
|
return &DeleteInstanceParams{
|
|
|
|
|
HTTPClient: client,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
DeleteInstanceParams contains all the parameters to send to the API endpoint
|
|
|
|
|
|
|
|
|
|
for the delete instance operation.
|
|
|
|
|
|
|
|
|
|
Typically these are written to a http.Request.
|
|
|
|
|
*/
|
|
|
|
|
type DeleteInstanceParams struct {
|
|
|
|
|
|
2024-03-10 15:21:39 +00:00
|
|
|
/* BypassGHUnauthorized.
|
|
|
|
|
|
|
|
|
|
If true GARM will ignore unauthorized errors returned by GitHub when removing a runner. This is useful if you want to clean up runners and your credentials have expired.
|
|
|
|
|
*/
|
|
|
|
|
BypassGHUnauthorized *bool
|
|
|
|
|
|
Add force delete runner
This branch adds the ability to forcefully remove a runner from GARM.
When the operator wishes to manually remove a runner, the workflow is as
follows:
* Check that the runner exists in GitHub. If it does, attempt to
remove it. An error here indicates that the runner may be processing
a job. In this case, we don't continue and the operator gets immediate
feedback from the API.
* Mark the runner in the database as pending_delete
* Allow the consolidate loop to reap it from the provider and remove it
from the database.
Removing the instance from the provider is async. If the provider errs out,
GARM will keep trying to remove it in perpetuity until the provider succedes.
In situations where the provider is misconfigured, this will never happen, leaving
the instance in a permanent state of pending_delete.
A provider may fail for various reasons. Either credentials have expired, the
API endpoint has changed, the provider is misconfigured or the operator may just
have removed it from the config before cleaning up the runners. While some cases
are recoverable, some are not. We cannot have a situation in which we cannot clean
resources in garm because of a misconfiguration.
This change adds the pending_force_delete instance status. Instances marked with
this status, will be removed from GARM even if the provider reports an error.
The GARM cli has been modified to give new meaning to the --force-remove-runner
option. This option in the CLI is no longer mandatory. Instead, setting it will mark
the runner with the new pending_force_delete status. Omitting it will mark the runner
with the old status of pending_delete.
Fixes: #160
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-10-12 06:15:36 +00:00
|
|
|
/* ForceRemove.
|
|
|
|
|
|
|
|
|
|
If true GARM will ignore any provider error when removing the runner and will continue to remove the runner from github and the GARM database.
|
|
|
|
|
*/
|
|
|
|
|
ForceRemove *bool
|
|
|
|
|
|
2023-07-05 13:20:01 +03:00
|
|
|
/* InstanceName.
|
|
|
|
|
|
|
|
|
|
Runner instance name.
|
|
|
|
|
*/
|
|
|
|
|
InstanceName string
|
|
|
|
|
|
|
|
|
|
timeout time.Duration
|
|
|
|
|
Context context.Context
|
|
|
|
|
HTTPClient *http.Client
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WithDefaults hydrates default values in the delete instance params (not the query body).
|
|
|
|
|
//
|
|
|
|
|
// All values with no default are reset to their zero value.
|
|
|
|
|
func (o *DeleteInstanceParams) WithDefaults() *DeleteInstanceParams {
|
|
|
|
|
o.SetDefaults()
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetDefaults hydrates default values in the delete instance params (not the query body).
|
|
|
|
|
//
|
|
|
|
|
// All values with no default are reset to their zero value.
|
|
|
|
|
func (o *DeleteInstanceParams) SetDefaults() {
|
|
|
|
|
// no default values defined for this parameter
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WithTimeout adds the timeout to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithTimeout(timeout time.Duration) *DeleteInstanceParams {
|
|
|
|
|
o.SetTimeout(timeout)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetTimeout adds the timeout to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetTimeout(timeout time.Duration) {
|
|
|
|
|
o.timeout = timeout
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WithContext adds the context to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithContext(ctx context.Context) *DeleteInstanceParams {
|
|
|
|
|
o.SetContext(ctx)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetContext adds the context to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetContext(ctx context.Context) {
|
|
|
|
|
o.Context = ctx
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WithHTTPClient adds the HTTPClient to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithHTTPClient(client *http.Client) *DeleteInstanceParams {
|
|
|
|
|
o.SetHTTPClient(client)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetHTTPClient adds the HTTPClient to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetHTTPClient(client *http.Client) {
|
|
|
|
|
o.HTTPClient = client
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-10 15:21:39 +00:00
|
|
|
// WithBypassGHUnauthorized adds the bypassGHUnauthorized to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithBypassGHUnauthorized(bypassGHUnauthorized *bool) *DeleteInstanceParams {
|
|
|
|
|
o.SetBypassGHUnauthorized(bypassGHUnauthorized)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetBypassGHUnauthorized adds the bypassGHUnauthorized to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetBypassGHUnauthorized(bypassGHUnauthorized *bool) {
|
|
|
|
|
o.BypassGHUnauthorized = bypassGHUnauthorized
|
|
|
|
|
}
|
|
|
|
|
|
Add force delete runner
This branch adds the ability to forcefully remove a runner from GARM.
When the operator wishes to manually remove a runner, the workflow is as
follows:
* Check that the runner exists in GitHub. If it does, attempt to
remove it. An error here indicates that the runner may be processing
a job. In this case, we don't continue and the operator gets immediate
feedback from the API.
* Mark the runner in the database as pending_delete
* Allow the consolidate loop to reap it from the provider and remove it
from the database.
Removing the instance from the provider is async. If the provider errs out,
GARM will keep trying to remove it in perpetuity until the provider succedes.
In situations where the provider is misconfigured, this will never happen, leaving
the instance in a permanent state of pending_delete.
A provider may fail for various reasons. Either credentials have expired, the
API endpoint has changed, the provider is misconfigured or the operator may just
have removed it from the config before cleaning up the runners. While some cases
are recoverable, some are not. We cannot have a situation in which we cannot clean
resources in garm because of a misconfiguration.
This change adds the pending_force_delete instance status. Instances marked with
this status, will be removed from GARM even if the provider reports an error.
The GARM cli has been modified to give new meaning to the --force-remove-runner
option. This option in the CLI is no longer mandatory. Instead, setting it will mark
the runner with the new pending_force_delete status. Omitting it will mark the runner
with the old status of pending_delete.
Fixes: #160
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-10-12 06:15:36 +00:00
|
|
|
// WithForceRemove adds the forceRemove to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithForceRemove(forceRemove *bool) *DeleteInstanceParams {
|
|
|
|
|
o.SetForceRemove(forceRemove)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetForceRemove adds the forceRemove to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetForceRemove(forceRemove *bool) {
|
|
|
|
|
o.ForceRemove = forceRemove
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-05 13:20:01 +03:00
|
|
|
// WithInstanceName adds the instanceName to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) WithInstanceName(instanceName string) *DeleteInstanceParams {
|
|
|
|
|
o.SetInstanceName(instanceName)
|
|
|
|
|
return o
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SetInstanceName adds the instanceName to the delete instance params
|
|
|
|
|
func (o *DeleteInstanceParams) SetInstanceName(instanceName string) {
|
|
|
|
|
o.InstanceName = instanceName
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WriteToRequest writes these params to a swagger request
|
|
|
|
|
func (o *DeleteInstanceParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {
|
|
|
|
|
|
|
|
|
|
if err := r.SetTimeout(o.timeout); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
var res []error
|
|
|
|
|
|
2024-03-10 15:21:39 +00:00
|
|
|
if o.BypassGHUnauthorized != nil {
|
|
|
|
|
|
|
|
|
|
// query param bypassGHUnauthorized
|
|
|
|
|
var qrBypassGHUnauthorized bool
|
|
|
|
|
|
|
|
|
|
if o.BypassGHUnauthorized != nil {
|
|
|
|
|
qrBypassGHUnauthorized = *o.BypassGHUnauthorized
|
|
|
|
|
}
|
|
|
|
|
qBypassGHUnauthorized := swag.FormatBool(qrBypassGHUnauthorized)
|
|
|
|
|
if qBypassGHUnauthorized != "" {
|
|
|
|
|
|
|
|
|
|
if err := r.SetQueryParam("bypassGHUnauthorized", qBypassGHUnauthorized); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
Add force delete runner
This branch adds the ability to forcefully remove a runner from GARM.
When the operator wishes to manually remove a runner, the workflow is as
follows:
* Check that the runner exists in GitHub. If it does, attempt to
remove it. An error here indicates that the runner may be processing
a job. In this case, we don't continue and the operator gets immediate
feedback from the API.
* Mark the runner in the database as pending_delete
* Allow the consolidate loop to reap it from the provider and remove it
from the database.
Removing the instance from the provider is async. If the provider errs out,
GARM will keep trying to remove it in perpetuity until the provider succedes.
In situations where the provider is misconfigured, this will never happen, leaving
the instance in a permanent state of pending_delete.
A provider may fail for various reasons. Either credentials have expired, the
API endpoint has changed, the provider is misconfigured or the operator may just
have removed it from the config before cleaning up the runners. While some cases
are recoverable, some are not. We cannot have a situation in which we cannot clean
resources in garm because of a misconfiguration.
This change adds the pending_force_delete instance status. Instances marked with
this status, will be removed from GARM even if the provider reports an error.
The GARM cli has been modified to give new meaning to the --force-remove-runner
option. This option in the CLI is no longer mandatory. Instead, setting it will mark
the runner with the new pending_force_delete status. Omitting it will mark the runner
with the old status of pending_delete.
Fixes: #160
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-10-12 06:15:36 +00:00
|
|
|
if o.ForceRemove != nil {
|
|
|
|
|
|
|
|
|
|
// query param forceRemove
|
|
|
|
|
var qrForceRemove bool
|
|
|
|
|
|
|
|
|
|
if o.ForceRemove != nil {
|
|
|
|
|
qrForceRemove = *o.ForceRemove
|
|
|
|
|
}
|
|
|
|
|
qForceRemove := swag.FormatBool(qrForceRemove)
|
|
|
|
|
if qForceRemove != "" {
|
|
|
|
|
|
|
|
|
|
if err := r.SetQueryParam("forceRemove", qForceRemove); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-05 13:20:01 +03:00
|
|
|
// path param instanceName
|
|
|
|
|
if err := r.SetPathParam("instanceName", o.InstanceName); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(res) > 0 {
|
|
|
|
|
return errors.CompositeValidationError(res...)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|