Remove unused code
This commit is contained in:
parent
29c6d43cb8
commit
d1ea9b5ec7
@ -1,84 +0,0 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/vagrant-plugin-sdk/core"
|
||||
)
|
||||
|
||||
const VagrantCloudUrl = "http://app.vagrantup.com"
|
||||
|
||||
func downloadBox(url string, destination string) (err error) {
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
out, err := os.Create(destination)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
return
|
||||
}
|
||||
|
||||
func constructMetadataUrl(username, boxname string) string {
|
||||
url := VagrantCloudUrl + "/" + username + "/boxes/" + boxname + ".json"
|
||||
return url
|
||||
}
|
||||
|
||||
func addBox(name, provider string, basis *Basis) (box *Box, err error) {
|
||||
// Assume the name is of for <user>/<box>
|
||||
s := strings.Split(name, "/")
|
||||
metadataUrl := constructMetadataUrl(s[0], s[1])
|
||||
|
||||
// Download the metadata
|
||||
resp, err := http.Get(metadataUrl)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
raw, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
metadata, err := LoadBoxMetadata(raw)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
versions, _ := metadata.ListVersions(&core.BoxProvider{Name: provider})
|
||||
// latest version is first
|
||||
version, _ := metadata.Version(versions[0], &core.BoxProvider{Name: provider})
|
||||
providerMeta, err := metadata.Provider(version.Version, provider)
|
||||
downloadUrl := providerMeta.Url
|
||||
|
||||
boxTempName := s[0] + "-" + s[1] + "-" + strconv.FormatInt(time.Now().Unix(), 10) + ".box"
|
||||
boxDownloadPath := filepath.Join(basis.dir.TempDir().String(), boxTempName)
|
||||
|
||||
// Download the box
|
||||
err = downloadBox(downloadUrl, boxDownloadPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Delete the downloaded file when done
|
||||
defer os.RemoveAll(boxDownloadPath)
|
||||
|
||||
// Add the box to the box collection
|
||||
boxes, _ := basis.Boxes()
|
||||
returnBox, err := boxes.Add(boxDownloadPath, name, version.Version, metadataUrl, false, provider)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
returnBox.(*Box).Save()
|
||||
return returnBox.(*Box), nil
|
||||
}
|
||||
@ -143,50 +143,61 @@ func TestVersionGetProvider(t *testing.T) {
|
||||
func TestProviderMatches(t *testing.T) {
|
||||
version := "1.2.3"
|
||||
providerName := "virtualbox"
|
||||
metadata, provider := loadProvider(t, []byte(rawMetadata), version, providerName)
|
||||
|
||||
matches, err := metadata.Matches(version, provider.Name, &core.BoxProvider{Name: "virtualbox"})
|
||||
metadata, err := LoadBoxMetadata([]byte(rawMetadata))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
matches, err := metadata.Matches(version, providerName, &core.BoxProvider{Name: "virtualbox"})
|
||||
require.True(t, matches)
|
||||
require.NoError(t, err)
|
||||
|
||||
matches, err = metadata.Matches(version, provider.Name, &core.BoxProvider{Url: "http://doesnotexist"})
|
||||
matches, err = metadata.Matches(version, providerName, &core.BoxProvider{Url: "http://doesnotexist"})
|
||||
require.True(t, matches)
|
||||
require.NoError(t, err)
|
||||
|
||||
matches, err = metadata.Matches(version, provider.Name, &core.BoxProvider{})
|
||||
matches, err = metadata.Matches(version, providerName, &core.BoxProvider{})
|
||||
require.True(t, matches)
|
||||
require.NoError(t, err)
|
||||
|
||||
matches, err = metadata.Matches(version, provider.Name, &core.BoxProvider{Name: "virtualbox", Url: "http://doesnotexist"})
|
||||
matches, err = metadata.Matches(version, providerName, &core.BoxProvider{Name: "virtualbox", Url: "http://doesnotexist"})
|
||||
require.True(t, matches)
|
||||
require.NoError(t, err)
|
||||
|
||||
matches, err = metadata.Matches(version, provider.Name, &core.BoxProvider{Name: "nope", Url: "http://doesnotexist"})
|
||||
matches, err = metadata.Matches(version, providerName, &core.BoxProvider{Name: "nope", Url: "http://doesnotexist"})
|
||||
require.False(t, matches)
|
||||
require.NoError(t, err)
|
||||
|
||||
matches, err = metadata.Matches(version, provider.Name, &core.BoxProvider{Name: "vmware"})
|
||||
matches, err = metadata.Matches(version, providerName, &core.BoxProvider{Name: "vmware"})
|
||||
require.False(t, matches)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestProviderMatchesAny(t *testing.T) {
|
||||
metadata, provider := loadProvider(t, []byte(rawMetadata), "1.2.3", "virtualbox")
|
||||
m, err := metadata.MatchesAny(provider.Version.Version, provider.Name, &core.BoxProvider{Name: "virtualbox"})
|
||||
version := "1.2.3"
|
||||
providerName := "virtualbox"
|
||||
|
||||
metadata, err := LoadBoxMetadata([]byte(rawMetadata))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
m, err := metadata.MatchesAny(version, providerName, &core.BoxProvider{Name: "virtualbox"})
|
||||
require.True(t, m)
|
||||
require.NoError(t, err)
|
||||
|
||||
m, err = metadata.MatchesAny(provider.Version.Version, provider.Name,
|
||||
m, err = metadata.MatchesAny(version, providerName,
|
||||
&core.BoxProvider{Name: "virtualbox"}, &core.BoxProvider{Name: "nope"})
|
||||
require.True(t, m)
|
||||
require.NoError(t, err)
|
||||
|
||||
m, err = metadata.MatchesAny(provider.Version.Version, provider.Name,
|
||||
m, err = metadata.MatchesAny(version, providerName,
|
||||
&core.BoxProvider{Url: "nope"}, &core.BoxProvider{Name: "nope"})
|
||||
require.False(t, m)
|
||||
require.NoError(t, err)
|
||||
|
||||
m, err = metadata.MatchesAny(provider.Version.Version, provider.Name)
|
||||
m, err = metadata.MatchesAny(version, providerName)
|
||||
require.False(t, m)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user