func (c *UnitCommandBase) Init(args []string) error { if c.NumUnits < 1 { return errors.New("--num-units must be a positive integer") } if c.ToMachineSpec != "" { if c.NumUnits > 1 { return errors.New("cannot use --num-units > 1 with --to") } if !cmd.IsMachineOrNewContainer(c.ToMachineSpec) { return fmt.Errorf("invalid --to parameter %q", c.ToMachineSpec) } } return nil }
func (*namesSuite) TestNameChecks(c *gc.C) { assertMachineOrNewContainer := func(s string, expect bool) { c.Assert(cmd.IsMachineOrNewContainer(s), gc.Equals, expect) } assertMachineOrNewContainer("0", true) assertMachineOrNewContainer("00", false) assertMachineOrNewContainer("1", true) assertMachineOrNewContainer("0/lxc/0", true) assertMachineOrNewContainer("lxc:0", true) assertMachineOrNewContainer("lxc:lxc:0", false) assertMachineOrNewContainer("kvm:0/lxc/1", true) assertMachineOrNewContainer("lxc:", false) assertMachineOrNewContainer(":lxc", false) assertMachineOrNewContainer("0/lxc/", false) assertMachineOrNewContainer("0/lxc", false) assertMachineOrNewContainer("kvm:0/lxc", false) assertMachineOrNewContainer("0/lxc/01", false) assertMachineOrNewContainer("0/lxc/10", true) assertMachineOrNewContainer("0/kvm/4", true) }