예제 #1
0
파일: main.go 프로젝트: joshie/lochness
func subnetsDel(cmd *cobra.Command, args []string) {
	c := cli.NewClient(server)
	if len(args) == 0 {
		args = cli.Read(os.Stdin)
	}
	if len(args)%2 != 0 {
		log.WithField("num", len(args)).Fatal("expected an even amount of args")
	}

	for i := 0; i < len(args); i += 2 {
		hv := args[i]
		cli.AssertID(hv)
		subnet := args[i+1]
		cli.AssertID(subnet)

		deleted := deleteSubnet(c, hv, subnet)
		deleted.Print(jsonout)
	}
}
예제 #2
0
파일: main.go 프로젝트: joshie/lochness
func job(cmd *cobra.Command, ids []string) {
	c := cli.NewClient(server)
	if len(ids) == 0 {
		ids = cli.Read(os.Stdin)
	}

	for _, id := range ids {
		cli.AssertID(id)
		job := getJob(c, id)
		job.Print(jsonout)
	}
}
예제 #3
0
파일: main.go 프로젝트: joshie/lochness
func del(cmd *cobra.Command, ids []string) {
	c := cli.NewClient(server)
	if len(ids) == 0 {
		ids = cli.Read(os.Stdin)
	}

	for _, id := range ids {
		cli.AssertID(id)
		j := deleteGuest(c, id)
		j.Print(jsonout)
	}
}
예제 #4
0
파일: main.go 프로젝트: joshie/lochness
func del(cmd *cobra.Command, ids []string) {
	c := cli.NewClient(getServerURL())
	if len(ids) == 0 {
		ids = cli.Read(os.Stdin)
	}

	for _, id := range ids {
		cli.AssertID(id)
		image, _ := c.Delete("image", "images/"+id)
		cli.JMap(image).Print(jsonout)
	}
}
예제 #5
0
파일: main.go 프로젝트: joshie/lochness
func generateActionHandler(action string) func(*cobra.Command, []string) {
	return func(cmd *cobra.Command, ids []string) {
		c := cli.NewClient(server)
		if len(ids) == 0 {
			ids = cli.Read(os.Stdin)
		}

		for _, id := range ids {
			cli.AssertID(id)
			j := guestAction(c, id, action)
			j.Print(jsonout)
		}
	}
}
예제 #6
0
파일: main.go 프로젝트: joshie/lochness
func modify(cmd *cobra.Command, args []string) {
	c := cli.NewClient(server)
	if len(args) == 0 {
		args = cli.Read(os.Stdin)
	}
	if len(args)%2 != 0 {
		log.WithField("num", len(args)).Fatal("expected an even number of args")
	}

	for i := 0; i < len(args); i += 2 {
		id := args[i]
		cli.AssertID(id)
		spec := args[i+1]
		cli.AssertSpec(spec)

		guest := modifyGuest(c, id, spec)
		guest.Print(jsonout)
	}
}
예제 #7
0
파일: main.go 프로젝트: joshie/lochness
func subnetsModify(cmd *cobra.Command, args []string) {
	c := cli.NewClient(server)
	if len(args) == 0 {
		args = cli.Read(os.Stdin)
	}
	if len(args)%2 != 0 {
		log.WithField("num", len(args)).Fatal("expected an even amount of args")
	}

	for i := 0; i < len(args); i += 2 {
		id := args[i]
		cli.AssertID(id)
		spec := args[i+1]
		cli.AssertSpec(spec)

		subnet := modifySubnets(c, id, spec)
		printTreeMap(id, "subnet", subnet)
	}
}
예제 #8
0
파일: main.go 프로젝트: joshie/lochness
func list(cmd *cobra.Command, args []string) {
	c := cli.NewClient(server)
	guests := []cli.JMap{}
	if len(args) == 0 {
		if termutil.Isatty(os.Stdin.Fd()) {
			guests = getGuests(c)
			sort.Sort(cli.JMapSlice(guests))
		} else {
			args = cli.Read(os.Stdin)
		}
	}
	if len(guests) == 0 {
		for _, id := range args {
			cli.AssertID(id)
			guests = append(guests, getGuest(c, id))
		}
	}

	for _, guest := range guests {
		guest.Print(jsonout)
	}
}
예제 #9
0
파일: main.go 프로젝트: joshie/lochness
func subnets(cmd *cobra.Command, ids []string) {
	c := cli.NewClient(server)
	if len(ids) == 0 {
		if termutil.Isatty(os.Stdin.Fd()) {
			for _, hv := range getHVs(c) {
				ids = append(ids, hv["id"].(string))
			}
		} else {
			ids = cli.Read(os.Stdin)
			sort.Strings(ids)
		}
	} else {
		for _, id := range ids {
			cli.AssertID(id)
		}
	}

	for _, id := range ids {
		subnet, _ := c.Get("subnet", "hypervisors/"+id+"/subnets")
		printTreeMap(id, "subnet", subnet)
	}
}
예제 #10
0
파일: main.go 프로젝트: joshie/lochness
func guests(cmd *cobra.Command, ids []string) {
	c := cli.NewClient(server)
	if len(ids) == 0 {
		if termutil.Isatty(os.Stdin.Fd()) {
			for _, hv := range getHVs(c) {
				ids = append(ids, hv["id"].(string))
			}
		} else {
			ids = cli.Read(os.Stdin)
			sort.Strings(ids)
		}
	} else {
		for _, id := range ids {
			cli.AssertID(id)
		}
	}

	for _, id := range ids {
		guests := getGuests(c, id)
		printTreeSlice(id, "guests", guests)
	}
}
예제 #11
0
파일: main.go 프로젝트: joshie/lochness
func list(cmd *cobra.Command, args []string) {
	c := cli.NewClient(server)
	hvs := []cli.JMap{}
	if len(args) == 0 {
		if termutil.Isatty(os.Stdin.Fd()) {
			hvs = getHVs(c)
			sort.Sort(cli.JMapSlice(hvs))
		} else {
			args = cli.Read(os.Stdin)
		}
	}
	if len(hvs) == 0 {
		for _, id := range args {
			cli.AssertID(id)
			hvs = append(hvs, getHV(c, id))
		}
	}

	for _, hv := range hvs {
		hv.Print(jsonout)
	}
}
예제 #12
0
파일: main.go 프로젝트: joshie/lochness
func list(cmd *cobra.Command, args []string) {
	c := cli.NewClient(getServerURL())
	images := []cli.JMap{}
	if len(args) == 0 {
		if termutil.Isatty(os.Stdin.Fd()) {
			images = getImages(c)
			sort.Sort(cli.JMapSlice(images))
		} else {
			args = cli.Read(os.Stdin)
		}
	}
	if len(images) == 0 {
		for _, id := range args {
			cli.AssertID(id)
			image, _ := c.Get("image", "images/"+id)
			images = append(images, image)
		}
	}

	for _, image := range images {
		image.Print(jsonout)
	}
}