func (c *SetConstraintsCommand) Init(args []string) (err error) { if c.ServiceName != "" && !state.IsServiceName(c.ServiceName) { return fmt.Errorf("invalid service name %q", c.ServiceName) } c.Constraints, err = constraints.Parse(args...) return err }
func (*StateSuite) TestNameChecks(c *C) { assertService := func(s string, expect bool) { c.Assert(state.IsServiceName(s), Equals, expect) c.Assert(state.IsUnitName(s+"/0"), Equals, expect) c.Assert(state.IsUnitName(s+"/99"), Equals, expect) c.Assert(state.IsUnitName(s+"/-1"), Equals, false) c.Assert(state.IsUnitName(s+"/blah"), Equals, false) } assertService("", false) assertService("33", false) assertService("wordpress", true) assertService("w0rd-pre55", true) assertService("foo2", true) assertService("foo-2", false) assertService("foo-2foo", true) assertMachine := func(s string, expect bool) { c.Assert(state.IsMachineId(s), Equals, expect) } assertMachine("0", true) assertMachine("1", true) assertMachine("1000001", true) assertMachine("01", false) assertMachine("-1", false) assertMachine("", false) assertMachine("cantankerous", false) }
func (c *GetConstraintsCommand) Init(args []string) error { if len(args) > 0 { if !state.IsServiceName(args[0]) { return fmt.Errorf("invalid service name %q", args[0]) } c.ServiceName, args = args[0], args[1:] } return cmd.CheckEmpty(args) }
func (c *DestroyServiceCommand) Init(args []string) error { if len(args) == 0 { return fmt.Errorf("no service specified") } if !state.IsServiceName(args[0]) { return fmt.Errorf("invalid service name %q", args[0]) } c.ServiceName, args = args[0], args[1:] return cmd.CheckEmpty(args) }
func (c *UpgradeCharmCommand) Init(args []string) error { switch len(args) { case 1: if !state.IsServiceName(args[0]) { return fmt.Errorf("invalid service name %q", args[0]) } c.ServiceName = args[0] case 0: return errors.New("no service specified") default: return cmd.CheckEmpty(args[1:]) } if c.SwitchURL != "" && c.Revision != -1 { return fmt.Errorf("--switch and --revision are mutually exclusive") } return nil }
func (c *DeployCommand) Init(args []string) error { switch len(args) { case 2: if !state.IsServiceName(args[1]) { return fmt.Errorf("invalid service name %q", args[1]) } c.ServiceName = args[1] fallthrough case 1: if _, err := charm.InferURL(args[0], "fake"); err != nil { return fmt.Errorf("invalid charm name %q", args[0]) } c.CharmName = args[0] case 0: return errors.New("no charm specified") default: return cmd.CheckEmpty(args[2:]) } return c.UnitCommandBase.Init(args) }