Skip to content

Commit

Permalink
Update the same for status column
Browse files Browse the repository at this point in the history
  • Loading branch information
ParthaI committed Nov 27, 2024
1 parent 14ed613 commit fef21d8
Showing 1 changed file with 37 additions and 9 deletions.
46 changes: 37 additions & 9 deletions azure/table_azure_compute_availability_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,15 @@ func tableAzureComputeAvailabilitySet(_ context.Context) *plugin.Table {
Name: "status",
Description: "The resource status information",
Type: proto.ColumnType_JSON,
Transform: transform.FromField("AvailabilitySetProperties.Statuses"),
Hydrate: getAzureComputeAvailabilitySet,
Transform: transform.From(extractStatusForAvailabilitySet),
},
{
Name: "virtual_machines",
Description: "A list of references to all virtual machines in the availability set",
Type: proto.ColumnType_JSON,
Hydrate: getAzureComputeAvailabilitySet,
Transform: transform.From(extractVirtualMechinesForScaleset),
Transform: transform.From(extractVirtualMachinesForAvailabilitySet),
},

// Steampipe standard columns
Expand Down Expand Up @@ -178,10 +179,10 @@ func listAzureComputeAvailabilitySets(ctx context.Context, d *plugin.QueryData,

func getAzureComputeAvailabilitySet(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) {
resourceGroup, name := "", ""

name = d.EqualsQuals["name"].GetStringValue()
resourceGroup = d.EqualsQuals["resource_group"].GetStringValue()

if h.Item != nil {
availabilitySet := h.Item.(compute.AvailabilitySet)
id := availabilitySet.ID
Expand Down Expand Up @@ -218,13 +219,12 @@ func getAzureComputeAvailabilitySet(ctx context.Context, d *plugin.QueryData, h

//// UTILITY FUNCTION

func extractVirtualMechinesForScaleset(ctx context.Context, d *transform.TransformData) (interface{}, error) {
scalSet := d.HydrateItem.(compute.AvailabilitySet)
func extractVirtualMachinesForAvailabilitySet(_ context.Context, d *transform.TransformData) (interface{}, error) {
availabilitySet := d.HydrateItem.(compute.AvailabilitySet)
var properties []map[string]interface{}
// AvailabilitySetProperties.VirtualMachines

if scalSet.VirtualMachines != nil {
vmProperies := scalSet.AvailabilitySetProperties
if availabilitySet.AvailabilitySetProperties != nil && availabilitySet.AvailabilitySetProperties.VirtualMachines != nil {
vmProperies := availabilitySet.AvailabilitySetProperties
for _, i := range *vmProperies.VirtualMachines {
objectMap := make(map[string]interface{})
if i.ID != nil {
Expand All @@ -236,3 +236,31 @@ func extractVirtualMechinesForScaleset(ctx context.Context, d *transform.Transfo

return properties, nil
}

func extractStatusForAvailabilitySet(_ context.Context, d *transform.TransformData) (interface{}, error) {
availabilitySet := d.HydrateItem.(compute.AvailabilitySet)
var properties []map[string]interface{}

if availabilitySet.AvailabilitySetProperties != nil && availabilitySet.AvailabilitySetProperties.Statuses != nil {
vmProperies := availabilitySet.AvailabilitySetProperties
for _, i := range *vmProperies.Statuses {
objectMap := make(map[string]interface{})
if i.Code != nil {
objectMap["code"] = i.Code
}
if i.DisplayStatus != nil {
objectMap["displayStatus"] = i.DisplayStatus
}
if i.Level != "" {
objectMap["level"] = i.Level
}
if i.Message != nil {
objectMap["message"] = i.Message
}

properties = append(properties, objectMap)
}
}

return properties, nil
}

0 comments on commit fef21d8

Please sign in to comment.