Beispiel #1
0
// implemented as :
// dev deploy instance package
// TODO: Add flags for max time, etc
func deployRun(args []string) (err error) {

	if len(args) < 1 {
		err = lib.Error("Not enough arguments for deploy!")
		return
	}

	instanceName := args[0]
	packageName := ""

	if len(args) == 1 {
		packageName = "default"
	} else if len(args) == 2 {
		packageName = args[1]
	}

	instance, err := lib.GetInstanceByName(instanceName)

	if err != nil {
		return
	}

	pkg, err := lib.ImportPackage(packageName)

	if err != nil {
		return
	}

	contents, err := pkg.ZipPackageIntoBytes()

	if err != nil {
		return
	}

	err = lib.TryLogIn(&instance)

	if err != nil {
		return
	}

	id, err := lib.TryDeploy(contents, instance)

	if err != nil {
		return
	}

	finished := false
	maxTime := int(time.Minute * 5)
	currentTime := 0

	for !finished {
		sleepTime := int(3 * time.Second)
		currentTime += sleepTime

		if currentTime <= maxTime {
			time.Sleep(time.Duration(sleepTime))
			finished = lib.CheckAsyncDeploy(id, instance)
		} else {
			return lib.Error("Job exceeded maximum time!")
		}
	}

	return
}
Beispiel #2
0
// pull <pkg> <instance>
// puull <instance>
func pullRun(args []string) (err error) {

	if len(args) < 1 {
		return lib.Error("Not enough arguments for pull!")
	}

	instance, err := lib.GetInstanceByName(args[0])

	if err != nil {
		return
	}

	var packageName string

	if len(args) == 1 {
		packageName = "default"
	} else {
		packageName = args[1]
	}

	pkg, err := lib.ImportPackage(packageName)

	if err != nil {
		return
	}

	err = lib.TryLogIn(&instance)

	if err != nil {
		return
	}

	id, err := lib.TryRetrieve(pkg, instance)

	if err != nil {
		return
	}

	finished := false
	contents := []byte("")
	maxTime := int(time.Minute * 5)
	currentTime := 0

	for !finished {
		sleepTime := int(3 * time.Second)
		currentTime += sleepTime

		if currentTime <= maxTime {
			time.Sleep(time.Duration(sleepTime))
			finished, contents = lib.CheckAsyncRetrieve(id, instance)
		} else {
			return lib.Error("Job exceeded maximum time!")
		}
	}

	err = writePulledFiles(contents)

	if err != nil {
		return
	}

	return
}