本文整理汇总了Golang中github.com/juju/names.IsValidUser函数的典型用法代码示例。如果您正苦于以下问题:Golang IsValidUser函数的具体用法?Golang IsValidUser怎么用?Golang IsValidUser使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IsValidUser函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: AddUser
// AddUser creates a new local user in the juju server.
func (c *Client) AddUser(username, displayName, password string) (names.UserTag, error) {
if !names.IsValidUser(username) {
return names.UserTag{}, fmt.Errorf("invalid user name %q", username)
}
userArgs := params.AddUsers{
Users: []params.AddUser{{Username: username, DisplayName: displayName, Password: password}},
}
var results params.AddUserResults
err := c.facade.FacadeCall("AddUser", userArgs, &results)
if err != nil {
return names.UserTag{}, errors.Trace(err)
}
if count := len(results.Results); count != 1 {
logger.Errorf("expected 1 result, got %#v", results)
return names.UserTag{}, errors.Errorf("expected 1 result, got %d", count)
}
result := results.Results[0]
if result.Error != nil {
return names.UserTag{}, errors.Trace(result.Error)
}
tag, err := names.ParseUserTag(result.Tag)
if err != nil {
return names.UserTag{}, errors.Trace(err)
}
logger.Infof("created user %s", result.Tag)
return tag, nil
}
开发者ID:imoapps,项目名称:juju,代码行数:28,代码来源:client.go
示例2: ListModels
// ListModels returns the models that the specified user
// has access to in the current server. Only that controller owner
// can list models for any user (at this stage). Other users
// can only ask about their own models.
func (c *Client) ListModels(user string) ([]base.UserModel, error) {
var models params.UserModelList
if !names.IsValidUser(user) {
return nil, errors.Errorf("invalid user name %q", user)
}
entity := params.Entity{names.NewUserTag(user).String()}
err := c.facade.FacadeCall("ListModels", entity, &models)
if err != nil {
return nil, errors.Trace(err)
}
result := make([]base.UserModel, len(models.UserModels))
for i, model := range models.UserModels {
owner, err := names.ParseUserTag(model.OwnerTag)
if err != nil {
return nil, errors.Annotatef(err, "OwnerTag %q at position %d", model.OwnerTag, i)
}
result[i] = base.UserModel{
Name: model.Name,
UUID: model.UUID,
Owner: owner.Canonical(),
LastConnection: model.LastConnection,
}
}
return result, nil
}
开发者ID:exekias,项目名称:juju,代码行数:29,代码来源:modelmanager.go
示例3: ListEnvironments
// ListEnvironments returns the environments that the specified user
// has access to in the current server. Only that state server owner
// can list environments for any user (at this stage). Other users
// can only ask about their own environments.
func (c *Client) ListEnvironments(user string) ([]base.UserEnvironment, error) {
var environments params.UserEnvironmentList
if !names.IsValidUser(user) {
return nil, errors.Errorf("invalid user name %q", user)
}
entity := params.Entity{names.NewUserTag(user).String()}
err := c.facade.FacadeCall("ListEnvironments", entity, &environments)
if err != nil {
return nil, errors.Trace(err)
}
result := make([]base.UserEnvironment, len(environments.UserEnvironments))
for i, env := range environments.UserEnvironments {
owner, err := names.ParseUserTag(env.OwnerTag)
if err != nil {
return nil, errors.Annotatef(err, "OwnerTag %q at position %d", env.OwnerTag, i)
}
result[i] = base.UserEnvironment{
Name: env.Name,
UUID: env.UUID,
Owner: owner.Username(),
LastConnection: env.LastConnection,
}
}
return result, nil
}
开发者ID:claudiu-coblis,项目名称:juju,代码行数:29,代码来源:environmentmanager.go
示例4: writeServerFile
func writeServerFile(endpointProvider EndpointProvider, ctx *cmd.Context, username, password, outPath string) error {
outPath = ctx.AbsPath(outPath)
endpoint, err := endpointProvider.ConnectionEndpoint()
if err != nil {
return errors.Trace(err)
}
if !names.IsValidUser(username) {
return errors.Errorf("%q is not a valid username", username)
}
outputInfo := modelcmd.ServerFile{
Username: username,
Password: password,
Addresses: endpoint.Addresses,
CACert: endpoint.CACert,
}
yaml, err := cmd.FormatYaml(outputInfo)
if err != nil {
return errors.Trace(err)
}
if err := ioutil.WriteFile(outPath, yaml, 0644); err != nil {
return errors.Trace(err)
}
serverFileNotify(outPath)
ctx.Infof("server file written to %s", outPath)
return nil
}
开发者ID:exekias,项目名称:juju,代码行数:26,代码来源:common.go
示例5: Init
// SetFlags implements Command.Init.
func (c *useEnvironmentCommand) Init(args []string) error {
if len(args) == 0 || strings.TrimSpace(args[0]) == "" {
return errors.New("no environment supplied")
}
name, args := args[0], args[1:]
// First check to see if an owner has been specified.
bits := strings.SplitN(name, "/", 2)
switch len(bits) {
case 1:
// No user specified
c.EnvName = bits[0]
case 2:
owner := bits[0]
if names.IsValidUser(owner) {
c.Owner = owner
} else {
return errors.Errorf("%q is not a valid user", owner)
}
c.EnvName = bits[1]
}
// Environment names can generally be anything, but we take a good
// stab at trying to determine if the user has specified a UUID
// instead of a name. For now, we only accept a properly formatted UUID,
// which means one with dashes in the right place.
if names.IsValidEnvironment(c.EnvName) {
c.EnvUUID, c.EnvName = c.EnvName, ""
}
return cmd.CheckEmpty(args)
}
开发者ID:imoapps,项目名称:juju,代码行数:34,代码来源:useenvironment.go
示例6: Init
func (c *JenvCommand) Init(args []string) error {
if len(args) == 0 {
return errors.New("no jenv file provided")
}
// Store the path to the jenv file.
if err := c.jenvFile.Set(args[0]); err != nil {
return errors.Annotate(err, "invalid jenv path")
}
args = args[1:]
if len(args) > 0 {
// Store and validate the provided environment name.
c.envName, args = args[0], args[1:]
if !names.IsValidUser(c.envName) {
return errors.Errorf("invalid model name %q", c.envName)
}
} else {
// Retrieve the environment name from the jenv file name.
base := filepath.Base(c.jenvFile.Path)
c.envName = base[:len(base)-len(filepath.Ext(base))]
}
// No other arguments are expected.
return cmd.CheckEmpty(args)
}
开发者ID:pmatulis,项目名称:juju,代码行数:26,代码来源:jenv.go
示例7: Init
func (c *createModelCommand) Init(args []string) error {
if len(args) == 0 {
return errors.New("model name is required")
}
c.Name, args = args[0], args[1:]
if c.Owner != "" && !names.IsValidUser(c.Owner) {
return errors.Errorf("%q is not a valid user", c.Owner)
}
if c.CredentialSpec != "" {
parts := strings.Split(c.CredentialSpec, ":")
if len(parts) < 2 {
return errors.Errorf("invalid cloud credential %s, expected <cloud>:<credential-name>", c.CredentialSpec)
}
c.CloudName = parts[0]
if cloud, err := common.CloudOrProvider(c.CloudName, cloud.CloudByName); err != nil {
return errors.Trace(err)
} else {
c.CloudType = cloud.Type
}
c.CredentialName = parts[1]
}
return nil
}
开发者ID:makyo,项目名称:juju,代码行数:25,代码来源:createmodel.go
示例8: AddUser
// AddUser adds a user to the state.
func (st *State) AddUser(username, displayName, password, creator string) (*User, error) {
if !names.IsValidUser(username) {
return nil, errors.Errorf("invalid user name %q", username)
}
salt, err := utils.RandomSalt()
if err != nil {
return nil, err
}
timestamp := time.Now().Round(time.Second).UTC()
u := &User{
st: st,
doc: userDoc{
Name: username,
DisplayName: displayName,
PasswordHash: utils.UserPasswordHash(password, salt),
PasswordSalt: salt,
CreatedBy: creator,
DateCreated: timestamp,
},
}
ops := []txn.Op{{
C: usersC,
Id: username,
Assert: txn.DocMissing,
Insert: &u.doc,
}}
err = st.runTransaction(ops)
if err == txn.ErrAborted {
err = errors.New("user already exists")
}
if err != nil {
return nil, errors.Trace(err)
}
return u, nil
}
开发者ID:jimmiebtlr,项目名称:juju,代码行数:36,代码来源:user.go
示例9: validateUser
func validateUser(name string) error {
if !names.IsValidUser(name) {
return errors.NotValidf("account name %q", name)
}
if tag := names.NewUserTag(name); tag.Id() != tag.Canonical() {
return errors.NotValidf("unqualified account name %q", name)
}
return nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:9,代码来源:validation.go
示例10: ListEnvironments
// ListEnvironments returns the environments that the specified user
// has access to in the current server. Only that state server owner
// can list environments for any user (at this stage). Other users
// can only ask about their own environments.
func (c *Client) ListEnvironments(user string) ([]params.Environment, error) {
var result params.EnvironmentList
if !names.IsValidUser(user) {
return nil, fmt.Errorf("invalid user name %q", user)
}
entity := params.Entity{names.NewUserTag(user).String()}
err := c.facade.FacadeCall("ListEnvironments", entity, &result)
if err != nil {
return nil, errors.Trace(err)
}
return result.Environments, nil
}
开发者ID:Pankov404,项目名称:juju,代码行数:16,代码来源:environmentmanager.go
示例11: Init
// Init initializes the command for running.
func (c *BootstrapCommand) Init(args []string) error {
if len(c.EnvConfig) == 0 {
return cmdutil.RequiredError("model-config")
}
if c.InstanceId == "" {
return cmdutil.RequiredError("instance-id")
}
if !names.IsValidUser(c.AdminUsername) {
return errors.Errorf("%q is not a valid username", c.AdminUsername)
}
return c.AgentConf.CheckArgs(args)
}
开发者ID:pmatulis,项目名称:juju,代码行数:13,代码来源:bootstrap.go
示例12: Init
func (c *unshareCommand) Init(args []string) (err error) {
if len(args) == 0 {
return errors.New("no users specified")
}
for _, arg := range args {
if !names.IsValidUser(arg) {
return errors.Errorf("invalid username: %q", arg)
}
c.Users = append(c.Users, names.NewUserTag(arg))
}
return nil
}
开发者ID:exekias,项目名称:juju,代码行数:14,代码来源:unshare.go
示例13: AddUser
func (c *Client) AddUser(username, displayName, password string) error {
if !names.IsValidUser(username) {
return fmt.Errorf("invalid user name %q", username)
}
userArgs := usermanager.ModifyUsers{
Changes: []usermanager.ModifyUser{{Username: username, DisplayName: displayName, Password: password}},
}
results := new(params.ErrorResults)
err := c.facade.FacadeCall("AddUser", userArgs, results)
if err != nil {
return errors.Trace(err)
}
return results.OneError()
}
开发者ID:kapilt,项目名称:juju,代码行数:14,代码来源:client.go
示例14: userCall
func (c *Client) userCall(username string, methodCall string) error {
if !names.IsValidUser(username) {
return errors.Errorf("%q is not a valid username", username)
}
tag := names.NewUserTag(username)
var results params.ErrorResults
args := params.Entities{
[]params.Entity{{tag.String()}},
}
err := c.facade.FacadeCall(methodCall, args, &results)
if err != nil {
return errors.Trace(err)
}
return results.OneError()
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:16,代码来源:client.go
示例15: CreateModel
// CreateModel creates a new model using the account and
// model config specified in the args.
func (c *Client) CreateModel(owner string, account, config map[string]interface{}) (params.Model, error) {
var result params.Model
if !names.IsValidUser(owner) {
return result, errors.Errorf("invalid owner name %q", owner)
}
createArgs := params.ModelCreateArgs{
OwnerTag: names.NewUserTag(owner).String(),
Account: account,
Config: config,
}
err := c.facade.FacadeCall("CreateModel", createArgs, &result)
if err != nil {
return result, errors.Trace(err)
}
return result, nil
}
开发者ID:makyo,项目名称:juju,代码行数:18,代码来源:modelmanager.go
示例16: AddUser
// AddUser creates a new local user in the controller, sharing with that user any specified models.
func (c *Client) AddUser(
username, displayName, password, access string, modelUUIDs ...string,
) (_ names.UserTag, secretKey []byte, _ error) {
if !names.IsValidUser(username) {
return names.UserTag{}, nil, fmt.Errorf("invalid user name %q", username)
}
modelTags := make([]string, len(modelUUIDs))
for i, uuid := range modelUUIDs {
modelTags[i] = names.NewModelTag(uuid).String()
}
var accessPermission params.ModelAccessPermission
var err error
if len(modelTags) > 0 {
accessPermission, err = modelmanager.ParseModelAccess(access)
if err != nil {
return names.UserTag{}, nil, errors.Trace(err)
}
}
userArgs := params.AddUsers{
Users: []params.AddUser{{
Username: username,
DisplayName: displayName,
Password: password,
SharedModelTags: modelTags,
ModelAccess: accessPermission}},
}
var results params.AddUserResults
err = c.facade.FacadeCall("AddUser", userArgs, &results)
if err != nil {
return names.UserTag{}, nil, errors.Trace(err)
}
if count := len(results.Results); count != 1 {
logger.Errorf("expected 1 result, got %#v", results)
return names.UserTag{}, nil, errors.Errorf("expected 1 result, got %d", count)
}
result := results.Results[0]
if result.Error != nil {
return names.UserTag{}, nil, errors.Trace(result.Error)
}
tag, err := names.ParseUserTag(result.Tag)
if err != nil {
return names.UserTag{}, nil, errors.Trace(err)
}
return tag, result.SecretKey, nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:48,代码来源:client.go
示例17: TestIsValidUser
func (s *userSuite) TestIsValidUser(c *gc.C) {
for i, t := range []struct {
string string
expect bool
}{
{"", false},
{"bob", true},
{"Bob", true},
{"bOB", true},
{"b^b", false},
{"bob1", true},
{"bob-1", true},
{"bob+1", true},
{"bob+", false},
{"+bob", false},
{"bob.1", true},
{"1bob", true},
{"1-bob", true},
{"1+bob", true},
{"1.bob", true},
{"jim.bob+99-1.", false},
{"a", false},
{"0foo", true},
{"foo bar", false},
{"bar{}", false},
{"bar+foo", true},
{"bar_foo", false},
{"bar!", false},
{"bar^", false},
{"bar*", false},
{"foo=bar", false},
{"foo?", false},
{"[bar]", false},
{"'foo'", false},
{"%bar", false},
{"&bar", false},
{"#1foo", false},
{"[email protected]", true},
{"[email protected]", false},
{"@local", false},
{"not/valid", false},
} {
c.Logf("test %d: %s", i, t.string)
c.Assert(names.IsValidUser(t.string), gc.Equals, t.expect, gc.Commentf("%s", t.string))
}
}
开发者ID:juju,项目名称:names,代码行数:46,代码来源:user_test.go
示例18: CreateEnvironment
// CreateEnvironment creates a new environment using the account and
// environment config specified in the args.
func (c *Client) CreateEnvironment(owner string, account, config map[string]interface{}) (params.Environment, error) {
var result params.Environment
if !names.IsValidUser(owner) {
return result, errors.Errorf("invalid owner name %q", owner)
}
createArgs := params.EnvironmentCreateArgs{
OwnerTag: names.NewUserTag(owner).String(),
Account: account,
Config: config,
}
err := c.facade.FacadeCall("CreateEnvironment", createArgs, &result)
if err != nil {
return result, errors.Trace(err)
}
logger.Infof("created environment %s (%s)", result.Name, result.UUID)
return result, nil
}
开发者ID:claudiu-coblis,项目名称:juju,代码行数:19,代码来源:environmentmanager.go
示例19: SetPassword
// SetPassword changes the password for the specified user.
func (c *Client) SetPassword(username, password string) error {
if !names.IsValidUser(username) {
return errors.Errorf("%q is not a valid username", username)
}
tag := names.NewUserTag(username)
args := params.EntityPasswords{
Changes: []params.EntityPassword{{
Tag: tag.String(),
Password: password}},
}
var results params.ErrorResults
err := c.facade.FacadeCall("SetPassword", args, &results)
if err != nil {
return err
}
return results.OneError()
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:18,代码来源:client.go
示例20: Init
func (c *CreateEnvironmentCommand) Init(args []string) error {
if len(args) == 0 {
return errors.New("environment name is required")
}
c.name, args = args[0], args[1:]
values, err := keyvalues.Parse(args, true)
if err != nil {
return err
}
c.confValues = values
if c.owner != "" && !names.IsValidUser(c.owner) {
return errors.Errorf("%q is not a valid user", c.owner)
}
return nil
}
开发者ID:claudiu-coblis,项目名称:juju,代码行数:18,代码来源:createenvironment.go
注:本文中的github.com/juju/names.IsValidUser函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论