internal/getproviders: Stub NetworkMirrorSource
This is a placeholder for later implementation of a mirror source that talks to a particular remote HTTP server and expects it to implement the provider mirror protocol.
This commit is contained in:
parent
2c535d829d
commit
c5bd783eba
|
@ -0,0 +1,39 @@
|
|||
package getproviders
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
svchost "github.com/hashicorp/terraform-svchost"
|
||||
|
||||
"github.com/hashicorp/terraform/addrs"
|
||||
)
|
||||
|
||||
// NetworkMirrorSource is a source that reads providers and their metadata
|
||||
// from an HTTP server implementing the Terraform network mirror protocol.
|
||||
type NetworkMirrorSource struct {
|
||||
host svchost.Hostname
|
||||
}
|
||||
|
||||
var _ Source = (*NetworkMirrorSource)(nil)
|
||||
|
||||
// NewNetworkMirrorSource constructs and returns a new network-based
|
||||
// mirror source that will expect to find a mirror service on the given
|
||||
// host.
|
||||
func NewNetworkMirrorSource(host svchost.Hostname) *NetworkMirrorSource {
|
||||
return &NetworkMirrorSource{
|
||||
host: host,
|
||||
}
|
||||
}
|
||||
|
||||
// AvailableVersions retrieves the available versions for the given provider
|
||||
// from the network mirror.
|
||||
func (s *NetworkMirrorSource) AvailableVersions(provider addrs.Provider) (VersionList, error) {
|
||||
return nil, fmt.Errorf("Network provider mirror is not supported in this version of Terraform")
|
||||
}
|
||||
|
||||
// PackageMeta checks to see if the network mirror contains a copy of the
|
||||
// distribution package for the given provider version on the given target,
|
||||
// and returns the metadata about it if so.
|
||||
func (s *NetworkMirrorSource) PackageMeta(provider addrs.Provider, version Version, target Platform) (PackageMeta, error) {
|
||||
return PackageMeta{}, fmt.Errorf("Network provider mirror is not supported in this version of Terraform")
|
||||
}
|
Loading…
Reference in New Issue