func LoadAzurermDependencies()

in dependency/azurerm.go [14:59]


func LoadAzurermDependencies() []Dependency {
	azurermMutex.Lock()
	defer azurermMutex.Unlock()
	if len(azurermDeps) != 0 {
		return azurermDeps
	}

	mappingJsonLoader := azurerm.MappingJsonDependencyLoader{}
	hardcodeLoader := azurerm.HardcodeDependencyLoader{}

	depsMap := make(map[string]azurerm.Mapping)
	if temp, err := mappingJsonLoader.Load(); err == nil {
		for _, dep := range temp {
			depsMap[dep.ResourceType] = dep
		}
	}
	if temp, err := hardcodeLoader.Load(); err == nil {
		for _, dep := range temp {
			depsMap[dep.ResourceType] = dep
		}
	}

	deps := make([]azurerm.Mapping, 0)
	for _, dep := range depsMap {
		deps = append(deps, dep)
	}

	azurermDeps = make([]Dependency, 0)
	for _, dep := range deps {
		startStr := "providers/"
		index := strings.LastIndex(dep.IdPattern, startStr)
		if index == -1 {
			continue
		}
		azureResourceType := dep.IdPattern[index+len(startStr):]
		azurermDeps = append(azurermDeps, Dependency{
			AzureResourceType:    azureResourceType,
			ExampleConfiguration: dep.ExampleConfiguration,
			ResourceKind:         "resource",
			ReferredProperty:     "id",
			ResourceName:         dep.ResourceType,
			ResourceLabel:        "",
		})
	}
	return azurermDeps
}