in pkg/mock/dynamic/dynamic.go [59:85]
func RegisterHandlers(config cfg.Config) {
pathValues := reflect.ValueOf(config.Dynamic.Paths)
dyValues := reflect.ValueOf(config.Dynamic.Values)
// Iterate over fields in config.Dynamic.Paths to
// determine intersections with config.Dynamic.Values.
// Intersections represent which paths and values to bind.
for i := 0; i < pathValues.NumField(); i++ {
pathFieldName := pathValues.Type().Field(i).Name
dyValueFieldName := dyValues.FieldByName(pathFieldName)
if dyValueFieldName.IsValid() {
path := pathValues.Field(i).Interface().(string)
value := dyValueFieldName.Interface()
if path != "" && value != nil {
// Ex: "/latest/dynamic/instance-identity/document"
supportedPaths[path] = value
if config.Imdsv2Required {
server.HandleFunc(path, imdsv2.ValidateToken(Handler))
} else {
server.HandleFunc(path, Handler)
}
} else {
log.Printf("There was an issue registering path %v with dyValue: %v", path, value)
}
}
}
}