本文整理汇总了Golang中github.com/juju/juju/cloud.NewCredential函数的典型用法代码示例。如果您正苦于以下问题:Golang NewCredential函数的具体用法?Golang NewCredential怎么用?Golang NewCredential使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewCredential函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestUpdateCloudCredentialsExisting
func (s *CloudCredentialsSuite) TestUpdateCloudCredentialsExisting(c *gc.C) {
err := s.State.AddCloud("stratus", cloud.Cloud{
Type: "low",
AuthTypes: cloud.AuthTypes{cloud.AccessKeyAuthType, cloud.UserPassAuthType},
})
c.Assert(err, jc.ErrorIsNil)
cred := cloud.NewCredential(cloud.AccessKeyAuthType, map[string]string{
"foo": "foo val",
"bar": "bar val",
})
tag := names.NewCloudCredentialTag("stratus/[email protected]/foobar")
err = s.State.UpdateCloudCredential(tag, cred)
c.Assert(err, jc.ErrorIsNil)
cred = cloud.NewCredential(cloud.UserPassAuthType, map[string]string{
"user": "bob's nephew",
"password": "simple",
})
cred.Revoked = true
err = s.State.UpdateCloudCredential(tag, cred)
c.Assert(err, jc.ErrorIsNil)
// The retrieved credentials have labels although cloud.NewCredential
// doesn't have them, so add it to the expected value.
cred.Label = "foobar"
out, err := s.State.CloudCredential(tag)
c.Assert(err, jc.ErrorIsNil)
c.Assert(out, jc.DeepEquals, cred)
}
开发者ID:kat-co,项目名称:juju,代码行数:31,代码来源:cloudcredentials_test.go
示例2: TestUpdate
func (s *updateCredentialSuite) TestUpdate(c *gc.C) {
store := &jujuclienttesting.MemStore{
Controllers: map[string]jujuclient.ControllerDetails{
"controller": {},
},
CurrentControllerName: "controller",
Accounts: map[string]jujuclient.AccountDetails{
"controller": {
User: "[email protected]",
},
},
Credentials: map[string]jujucloud.CloudCredential{
"aws": {
AuthCredentials: map[string]jujucloud.Credential{
"my-credential": jujucloud.NewCredential(jujucloud.AccessKeyAuthType, nil),
"another-credential": jujucloud.NewCredential(jujucloud.UserPassAuthType, nil),
},
},
},
}
fake := &fakeUpdateCredentialAPI{}
cmd := cloud.NewUpdateCredentialCommandForTest(store, fake)
ctx, err := testing.RunCommand(c, cmd, "aws", "my-credential")
c.Assert(err, jc.ErrorIsNil)
output := testing.Stderr(ctx)
output = strings.Replace(output, "\n", "", -1)
c.Assert(output, gc.Equals, `Updated credential "my-credential" for user "[email protected]" on cloud "aws".`)
c.Assert(fake.creds, jc.DeepEquals, map[names.CloudCredentialTag]jujucloud.Credential{
names.NewCloudCredentialTag("aws/[email protected]/my-credential"): jujucloud.NewCredential(jujucloud.AccessKeyAuthType, nil),
})
}
开发者ID:bac,项目名称:juju,代码行数:31,代码来源:updatecredential_test.go
示例3: SetUpTest
func (s *credentialsSuite) SetUpTest(c *gc.C) {
s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
s.cloud = cloud.Cloud{
Type: "fake",
Regions: []cloud.Region{
{Name: "first-region"},
{Name: "second-region"},
},
}
dir := c.MkDir()
keyFile := filepath.Join(dir, "keyfile")
err := ioutil.WriteFile(keyFile, []byte("value"), 0600)
c.Assert(err, jc.ErrorIsNil)
s.store = jujuclienttesting.NewMemStore()
s.store.Credentials["cloud"] = cloud.CloudCredential{
DefaultRegion: "second-region",
AuthCredentials: map[string]cloud.Credential{
"interactive": cloud.NewCredential("interactive", map[string]string{
"username": "user",
}),
"secrets": cloud.NewCredential(cloud.UserPassAuthType, map[string]string{
"username": "user",
"password": "sekret",
"key-file": keyFile,
}),
},
}
}
开发者ID:bac,项目名称:juju,代码行数:30,代码来源:credentials_test.go
示例4: SetUpTest
func (s *CredentialsSuite) SetUpTest(c *gc.C) {
s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
s.store = jujuclient.NewFileCredentialStore()
s.cloudName = "testcloud"
s.credentials = cloud.CloudCredential{
DefaultCredential: "peter",
DefaultRegion: "east",
AuthCredentials: map[string]cloud.Credential{
"peter": cloud.NewCredential(cloud.AccessKeyAuthType, nil),
"paul": cloud.NewCredential(cloud.AccessKeyAuthType, nil),
},
}
}
开发者ID:bac,项目名称:juju,代码行数:13,代码来源:credentials_test.go
示例5: FinalizeCredential
// FinalizeCredential is part of the environs.ProviderCredentials interface.
func (c environProviderCredentials) FinalizeCredential(
ctx environs.FinalizeCredentialContext,
args environs.FinalizeCredentialParams,
) (*cloud.Credential, error) {
switch authType := args.Credential.AuthType(); authType {
case cloud.UserPassAuthType:
fmt.Fprintf(ctx.GetStderr(), `
WARNING: The %q auth-type is deprecated, and will be removed soon.
Please update the credential in ~/.local/share/juju/credentials.yaml,
changing auth-type to %q, and dropping the tenant-id field.
`[1:],
authType, clientCredentialsAuthType,
)
attrs := args.Credential.Attributes()
delete(attrs, credAttrTenantId)
out := cloud.NewCredential(clientCredentialsAuthType, attrs)
out.Label = args.Credential.Label
return &out, nil
case deviceCodeAuthType:
subscriptionId := args.Credential.Attributes()[credAttrSubscriptionId]
applicationId, password, err := c.interactiveCreateServicePrincipal(
ctx.GetStderr(),
c.sender,
c.requestInspector,
args.CloudEndpoint,
args.CloudIdentityEndpoint,
subscriptionId,
clock.WallClock,
utils.NewUUID,
)
if err != nil {
return nil, errors.Trace(err)
}
out := cloud.NewCredential(clientCredentialsAuthType, map[string]string{
credAttrSubscriptionId: subscriptionId,
credAttrAppId: applicationId,
credAttrAppPassword: password,
})
out.Label = args.Credential.Label
return &out, nil
case clientCredentialsAuthType:
return &args.Credential, nil
default:
return nil, errors.NotSupportedf("%q auth-type", authType)
}
}
开发者ID:kat-co,项目名称:juju,代码行数:51,代码来源:credentials.go
示例6: FinalizeCredential
// FinalizeCredential is part of the environs.ProviderCredentials interface.
func (c environProviderCredentials) FinalizeCredential(
ctx environs.FinalizeCredentialContext,
args environs.FinalizeCredentialParams,
) (*cloud.Credential, error) {
switch authType := args.Credential.AuthType(); authType {
case deviceCodeAuthType:
subscriptionId := args.Credential.Attributes()[credAttrSubscriptionId]
applicationId, password, err := c.interactiveCreateServicePrincipal(
ctx.GetStderr(),
c.sender,
c.requestInspector,
args.CloudEndpoint,
args.CloudIdentityEndpoint,
subscriptionId,
clock.WallClock,
utils.NewUUID,
)
if err != nil {
return nil, errors.Trace(err)
}
out := cloud.NewCredential(clientCredentialsAuthType, map[string]string{
credAttrSubscriptionId: subscriptionId,
credAttrAppId: applicationId,
credAttrAppPassword: password,
})
out.Label = args.Credential.Label
return &out, nil
case clientCredentialsAuthType:
return &args.Credential, nil
default:
return nil, errors.NotSupportedf("%q auth-type", authType)
}
}
开发者ID:bac,项目名称:juju,代码行数:35,代码来源:credentials.go
示例7: TestRemoveCredentials
func (s *CloudCredentialsSuite) TestRemoveCredentials(c *gc.C) {
// Create it.
err := s.State.AddCloud("stratus", cloud.Cloud{
Type: "low",
AuthTypes: cloud.AuthTypes{cloud.AccessKeyAuthType, cloud.UserPassAuthType},
})
c.Assert(err, jc.ErrorIsNil)
tag := names.NewCloudCredentialTag("stratus/[email protected]/bobcred1")
cred := cloud.NewCredential(cloud.AccessKeyAuthType, map[string]string{
"foo": "foo val",
"bar": "bar val",
})
err = s.State.UpdateCloudCredential(tag, cred)
c.Assert(err, jc.ErrorIsNil)
_, err = s.State.CloudCredential(tag)
c.Assert(err, jc.ErrorIsNil)
// Remove it.
err = s.State.RemoveCloudCredential(tag)
c.Assert(err, jc.ErrorIsNil)
// Check it.
_, err = s.State.CloudCredential(tag)
c.Assert(err, jc.Satisfies, errors.IsNotFound)
}
开发者ID:kat-co,项目名称:juju,代码行数:26,代码来源:cloudcredentials_test.go
示例8: TestBootstrapConfig
func (s *ConfigSuite) TestBootstrapConfig(c *gc.C) {
for i, test := range bootstrapConfigTests {
c.Logf("test %d: %s", i, test.info)
attrs := validAttrs().Merge(test.insert).Delete(test.remove...)
credentialAttrs := make(map[string]string, len(attrs))
for k, v := range attrs.Delete("type") {
credentialAttrs[k] = fmt.Sprintf("%v", v)
}
testConfig := newConfig(c, attrs)
preparedConfig, err := jp.Provider.BootstrapConfig(environs.BootstrapConfigParams{
Config: testConfig,
Credentials: cloud.NewCredential(
cloud.UserPassAuthType,
credentialAttrs,
),
})
if test.err == "" {
c.Check(err, jc.ErrorIsNil)
attrs := preparedConfig.AllAttrs()
for field, value := range test.expect {
c.Check(attrs[field], gc.Equals, value)
}
} else {
c.Check(preparedConfig, gc.IsNil)
c.Check(err, gc.ErrorMatches, test.err)
}
}
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:28,代码来源:config_test.go
示例9: makeEnviron
func (suite *maas2Suite) makeEnviron(c *gc.C, controller gomaasapi.Controller) *maasEnviron {
if controller != nil {
suite.injectController(controller)
}
testAttrs := coretesting.Attrs{}
for k, v := range maasEnvAttrs {
testAttrs[k] = v
}
testAttrs["agent-version"] = version.Current.String()
cred := cloud.NewCredential(cloud.OAuth1AuthType, map[string]string{
"maas-oauth": "a:b:c",
})
cloud := environs.CloudSpec{
Type: "maas",
Name: "maas",
Endpoint: "http://any-old-junk.invalid/",
Credential: &cred,
}
attrs := coretesting.FakeConfig().Merge(testAttrs)
suite.controllerUUID = coretesting.FakeControllerConfig().ControllerUUID()
cfg, err := config.New(config.NoDefaults, attrs)
c.Assert(err, jc.ErrorIsNil)
env, err := NewEnviron(cloud, cfg)
c.Assert(err, jc.ErrorIsNil)
c.Assert(env, gc.NotNil)
return env
}
开发者ID:bac,项目名称:juju,代码行数:29,代码来源:maas2_test.go
示例10: TestInitializeWithInvalidCredentialType
func (s *InitializeSuite) TestInitializeWithInvalidCredentialType(c *gc.C) {
owner := names.NewLocalUserTag("initialize-admin")
modelCfg := testing.ModelConfig(c)
controllerCfg := testing.FakeControllerConfig()
credentialTag := names.NewCloudCredentialTag("dummy/" + owner.Canonical() + "/borken")
_, err := state.Initialize(state.InitializeParams{
Clock: clock.WallClock,
ControllerConfig: controllerCfg,
ControllerModelArgs: state.ModelArgs{
CloudName: "dummy",
Owner: owner,
Config: modelCfg,
StorageProviderRegistry: storage.StaticProviderRegistry{},
},
CloudName: "dummy",
Cloud: cloud.Cloud{
Type: "dummy",
AuthTypes: []cloud.AuthType{
cloud.AccessKeyAuthType, cloud.OAuth1AuthType,
},
},
CloudCredentials: map[names.CloudCredentialTag]cloud.Credential{
credentialTag: cloud.NewCredential(cloud.UserPassAuthType, nil),
},
MongoInfo: statetesting.NewMongoInfo(),
MongoDialOpts: mongotest.DialOpts(),
})
c.Assert(err, gc.ErrorMatches,
`validating initialization args: validating cloud credentials: credential "dummy/[email protected]/borken" with auth-type "userpass" is not supported \(expected one of \["access-key" "oauth1"\]\)`,
)
}
开发者ID:kat-co,项目名称:juju,代码行数:31,代码来源:initialize_test.go
示例11: TestMarshalAccessKey
func (s *credentialsSuite) TestMarshalAccessKey(c *gc.C) {
creds := map[string]cloud.CloudCredential{
"aws": {
DefaultCredential: "default-cred",
DefaultRegion: "us-west-2",
AuthCredentials: map[string]cloud.Credential{
"peter": cloud.NewCredential(cloud.AccessKeyAuthType, map[string]string{
"access-key": "key",
"secret-key": "secret",
}),
// TODO(wallyworld) - add anther credential once goyaml.v2 supports inline MapSlice.
//"paul": &cloud.AccessKeyCredentials{
// Key: "paulkey",
// Secret: "paulsecret",
//},
},
},
}
out, err := cloud.MarshalCredentials(creds)
c.Assert(err, jc.ErrorIsNil)
c.Assert(string(out), gc.Equals, `
credentials:
aws:
default-credential: default-cred
default-region: us-west-2
peter:
auth-type: access-key
access-key: key
secret-key: secret
`[1:])
}
开发者ID:bac,项目名称:juju,代码行数:31,代码来源:credentials_test.go
示例12: TestMarshalOAuth2
func (s *credentialsSuite) TestMarshalOAuth2(c *gc.C) {
creds := map[string]cloud.CloudCredential{
"google": {
DefaultCredential: "default-cred",
DefaultRegion: "West US",
AuthCredentials: map[string]cloud.Credential{
"peter": cloud.NewCredential(cloud.OAuth2AuthType, map[string]string{
"client-id": "client-id",
"client-email": "client-email",
"private-key": "secret",
}),
},
},
}
out, err := cloud.MarshalCredentials(creds)
c.Assert(err, jc.ErrorIsNil)
c.Assert(string(out), gc.Equals, `
credentials:
google:
default-credential: default-cred
default-region: West US
peter:
auth-type: oauth2
client-email: client-email
client-id: client-id
private-key: secret
`[1:])
}
开发者ID:bac,项目名称:juju,代码行数:28,代码来源:credentials_test.go
示例13: TestMarshalOAuth1
func (s *credentialsSuite) TestMarshalOAuth1(c *gc.C) {
creds := map[string]cloud.CloudCredential{
"maas": {
DefaultCredential: "default-cred",
DefaultRegion: "region-default",
AuthCredentials: map[string]cloud.Credential{
"peter": cloud.NewCredential(cloud.OAuth1AuthType, map[string]string{
"consumer-key": "consumer-key",
"consumer-secret": "consumer-secret",
"access-token": "access-token",
"token-secret": "token-secret",
}),
},
},
}
out, err := cloud.MarshalCredentials(creds)
c.Assert(err, jc.ErrorIsNil)
c.Assert(string(out), gc.Equals, `
credentials:
maas:
default-credential: default-cred
default-region: region-default
peter:
auth-type: oauth1
access-token: access-token
consumer-key: consumer-key
consumer-secret: consumer-secret
token-secret: token-secret
`[1:])
}
开发者ID:bac,项目名称:juju,代码行数:30,代码来源:credentials_test.go
示例14: TestMarshalAzureCredntials
func (s *credentialsSuite) TestMarshalAzureCredntials(c *gc.C) {
creds := map[string]cloud.CloudCredential{
"azure": {
DefaultCredential: "default-cred",
DefaultRegion: "Central US",
AuthCredentials: map[string]cloud.Credential{
"peter": cloud.NewCredential(cloud.UserPassAuthType, map[string]string{
"application-id": "app-id",
"application-password": "app-secret",
"subscription-id": "subscription-id",
"tenant-id": "tenant-id",
}),
},
},
}
out, err := cloud.MarshalCredentials(creds)
c.Assert(err, jc.ErrorIsNil)
c.Assert(string(out), gc.Equals, `
credentials:
azure:
default-credential: default-cred
default-region: Central US
peter:
auth-type: userpass
application-id: app-id
application-password: app-secret
subscription-id: subscription-id
tenant-id: tenant-id
`[1:])
}
开发者ID:bac,项目名称:juju,代码行数:30,代码来源:credentials_test.go
示例15: TestUnknownAttrsContainAgentName
func (suite *EnvironProviderSuite) TestUnknownAttrsContainAgentName(c *gc.C) {
attrs := testing.FakeConfig().Merge(testing.Attrs{
"type": "maas",
})
config, err := config.New(config.NoDefaults, attrs)
c.Assert(err, jc.ErrorIsNil)
cfg, err := providerInstance.BootstrapConfig(environs.BootstrapConfigParams{
Config: config,
CloudEndpoint: "http://maas.testing.invalid/maas/",
Credentials: cloud.NewCredential(
cloud.OAuth1AuthType,
map[string]string{
"maas-oauth": "aa:bb:cc",
},
),
})
c.Assert(err, jc.ErrorIsNil)
unknownAttrs := cfg.UnknownAttrs()
c.Assert(unknownAttrs["maas-server"], gc.Equals, "http://maas.testing.invalid/maas/")
uuid, ok := unknownAttrs["maas-agent-name"]
c.Assert(ok, jc.IsTrue)
c.Assert(uuid, jc.Satisfies, utils.IsValidUUIDString)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:27,代码来源:environprovider_test.go
示例16: TestCredentialsSetup
func (suite *EnvironProviderSuite) TestCredentialsSetup(c *gc.C) {
attrs := testing.FakeConfig().Merge(testing.Attrs{
"type": "maas",
})
config, err := config.New(config.NoDefaults, attrs)
c.Assert(err, jc.ErrorIsNil)
cfg, err := providerInstance.BootstrapConfig(environs.BootstrapConfigParams{
Config: config,
CloudEndpoint: "http://maas.testing.invalid/maas/",
Credentials: cloud.NewCredential(
cloud.OAuth1AuthType,
map[string]string{
"maas-oauth": "aa:bb:cc",
},
),
})
c.Assert(err, jc.ErrorIsNil)
attrs = cfg.UnknownAttrs()
server, ok := attrs["maas-server"]
c.Assert(ok, jc.IsTrue)
c.Assert(server, gc.Equals, "http://maas.testing.invalid/maas/")
oauth, ok := attrs["maas-oauth"]
c.Assert(ok, jc.IsTrue)
c.Assert(oauth, gc.Equals, "aa:bb:cc")
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:27,代码来源:environprovider_test.go
示例17: assertGetCredentials
func (s *credentialsSuite) assertGetCredentials(c *gc.C, region string) {
dir := c.MkDir()
keyFile := filepath.Join(dir, "keyfile")
err := ioutil.WriteFile(keyFile, []byte("value"), 0600)
c.Assert(err, jc.ErrorIsNil)
store := jujuclienttesting.NewMemStore()
store.Credentials["cloud"] = cloud.CloudCredential{
DefaultRegion: "default-region",
AuthCredentials: map[string]cloud.Credential{
"secrets": cloud.NewCredential(cloud.UserPassAuthType, map[string]string{
"username": "user",
"password": "sekret",
"key-file": keyFile,
}),
},
}
credential, credentialName, regionName, err := modelcmd.GetCredentials(
store, region, "secrets", "cloud", "fake",
)
c.Assert(err, jc.ErrorIsNil)
expectedRegion := region
if expectedRegion == "" {
expectedRegion = "default-region"
}
c.Assert(regionName, gc.Equals, expectedRegion)
c.Assert(credentialName, gc.Equals, "secrets")
c.Assert(credential.Attributes(), jc.DeepEquals, map[string]string{
"key": "value",
"username": "user",
"password": "sekret",
})
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:34,代码来源:credentials_test.go
示例18: TestFinalizeCredentialUserPass
func (s *credentialsSuite) TestFinalizeCredentialUserPass(c *gc.C) {
in := cloud.NewCredential("userpass", map[string]string{
"application-id": "application",
"application-password": "password",
"subscription-id": "subscription",
"tenant-id": "tenant",
})
ctx := coretesting.Context(c)
out, err := s.provider.FinalizeCredential(ctx, environs.FinalizeCredentialParams{Credential: in})
c.Assert(err, jc.ErrorIsNil)
c.Assert(out, gc.NotNil)
c.Assert(out.AuthType(), gc.Equals, cloud.AuthType("service-principal-secret"))
c.Assert(out.Attributes(), jc.DeepEquals, map[string]string{
"application-id": "application",
"application-password": "password",
"subscription-id": "subscription",
})
stderr := coretesting.Stderr(ctx)
c.Assert(stderr, gc.Equals, `
WARNING: The "userpass" auth-type is deprecated, and will be removed soon.
Please update the credential in ~/.local/share/juju/credentials.yaml,
changing auth-type to "service-principal-secret", and dropping the tenant-id field.
`[1:])
}
开发者ID:kat-co,项目名称:juju,代码行数:26,代码来源:credentials_test.go
示例19: SetUpSuite
func (s *ebsVolumeSuite) SetUpSuite(c *gc.C) {
s.BaseSuite.SetUpSuite(c)
s.Tests.SetUpSuite(c)
s.Credential = cloud.NewCredential(
cloud.AccessKeyAuthType,
map[string]string{
"access-key": "x",
"secret-key": "x",
},
)
s.CloudRegion = "test"
// Upload arches that ec2 supports; add to this
// as ec2 coverage expands.
s.UploadArches = []string{arch.AMD64, arch.I386}
s.TestConfig = localConfigAttrs.Merge(testing.Attrs{
"access-key": "x",
"secret-key": "x",
"region": "test",
})
s.restoreEC2Patching = patchEC2ForTesting(c)
s.BaseSuite.PatchValue(&imagemetadata.SimplestreamsImagesPublicKey, sstesting.SignedMetadataPublicKey)
s.BaseSuite.PatchValue(&juju.JujuPublicKey, sstesting.SignedMetadataPublicKey)
imagetesting.PatchOfficialDataSources(&s.BaseSuite.CleanupSuite, "test:")
s.BaseSuite.PatchValue(ec2.DeleteSecurityGroupInsistently, deleteSecurityGroupForTestFunc)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:26,代码来源:ebs_test.go
示例20: TestFinalizeCredentialMandatoryFieldFromFile
func (s *credentialsSuite) TestFinalizeCredentialMandatoryFieldFromFile(c *gc.C) {
cred := cloud.NewCredential(
cloud.UserPassAuthType,
map[string]string{
"key-file": "path",
},
)
schema := cloud.CredentialSchema{{
"key",
cloud.CredentialAttr{
Description: "key credential",
Optional: false,
FileAttr: "key-file",
},
}}
readFile := func(s string) ([]byte, error) {
c.Assert(s, gc.Equals, "path")
return []byte("file-value"), nil
}
newCred, err := cloud.FinalizeCredential(cred, map[cloud.AuthType]cloud.CredentialSchema{
cloud.UserPassAuthType: schema,
}, readFile)
c.Assert(err, jc.ErrorIsNil)
c.Assert(newCred.Attributes(), jc.DeepEquals, map[string]string{
"key": "file-value",
})
}
开发者ID:bac,项目名称:juju,代码行数:27,代码来源:credentials_test.go
注:本文中的github.com/juju/juju/cloud.NewCredential函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论