Skip to content

Commit

Permalink
Merge pull request #911 from titanventura/develop
Browse files Browse the repository at this point in the history
fix(814) Add instance disks resource to linode
  • Loading branch information
mlabouardy authored Sep 12, 2023
2 parents 74f6eb7 + 0be08f0 commit df7e197
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 12 deletions.
41 changes: 32 additions & 9 deletions providers/linode/compute/instances.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ import (
"github.com/tailwarden/komiser/providers"
)

type LinodeInstance struct {
Instance *linodego.Instance
}
func LinodeInstancesAndInstanceDisks(ctx context.Context, client providers.ProviderClient) ([]Resource, error) {
linodeInstances, err := client.LinodeClient.ListInstances(ctx, &linodego.ListOptions{
PageOptions: &linodego.PageOptions{},
PageSize: 0,
Filter: "",
})
if err != nil {
return nil, err
}

func Linodes(ctx context.Context, client providers.ProviderClient, linodeInstances []LinodeInstance) ([]Resource, error) {
resources := make([]Resource, 0)

for _, linodeInstance := range linodeInstances {
instance := linodeInstance.Instance
for _, instance := range linodeInstances {

tags := make([]Tag, 0)
for _, tag := range instance.Tags {
Expand All @@ -43,7 +46,7 @@ func Linodes(ctx context.Context, client providers.ProviderClient, linodeInstanc
resources = append(resources, models.Resource{
Provider: "Linode",
Account: client.Name,
Service: "Linode",
Service: "Linode Instance",
Region: instance.Region,
ResourceId: fmt.Sprintf("%d", instance.ID),
Cost: 0,
Expand All @@ -53,12 +56,32 @@ func Linodes(ctx context.Context, client providers.ProviderClient, linodeInstanc
Tags: tags,
Link: fmt.Sprintf("https://cloud.linode.com/linodes/%d", instance.ID),
})

instanceDisks, err := client.LinodeClient.ListInstanceDisks(ctx, instance.ID, &linodego.ListOptions{})
if err != nil {
return resources, err
}

for _, disk := range instanceDisks {
resources = append(resources, models.Resource{
Provider: "Linode",
Account: client.Name,
Service: "Linode Instance Disk",
Region: instance.Region,
ResourceId: fmt.Sprintf("%d", disk.ID),
Cost: 0,
Name: disk.Label,
FetchedAt: time.Now(),
CreatedAt: *disk.Created,
Link: fmt.Sprintf("https://cloud.linode.com/linodes/%d/storage", instance.ID),
})
}
}

log.WithFields(log.Fields{
"provider": "Linode",
"account": client.Name,
"service": "Linode",
"service": "Linode Instance and Instance Disk",
"resources": len(resources),
}).Info("Fetched resources")
return resources, nil
Expand Down
6 changes: 3 additions & 3 deletions providers/linode/linode.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ import (
"log"

"github.com/sirupsen/logrus"
"github.com/tailwarden/komiser/providers/linode/networking"
"github.com/tailwarden/komiser/utils"

"github.com/tailwarden/komiser/providers"
"github.com/tailwarden/komiser/providers/linode/compute"
"github.com/tailwarden/komiser/providers/linode/sql"
"github.com/tailwarden/komiser/providers/linode/networking"
"github.com/tailwarden/komiser/providers/linode/postgres"
"github.com/tailwarden/komiser/providers/linode/sql"
"github.com/tailwarden/komiser/providers/linode/storage"
"github.com/uptrace/bun"
)

func listOfSupportedServices() []providers.FetchDataFunction {
return []providers.FetchDataFunction{
// compute.Linodes,
compute.LinodeInstancesAndInstanceDisks,
compute.LKEClusters,
storage.Volumes,
storage.Databases,
Expand Down

0 comments on commit df7e197

Please sign in to comment.