func AppendTemplateNetworkInterfaces()

in pkg/table/table.go [121:171]


func AppendTemplateNetworkInterfaces(h *ec2helper.EC2Helper, data [][]string,
	networkInterfaces []*ec2.LaunchTemplateInstanceNetworkInterfaceSpecification) ([][]string, error) {
	if networkInterfaces != nil && len(networkInterfaces) > 0 {
		subnetsMap := map[string]string{}

		// Gather information about subnets
		for _, networkInterface := range networkInterfaces {
			if networkInterface.SubnetId != nil {
				subnet, err := h.GetSubnetById(*networkInterface.SubnetId)
				if err != nil {
					return nil, err
				}

				// Format the name of the subnet
				vpcId := *subnet.VpcId
				subnetName := fmt.Sprintf("%s:%s", vpcId, *subnet.SubnetId)
				subnetTagName := ec2helper.GetTagName(subnet.Tags)
				if subnetTagName != nil {
					subnetName = fmt.Sprintf("%s(%s:%s)", *subnetTagName, vpcId, *subnet.SubnetId)
				}

				subnetsMap[*subnet.SubnetId] = subnetName
			}
		}

		if len(subnetsMap) > 0 {
			// Append to the table
			subnetsData := [][]string{}
			counter := 1

			// Sort the keys
			var keys []string
			for k := range subnetsMap {
				keys = append(keys, k)
			}
			sort.Strings(keys)

			for _, key := range keys {
				subnetsData = append(subnetsData, []string{"", fmt.Sprintf("%d.%s", counter, subnetsMap[key])})
				counter++
			}
			subnetsData[0][0] = "Subnets"
			data = append(data, subnetsData...)
			return data, nil
		}
	}

	data = append(data, []string{"Subnets", "not specified"})

	return data, nil
}