@@ -698,27 +698,45 @@ func ConvertWorkspaceProxy(proxy database.WorkspaceProxy) WorkspaceProxy {
698
698
}
699
699
}
700
700
701
+ func ConvertExternalProvisioner (id uuid.UUID , tags map [string ]string , provisioners []database.ProvisionerType ) ExternalProvisioner {
702
+ tagsCopy := make (map [string ]string , len (tags ))
703
+ for k , v := range tags {
704
+ tagsCopy [k ] = v
705
+ }
706
+ strProvisioners := make ([]string , 0 , len (provisioners ))
707
+ for _ , prov := range provisioners {
708
+ strProvisioners = append (strProvisioners , string (prov ))
709
+ }
710
+ return ExternalProvisioner {
711
+ ID : id .String (),
712
+ Tags : tagsCopy ,
713
+ Provisioners : strProvisioners ,
714
+ StartedAt : time .Now (),
715
+ }
716
+ }
717
+
701
718
// Snapshot represents a point-in-time anonymized database dump.
702
719
// Data is aggregated by latest on the server-side, so partial data
703
720
// can be sent without issue.
704
721
type Snapshot struct {
705
722
DeploymentID string `json:"deployment_id"`
706
723
707
724
APIKeys []APIKey `json:"api_keys"`
708
- ProvisionerJobs []ProvisionerJob `json:"provisioner_jobs"`
725
+ CLIInvocations []clitelemetry.Invocation `json:"cli_invocations"`
726
+ ExternalProvisioners []ExternalProvisioner `json:"external_provisioners"`
709
727
Licenses []License `json:"licenses"`
710
- Templates [] Template `json:"templates "`
728
+ ProvisionerJobs [] ProvisionerJob `json:"provisioner_jobs "`
711
729
TemplateVersions []TemplateVersion `json:"template_versions"`
730
+ Templates []Template `json:"templates"`
712
731
Users []User `json:"users"`
713
- Workspaces []Workspace `json:"workspaces"`
714
- WorkspaceApps []WorkspaceApp `json:"workspace_apps"`
715
- WorkspaceAgents []WorkspaceAgent `json:"workspace_agents"`
716
732
WorkspaceAgentStats []WorkspaceAgentStat `json:"workspace_agent_stats"`
733
+ WorkspaceAgents []WorkspaceAgent `json:"workspace_agents"`
734
+ WorkspaceApps []WorkspaceApp `json:"workspace_apps"`
717
735
WorkspaceBuilds []WorkspaceBuild `json:"workspace_build"`
718
- WorkspaceResources []WorkspaceResource `json:"workspace_resources"`
719
- WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`
720
736
WorkspaceProxies []WorkspaceProxy `json:"workspace_proxies"`
721
- CLIInvocations []clitelemetry.Invocation `json:"cli_invocations"`
737
+ WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`
738
+ WorkspaceResources []WorkspaceResource `json:"workspace_resources"`
739
+ Workspaces []Workspace `json:"workspaces"`
722
740
}
723
741
724
742
// Deployment contains information about the host running Coder.
@@ -900,6 +918,14 @@ type WorkspaceProxy struct {
900
918
UpdatedAt time.Time `json:"updated_at"`
901
919
}
902
920
921
+ type ExternalProvisioner struct {
922
+ ID string `json:"id"`
923
+ Tags map [string ]string `json:"tags"`
924
+ Provisioners []string `json:"provisioners"`
925
+ StartedAt time.Time `json:"started_at"`
926
+ ShutdownAt * time.Time `json:"shutdown_at"`
927
+ }
928
+
903
929
type noopReporter struct {}
904
930
905
931
func (* noopReporter ) Report (_ * Snapshot ) {}
0 commit comments