예제 #1
0
파일: app.go 프로젝트: logdns/conoha-iso
func (app *ConoHaIso) eject(flags []cli.Flag) cli.Command {
	cmd := cli.Command{
		Name:  "eject",
		Usage: "Eject an ISO image from the VPS.",
		Flags: flags,
		After: app.afterAction,
		Action: func(c *cli.Context) {
			ident, err := app.auth(c)
			if err != nil {
				app.lastError = err
				return
			}

			var compute *command.Compute
			compute = command.NewCompute(ident)

			err = compute.Eject()
			if err != nil {
				app.lastError = err
				return
			}
			log.Info("ISO file was ejected.")
		},
	}
	return cmd
}
예제 #2
0
파일: app.go 프로젝트: logdns/conoha-iso
func (app *ConoHaIso) insert(flags []cli.Flag) cli.Command {
	cmd := cli.Command{
		Name:  "insert",
		Usage: "Insert an ISO images to the VPS.",
		Flags: flags,
		After: app.afterAction,
		Action: func(c *cli.Context) {
			ident, err := app.auth(c)
			if err != nil {
				app.lastError = err
				return
			}

			var compute *command.Compute
			compute = command.NewCompute(ident)

			err = compute.Insert()
			if err != nil {
				app.lastError = err
				return
			}
			log.Info("ISO file was inserted and changed boot device.")
		},
	}
	return cmd
}
예제 #3
0
파일: app.go 프로젝트: logdns/conoha-iso
func (app *ConoHaIso) list(flags []cli.Flag) cli.Command {
	cmd := cli.Command{
		Name:  "list",
		Usage: "List ISO Images.",
		Flags: flags,
		After: app.afterAction,
		Action: func(c *cli.Context) {
			ident, err := app.auth(c)
			if err != nil {
				app.lastError = err
				return
			}

			var compute *command.Compute
			compute = command.NewCompute(ident)

			isos, err := compute.List()
			if err != nil {
				app.lastError = err
				return
			}

			for i, iso := range isos.IsoImages {
				fmt.Printf("[Image%d]\n", i+1)
				fmt.Printf("%-6s %s\n", "Name:", iso.Name)
				fmt.Printf("%-6s %s\n", "Url:", iso.Url)
				fmt.Printf("%-6s %s\n", "Path:", iso.Path)
				fmt.Printf("%-6s %s\n", "Ctime:", iso.Ctime)
				fmt.Printf("%-6s %d\n", "Size:", iso.Size)

				if i != len(isos.IsoImages)-1 {
					println()
				}
			}
			if len(isos.IsoImages) == 0 {
				println("No ISO images.")
			}
		},
	}
	return cmd
}
예제 #4
0
파일: app.go 프로젝트: logdns/conoha-iso
func (app *ConoHaIso) download(flags []cli.Flag) cli.Command {

	flags = append(flags, cli.StringFlag{
		Name:  "url, i",
		Value: "",
		Usage: "ISO file url.",
	})

	cmd := cli.Command{
		Name:  "download",
		Usage: "Download ISO file from the FTP/HTTP server.",
		Flags: flags,
		After: app.afterAction,
		Before: func(c *cli.Context) error {
			if c.String("url") == "" {
				return errors.New("ISO file url is required.")
			}
			return nil
		},
		Action: func(c *cli.Context) {

			ident, err := app.auth(c)
			if err != nil {
				app.lastError = err
				return
			}

			var compute *command.Compute
			compute = command.NewCompute(ident)

			if err = compute.Download(c.String("url")); err != nil {
				app.lastError = err
				return
			}

			log.Info("Download request was accepted.")
		},
	}
	return cmd
}