mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
chore: move proto to sdk conversion to agentsdk (#11831)
`agentsdk` depends on `agent/proto` because it needs to get the version to dial. Therefore, the conversion routines need to live in `agentsdk` so that we can convert to and from the Manifest. I briefly considered refactoring the agent to only reference `proto.Manifest`, but decided against it because we might have multiple protocol versions in the future, its useful to have a protocol-independent data structure.
This commit is contained in:
@ -179,60 +179,16 @@ func (api *API) workspaceAgentManifest(rw http.ResponseWriter, r *http.Request)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
apps, err := agentproto.SDKAppsFromProto(manifest.Apps)
|
||||
sdkManifest, err := agentsdk.ManifestFromProto(manifest)
|
||||
if err != nil {
|
||||
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
|
||||
Message: "Internal error converting workspace agent apps.",
|
||||
Message: "Internal error converting manifest.",
|
||||
Detail: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
scripts, err := agentproto.SDKAgentScriptsFromProto(manifest.Scripts)
|
||||
if err != nil {
|
||||
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
|
||||
Message: "Internal error converting workspace agent scripts.",
|
||||
Detail: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
agentID, err := uuid.FromBytes(manifest.AgentId)
|
||||
if err != nil {
|
||||
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
|
||||
Message: "Internal error converting workspace agent ID.",
|
||||
Detail: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
workspaceID, err := uuid.FromBytes(manifest.WorkspaceId)
|
||||
if err != nil {
|
||||
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
|
||||
Message: "Internal error converting workspace ID.",
|
||||
Detail: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
httpapi.Write(ctx, rw, http.StatusOK, agentsdk.Manifest{
|
||||
AgentID: agentID,
|
||||
AgentName: manifest.AgentName,
|
||||
OwnerName: manifest.OwnerUsername,
|
||||
WorkspaceID: workspaceID,
|
||||
WorkspaceName: manifest.WorkspaceName,
|
||||
Apps: apps,
|
||||
Scripts: scripts,
|
||||
DERPMap: tailnet.DERPMapFromProto(manifest.DerpMap),
|
||||
DERPForceWebSockets: manifest.DerpForceWebsockets,
|
||||
GitAuthConfigs: int(manifest.GitAuthConfigs),
|
||||
EnvironmentVariables: manifest.EnvironmentVariables,
|
||||
Directory: manifest.Directory,
|
||||
VSCodePortProxyURI: manifest.VsCodePortProxyUri,
|
||||
MOTDFile: manifest.MotdPath,
|
||||
DisableDirectConnections: manifest.DisableDirectConnections,
|
||||
Metadata: agentproto.SDKAgentMetadataDescriptionsFromProto(manifest.Metadata),
|
||||
})
|
||||
httpapi.Write(ctx, rw, http.StatusOK, sdkManifest)
|
||||
}
|
||||
|
||||
const AgentAPIVersionREST = "1.0"
|
||||
|
Reference in New Issue
Block a user