mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
also remove Error logs from client rpc and promote plugin Debug logs to Error (since they have more info in them)
81 lines
1.9 KiB
Go
81 lines
1.9 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package client
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
metrics "github.com/hashicorp/go-metrics/compat"
|
|
cstructs "github.com/hashicorp/nomad/client/structs"
|
|
)
|
|
|
|
type HostVolume struct {
|
|
c *Client
|
|
}
|
|
|
|
func newHostVolumesEndpoint(c *Client) *HostVolume {
|
|
v := &HostVolume{c: c}
|
|
return v
|
|
}
|
|
|
|
var hostVolumeRequestTimeout = time.Minute
|
|
|
|
func (v *HostVolume) Create(
|
|
req *cstructs.ClientHostVolumeCreateRequest,
|
|
resp *cstructs.ClientHostVolumeCreateResponse) error {
|
|
|
|
defer metrics.MeasureSince([]string{"client", "host_volume", "create"}, time.Now())
|
|
ctx, cancelFn := v.requestContext()
|
|
defer cancelFn()
|
|
|
|
cresp, err := v.c.hostVolumeManager.Create(ctx, req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
resp.CapacityBytes = cresp.CapacityBytes
|
|
resp.HostPath = cresp.HostPath
|
|
|
|
v.c.logger.Info("created host volume", "id", req.ID, "path", resp.HostPath)
|
|
return nil
|
|
}
|
|
|
|
func (v *HostVolume) Register(
|
|
req *cstructs.ClientHostVolumeRegisterRequest,
|
|
resp *cstructs.ClientHostVolumeRegisterResponse) error {
|
|
|
|
defer metrics.MeasureSince([]string{"client", "host_volume", "register"}, time.Now())
|
|
ctx, cancelFn := v.requestContext()
|
|
defer cancelFn()
|
|
|
|
err := v.c.hostVolumeManager.Register(ctx, req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
v.c.logger.Info("registered host volume", "id", req.ID, "path", req.HostPath)
|
|
return nil
|
|
}
|
|
|
|
func (v *HostVolume) Delete(
|
|
req *cstructs.ClientHostVolumeDeleteRequest,
|
|
resp *cstructs.ClientHostVolumeDeleteResponse) error {
|
|
defer metrics.MeasureSince([]string{"client", "host_volume", "create"}, time.Now())
|
|
ctx, cancelFn := v.requestContext()
|
|
defer cancelFn()
|
|
|
|
_, err := v.c.hostVolumeManager.Delete(ctx, req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
v.c.logger.Info("deleted host volume", "id", req.ID, "path", req.HostPath)
|
|
return nil
|
|
}
|
|
|
|
func (v *HostVolume) requestContext() (context.Context, context.CancelFunc) {
|
|
return context.WithTimeout(context.Background(), hostVolumeRequestTimeout)
|
|
}
|