mirror of
https://github.com/niusmallnan/steve.git
synced 2025-09-12 21:14:06 +00:00
Initial implmentation of warning headers
Attempts to pass through warning headers which k8s returns. Requires an update to rancher/apiserver.
This commit is contained in:
committed by
Chad Roberts
parent
7565dba268
commit
956b7351aa
@@ -111,52 +111,52 @@ func (p *Factory) AdminK8sInterface() (kubernetes.Interface, error) {
|
||||
return kubernetes.NewForConfig(p.clientCfg)
|
||||
}
|
||||
|
||||
func (p *Factory) DynamicClient(ctx *types.APIRequest) (dynamic.Interface, error) {
|
||||
return newDynamicClient(ctx, p.clientCfg, p.impersonate)
|
||||
func (p *Factory) DynamicClient(ctx *types.APIRequest, warningHandler rest.WarningHandler) (dynamic.Interface, error) {
|
||||
return newDynamicClient(ctx, p.clientCfg, p.impersonate, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) Client(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, p.impersonate)
|
||||
func (p *Factory) Client(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, p.impersonate, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) AdminClient(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, false)
|
||||
func (p *Factory) AdminClient(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, false, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) ClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.watchClientCfg, s, namespace, p.impersonate)
|
||||
func (p *Factory) ClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, p.impersonate, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) AdminClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.watchClientCfg, s, namespace, false)
|
||||
func (p *Factory) AdminClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
return newClient(ctx, p.clientCfg, s, namespace, false, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) TableClient(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
func (p *Factory) TableClient(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
if attributes.Table(s) {
|
||||
return newClient(ctx, p.tableClientCfg, s, namespace, p.impersonate)
|
||||
return newClient(ctx, p.clientCfg, s, namespace, p.impersonate, warningHandler)
|
||||
}
|
||||
return p.Client(ctx, s, namespace)
|
||||
return p.Client(ctx, s, namespace, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) TableAdminClient(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
func (p *Factory) TableAdminClient(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
if attributes.Table(s) {
|
||||
return newClient(ctx, p.tableClientCfg, s, namespace, false)
|
||||
return newClient(ctx, p.clientCfg, s, namespace, false, warningHandler)
|
||||
}
|
||||
return p.AdminClient(ctx, s, namespace)
|
||||
return p.AdminClient(ctx, s, namespace, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) TableClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
func (p *Factory) TableClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
if attributes.Table(s) {
|
||||
return newClient(ctx, p.tableWatchClientCfg, s, namespace, p.impersonate)
|
||||
return newClient(ctx, p.clientCfg, s, namespace, p.impersonate, warningHandler)
|
||||
}
|
||||
return p.ClientForWatch(ctx, s, namespace)
|
||||
return p.ClientForWatch(ctx, s, namespace, warningHandler)
|
||||
}
|
||||
|
||||
func (p *Factory) TableAdminClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string) (dynamic.ResourceInterface, error) {
|
||||
func (p *Factory) TableAdminClientForWatch(ctx *types.APIRequest, s *types.APISchema, namespace string, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
if attributes.Table(s) {
|
||||
return newClient(ctx, p.tableWatchClientCfg, s, namespace, false)
|
||||
return newClient(ctx, p.clientCfg, s, namespace, false, warningHandler)
|
||||
}
|
||||
return p.AdminClientForWatch(ctx, s, namespace)
|
||||
return p.AdminClientForWatch(ctx, s, namespace, warningHandler)
|
||||
}
|
||||
|
||||
func setupConfig(ctx *types.APIRequest, cfg *rest.Config, impersonate bool) (*rest.Config, error) {
|
||||
@@ -173,8 +173,9 @@ func setupConfig(ctx *types.APIRequest, cfg *rest.Config, impersonate bool) (*re
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func newDynamicClient(ctx *types.APIRequest, cfg *rest.Config, impersonate bool) (dynamic.Interface, error) {
|
||||
func newDynamicClient(ctx *types.APIRequest, cfg *rest.Config, impersonate bool, warningHandler rest.WarningHandler) (dynamic.Interface, error) {
|
||||
cfg, err := setupConfig(ctx, cfg, impersonate)
|
||||
cfg.WarningHandler = warningHandler
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -182,8 +183,8 @@ func newDynamicClient(ctx *types.APIRequest, cfg *rest.Config, impersonate bool)
|
||||
return dynamic.NewForConfig(cfg)
|
||||
}
|
||||
|
||||
func newClient(ctx *types.APIRequest, cfg *rest.Config, s *types.APISchema, namespace string, impersonate bool) (dynamic.ResourceInterface, error) {
|
||||
client, err := newDynamicClient(ctx, cfg, impersonate)
|
||||
func newClient(ctx *types.APIRequest, cfg *rest.Config, s *types.APISchema, namespace string, impersonate bool, warningHandler rest.WarningHandler) (dynamic.ResourceInterface, error) {
|
||||
client, err := newDynamicClient(ctx, cfg, impersonate, warningHandler)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user