Skip to content

Commit

Permalink
Update Waypoint agent commands to use new service
Browse files Browse the repository at this point in the history
  • Loading branch information
jfreda committed Feb 11, 2025
1 parent b2db24f commit 7792251
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 89 deletions.
8 changes: 4 additions & 4 deletions internal/commands/waypoint/agent/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ func NewCmdAgent(ctx *cmd.Context) *cmd.Command {
Name: "agent",
ShortHelp: "Run and manage a Waypoint Agent.",
LongHelp: heredoc.New(ctx.IO).Must(`
The {{ template "mdCodeOrBold" "hcp waypoint agent" }} command group lets you
run and manage a local Waypoint agent.
The {{ template "mdCodeOrBold" "hcp waypoint agent" }} command group lets you
run and manage a local Waypoint agent.
Agents are used in conjunction with HCP Waypoint Actions to allow actions to run on your
own systems when initiated from HCP Waypoint.
Agents are used in conjunction with HCP Waypoint Actions to allow actions to run on your
own systems when initiated from HCP Waypoint.
`),
}

Expand Down
18 changes: 7 additions & 11 deletions internal/commands/waypoint/agent/group_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import (
"fmt"

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"

"github.com/hashicorp/hcp/internal/pkg/cmd"
"github.com/hashicorp/hcp/internal/pkg/flagvalue"
"github.com/hashicorp/hcp/internal/pkg/format"
"github.com/hashicorp/hcp/internal/pkg/heredoc"
"github.com/pkg/errors"
)

func NewCmdGroupCreate(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
Expand Down Expand Up @@ -63,20 +63,16 @@ func NewCmdGroupCreate(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
}

func agentGroupCreate(log hclog.Logger, opts *GroupOpts) error {
ns, err := opts.Namespace()
if err != nil {
return errors.Wrapf(err, "Unable to access HCP project")
}

ctx := opts.Ctx

grp := &models.HashicorpCloudWaypointAgentGroup{
Description: opts.Description,
Name: opts.Name,
}
_, err = opts.WS.WaypointServiceCreateAgentGroup(&waypoint_service.WaypointServiceCreateAgentGroupParams{
NamespaceID: ns.ID,
Body: &models.HashicorpCloudWaypointWaypointServiceCreateAgentGroupBody{
_, err := opts.WS2024Client.WaypointServiceCreateAgentGroup(&waypoint_service.WaypointServiceCreateAgentGroupParams{
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceCreateAgentGroupBody{
Group: grp,
},
Context: ctx,
Expand Down
24 changes: 7 additions & 17 deletions internal/commands/waypoint/agent/group_delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import (
"fmt"

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"

"github.com/hashicorp/hcp/internal/pkg/cmd"
"github.com/hashicorp/hcp/internal/pkg/flagvalue"
"github.com/hashicorp/hcp/internal/pkg/heredoc"
"github.com/pkg/errors"
)

func NewCmdGroupDelete(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
Expand Down Expand Up @@ -51,23 +51,13 @@ func NewCmdGroupDelete(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
}

func agentGroupDelete(log hclog.Logger, opts *GroupOpts) error {
resp, err := opts.WS.WaypointServiceGetNamespace(&waypoint_service.WaypointServiceGetNamespaceParams{
LocationOrganizationID: opts.Profile.OrganizationID,
LocationProjectID: opts.Profile.ProjectID,
Context: opts.Ctx,
}, nil)
if err != nil {
return errors.Wrapf(err, "Unable to access HCP project")
}

ns := resp.Payload.Namespace

ctx := opts.Ctx

_, err = opts.WS.WaypointServiceDeleteAgentGroup(&waypoint_service.WaypointServiceDeleteAgentGroupParams{
Name: opts.Name,
NamespaceID: ns.ID,
Context: ctx,
_, err := opts.WS2024Client.WaypointServiceDeleteAgentGroup(&waypoint_service.WaypointServiceDeleteAgentGroupParams{
Name: opts.Name,
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
Context: ctx,
}, nil)

if err != nil {
Expand Down
22 changes: 6 additions & 16 deletions internal/commands/waypoint/agent/group_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import (
"fmt"

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"

"github.com/hashicorp/hcp/internal/pkg/cmd"
"github.com/hashicorp/hcp/internal/pkg/format"
"github.com/hashicorp/hcp/internal/pkg/heredoc"
"github.com/pkg/errors"
)

func NewCmdGroupList(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
Expand Down Expand Up @@ -39,22 +39,12 @@ func NewCmdGroupList(ctx *cmd.Context, opts *GroupOpts) *cmd.Command {
}

func agentGroupList(log hclog.Logger, opts *GroupOpts) error {
resp, err := opts.WS.WaypointServiceGetNamespace(&waypoint_service.WaypointServiceGetNamespaceParams{
LocationOrganizationID: opts.Profile.OrganizationID,
LocationProjectID: opts.Profile.ProjectID,
Context: opts.Ctx,
}, nil)
if err != nil {
return errors.Wrapf(err, "Unable to access HCP project")
}

ns := resp.Payload.Namespace

ctx := opts.Ctx

list, err := opts.WS.WaypointServiceListAgentGroups(&waypoint_service.WaypointServiceListAgentGroupsParams{
NamespaceID: ns.ID,
Context: ctx,
list, err := opts.WS2024Client.WaypointServiceListAgentGroups(&waypoint_service.WaypointServiceListAgentGroupsParams{
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
Context: ctx,
}, nil)

if err != nil {
Expand Down
20 changes: 8 additions & 12 deletions internal/commands/waypoint/agent/queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ import (

"github.com/go-openapi/strfmt"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"

"github.com/hashicorp/hcp/internal/commands/waypoint/opts"
"github.com/hashicorp/hcp/internal/pkg/cmd"
"github.com/hashicorp/hcp/internal/pkg/flagvalue"
"github.com/hashicorp/hcp/internal/pkg/heredoc"
"github.com/pkg/errors"
)

type QueueOpts struct {
Expand Down Expand Up @@ -83,11 +83,6 @@ func NewCmdQueue(ctx *cmd.Context) *cmd.Command {
}

func agentQueue(log hclog.Logger, opts *QueueOpts) error {
ns, err := opts.Namespace()
if err != nil {
return errors.Wrapf(err, "Unable to access HCP project")
}

var body strfmt.Base64

if strings.HasPrefix(opts.Body, "@") {
Expand All @@ -112,17 +107,18 @@ func agentQueue(log hclog.Logger, opts *QueueOpts) error {

ctx := opts.Ctx

_, err = opts.WS.WaypointServiceQueueAgentOperation(&waypoint_service.WaypointServiceQueueAgentOperationParams{
NamespaceID: ns.ID,
Body: &models.HashicorpCloudWaypointWaypointServiceQueueAgentOperationBody{
_, err := opts.WS2024Client.WaypointServiceQueueAgentOperation(&waypoint_service.WaypointServiceQueueAgentOperationParams{
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceQueueAgentOperationBody{
Operation: &models.HashicorpCloudWaypointAgentOperation{
ID: opts.ID,
ActionRunID: opts.ActionRunID,
Body: body,
Group: opts.Group,
},
},
Context: ctx,
Context: ctx,
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
}, nil)

if err != nil {
Expand Down
41 changes: 23 additions & 18 deletions internal/commands/waypoint/agent/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ import (
"time"

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"
"github.com/pkg/errors"

"github.com/hashicorp/hcp/internal/commands/waypoint/opts"
"github.com/hashicorp/hcp/internal/pkg/cmd"
"github.com/hashicorp/hcp/internal/pkg/flagvalue"
"github.com/hashicorp/hcp/internal/pkg/heredoc"
"github.com/hashicorp/hcp/internal/pkg/waypoint/agent"
"github.com/pkg/errors"
)

type RunOpts struct {
Expand Down Expand Up @@ -84,9 +85,10 @@ func agentRun(log hclog.Logger, opts *RunOpts) error {
ctx := opts.Ctx

// check the groups!
resp2, err := opts.WS.WaypointServiceValidateAgentGroups(&waypoint_service.WaypointServiceValidateAgentGroupsParams{
NamespaceID: ns.ID,
Body: &models.HashicorpCloudWaypointWaypointServiceValidateAgentGroupsBody{
resp2, err := opts.WS2024Client.WaypointServiceValidateAgentGroups(&waypoint_service.WaypointServiceValidateAgentGroupsParams{
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceValidateAgentGroupsBody{
Groups: opts.Groups,
},
Context: opts.Ctx,
Expand Down Expand Up @@ -120,12 +122,13 @@ func agentRun(log hclog.Logger, opts *RunOpts) error {
}

for {
opCfg, err := opts.WS.WaypointServiceRetrieveAgentOperation(&waypoint_service.WaypointServiceRetrieveAgentOperationParams{
Body: &models.HashicorpCloudWaypointWaypointServiceRetrieveAgentOperationBody{
opCfg, err := opts.WS2024Client.WaypointServiceRetrieveAgentOperation(&waypoint_service.WaypointServiceRetrieveAgentOperationParams{
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceRetrieveAgentOperationBody{
Groups: opts.Groups,
},
NamespaceID: ns.ID,
Context: ctx,
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
Context: ctx,
}, nil)

if err != nil {
Expand Down Expand Up @@ -164,13 +167,14 @@ func runOp(
if ao.ActionRunID != "" {
log.Info("reporting action run starting")

resp, err := opts.WS.WaypointServiceStartingAction(&waypoint_service.WaypointServiceStartingActionParams{
NamespaceID: ns,
Body: &models.HashicorpCloudWaypointWaypointServiceStartingActionBody{
resp, err := opts.WS2024Client.WaypointServiceStartingAction(&waypoint_service.WaypointServiceStartingActionParams{
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceStartingActionBody{
ActionRunID: ao.ActionRunID,
GroupName: ao.Group,
},
Context: ctx,
Context: ctx,
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
}, nil)

if err != nil {
Expand All @@ -183,14 +187,15 @@ func runOp(
defer func() {
log.Info("reporting action run ended", "status", status, "status-code", statusCode, "action-run-sequence", sequenceNum)

_, err = opts.WS.WaypointServiceEndingAction(&waypoint_service.WaypointServiceEndingActionParams{
NamespaceID: ns,
Body: &models.HashicorpCloudWaypointWaypointServiceEndingActionBody{
_, err = opts.WS2024Client.WaypointServiceEndingAction(&waypoint_service.WaypointServiceEndingActionParams{
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceEndingActionBody{
ActionRunID: resp.Payload.ActionRunID,
FinalStatus: status,
StatusCode: int32(statusCode),
},
Context: ctx,
Context: ctx,
NamespaceLocationOrganizationID: opts.Profile.OrganizationID,
NamespaceLocationProjectID: opts.Profile.ProjectID,
}, nil)

if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion internal/pkg/waypoint/agent/execute.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"
"github.com/pkg/errors"
"github.com/zclconf/go-cty/cty"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/pkg/waypoint/agent/execute_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"testing"

"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"
"github.com/stretchr/testify/require"
)

Expand Down
20 changes: 11 additions & 9 deletions internal/pkg/waypoint/agent/status_operation.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ import (

"github.com/go-openapi/strfmt"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2023-08-18/models"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/client/waypoint_service"
"github.com/hashicorp/hcp-sdk-go/clients/cloud-waypoint-service/preview/2024-11-22/models"
)

type StatusOperation struct {
wp waypoint_service.ClientService

namespace string
cfgID string
runID string
orgID string
projID string
cfgID string
runID string

Message string
Values map[string]string
Expand All @@ -27,11 +28,12 @@ type StatusOperation struct {

func (s *StatusOperation) Run(ctx context.Context, log hclog.Logger) (OperationStatus, error) {
ret, err := s.wp.WaypointServiceSendStatusLog(&waypoint_service.WaypointServiceSendStatusLogParams{
ActionConfigID: s.cfgID,
ActionRunSeq: s.runID,
NamespaceID: s.namespace,
ActionConfigID: s.cfgID,
ActionRunSeq: s.runID,
NamespaceLocationOrganizationID: s.orgID,
NamespaceLocationProjectID: s.projID,

Body: &models.HashicorpCloudWaypointWaypointServiceSendStatusLogBody{
Body: &models.HashicorpCloudWaypointV20241122WaypointServiceSendStatusLogBody{
StatusLog: &models.HashicorpCloudWaypointStatusLog{
EmittedAt: strfmt.DateTime(time.Now()),
Log: s.Message,
Expand Down

0 comments on commit 7792251

Please sign in to comment.