本文整理匯總了Golang中github.com/juju/juju/instance.Id函數的典型用法代碼示例。如果您正苦於以下問題:Golang Id函數的具體用法?Golang Id怎麽用?Golang Id使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了Id函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestInstances
func (s *environSuite) TestInstances(c *gc.C) {
var ids []instance.Id
instances, err := s.env.Instances(ids)
c.Assert(err, gc.Equals, environs.ErrNoInstances)
c.Assert(instances, gc.HasLen, 0)
ids = append(ids, BootstrapInstanceId)
instances, err = s.env.Instances(ids)
c.Assert(err, jc.ErrorIsNil)
c.Assert(instances, gc.HasLen, 1)
c.Assert(instances[0], gc.NotNil)
ids = append(ids, BootstrapInstanceId)
instances, err = s.env.Instances(ids)
c.Assert(err, jc.ErrorIsNil)
c.Assert(instances, gc.HasLen, 2)
c.Assert(instances[0], gc.NotNil)
c.Assert(instances[1], gc.NotNil)
ids = append(ids, instance.Id("invalid"))
instances, err = s.env.Instances(ids)
c.Assert(err, gc.Equals, environs.ErrPartialInstances)
c.Assert(instances, gc.HasLen, 3)
c.Assert(instances[0], gc.NotNil)
c.Assert(instances[1], gc.NotNil)
c.Assert(instances[2], gc.IsNil)
ids = []instance.Id{instance.Id("invalid")}
instances, err = s.env.Instances(ids)
c.Assert(err, gc.Equals, environs.ErrNoInstances)
c.Assert(instances, gc.HasLen, 1)
c.Assert(instances[0], gc.IsNil)
}
示例2: TestRemoveStateInstancesPartial
func (suite *StateSuite) TestRemoveStateInstancesPartial(c *gc.C) {
storage := suite.newStorage(c)
state := common.BootstrapState{
StateInstances: []instance.Id{
instance.Id("a"),
instance.Id("b"),
instance.Id("c"),
},
}
err := common.SaveState(storage, &state)
c.Assert(err, jc.ErrorIsNil)
err = common.RemoveStateInstances(
storage,
state.StateInstances[0],
instance.Id("not-there"),
state.StateInstances[2],
)
c.Assert(err, jc.ErrorIsNil)
storedState, err := common.LoadState(storage)
c.Assert(storedState, gc.DeepEquals, &common.BootstrapState{
StateInstances: []instance.Id{
state.StateInstances[1],
},
})
}
示例3: TestAllocateTo
func (s *IPAddressSuite) TestAllocateTo(c *gc.C) {
machine := s.createMachine(c)
addr := network.NewScopedAddress("0.1.2.3", network.ScopePublic)
ipAddr, err := s.State.AddIPAddress(addr, "foobar")
c.Assert(err, jc.ErrorIsNil)
c.Assert(ipAddr.State(), gc.Equals, state.AddressStateUnknown)
c.Assert(ipAddr.MachineId(), gc.Equals, "")
c.Assert(ipAddr.InterfaceId(), gc.Equals, "")
c.Assert(ipAddr.InstanceId(), gc.Equals, instance.UnknownId)
err = ipAddr.AllocateTo(machine.Id(), "wobble")
c.Assert(err, jc.ErrorIsNil)
c.Assert(ipAddr.State(), gc.Equals, state.AddressStateAllocated)
c.Assert(ipAddr.MachineId(), gc.Equals, machine.Id())
c.Assert(ipAddr.InterfaceId(), gc.Equals, "wobble")
c.Assert(ipAddr.InstanceId(), gc.Equals, instance.Id("foo"))
freshCopy, err := s.State.IPAddress("0.1.2.3")
c.Assert(err, jc.ErrorIsNil)
c.Assert(freshCopy.State(), gc.Equals, state.AddressStateAllocated)
c.Assert(freshCopy.MachineId(), gc.Equals, machine.Id())
c.Assert(freshCopy.InterfaceId(), gc.Equals, "wobble")
c.Assert(freshCopy.InstanceId(), gc.Equals, instance.Id("foo"))
// allocating twice should fail.
machine2 := s.createMachine(c)
err = ipAddr.AllocateTo(machine2.Id(), "i")
msg := fmt.Sprintf(
`cannot allocate IP address "public:0.1.2.3" to machine %q, interface "i": `+
`already allocated or unavailable`, machine2.Id())
c.Assert(err, gc.ErrorMatches, msg)
}
示例4: TestInstancesFail
func (s *environInstanceSuite) TestInstancesFail(c *gc.C) {
attrs := testing.Attrs{
"name": "testname",
"region": "testregion",
"endpoint": "https://0.1.2.3:2000/api/2.0/",
"username": mock.TestUser,
"password": mock.TestPassword,
}
baseConfig := newConfig(c, validAttrs().Merge(attrs))
newClientFunc := newClient
s.PatchValue(&newClient, func(cfg *environConfig) (*environClient, error) {
cli, err := newClientFunc(cfg)
if cli != nil {
cli.conn.ConnectTimeout(10 * time.Millisecond)
}
return cli, err
})
environ := s.createEnviron(c, baseConfig)
instances, err := environ.AllInstances()
c.Assert(instances, gc.IsNil)
c.Assert(err, gc.NotNil)
instances, err = environ.Instances([]instance.Id{instance.Id("123"), instance.Id("321")})
c.Assert(instances, gc.IsNil)
c.Assert(err, gc.NotNil)
}
示例5: TestDestroyContainerRemovesAutostartLink
func (s *LxcSuite) TestDestroyContainerRemovesAutostartLink(c *gc.C) {
manager := s.makeManager(c, "test")
instance := containertesting.CreateContainer(c, manager, "1/lxc/0")
err := manager.DestroyContainer(instance.Id())
c.Assert(err, jc.ErrorIsNil)
autostartLink := lxc.RestartSymlink(string(instance.Id()))
c.Assert(autostartLink, jc.SymlinkDoesNotExist)
}
示例6: TestAllInstances
func (s *instanceSuite) TestAllInstances(c *gc.C) {
s.sender = s.getInstancesSender()
instances, err := s.env.AllInstances()
c.Assert(err, jc.ErrorIsNil)
c.Assert(instances, gc.HasLen, 2)
c.Assert(instances[0].Id(), gc.Equals, instance.Id("machine-0"))
c.Assert(instances[1].Id(), gc.Equals, instance.Id("machine-1"))
}
示例7: TestGetSystemIdValues
func (*utilSuite) TestGetSystemIdValues(c *gc.C) {
instanceId1 := instance.Id("/MAAS/api/1.0/nodes/system_id1/")
instanceId2 := instance.Id("/MAAS/api/1.0/nodes/system_id2/")
instanceIds := []instance.Id{instanceId1, instanceId2}
values := getSystemIdValues("id", instanceIds)
c.Check(values["id"], gc.DeepEquals, []string{"system_id1", "system_id2"})
}
示例8: createVolumes
func (s *ebsVolumeSuite) createVolumes(vs storage.VolumeSource, instanceId string) ([]storage.Volume, error) {
if instanceId == "" {
instanceId = s.srv.ec2srv.NewInstances(1, "m1.medium", imageId, ec2test.Running, nil)[0]
}
volume0 := names.NewVolumeTag("0")
volume1 := names.NewVolumeTag("1")
volume2 := names.NewVolumeTag("2")
params := []storage.VolumeParams{{
Tag: volume0,
Size: 10 * 1000,
Provider: ec2.EBS_ProviderType,
Attributes: map[string]interface{}{
"persistent": true,
"volume-type": "io1",
"iops": 100,
},
Attachment: &storage.VolumeAttachmentParams{
AttachmentParams: storage.AttachmentParams{
InstanceId: instance.Id(instanceId),
},
},
ResourceTags: map[string]string{
tags.JujuEnv: s.TestConfig["uuid"].(string),
},
}, {
Tag: volume1,
Size: 20 * 1000,
Provider: ec2.EBS_ProviderType,
Attributes: map[string]interface{}{
"persistent": true,
},
Attachment: &storage.VolumeAttachmentParams{
AttachmentParams: storage.AttachmentParams{
InstanceId: instance.Id(instanceId),
},
},
ResourceTags: map[string]string{
tags.JujuEnv: "something-else",
},
}, {
Tag: volume2,
Size: 30 * 1000,
Provider: ec2.EBS_ProviderType,
ResourceTags: map[string]string{
"abc": "123",
},
Attachment: &storage.VolumeAttachmentParams{
AttachmentParams: storage.AttachmentParams{
InstanceId: instance.Id(instanceId),
},
},
}}
vols, _, err := vs.CreateVolumes(params)
return vols, err
}
示例9: setUpManual
// setUpManual adds "manually provisioned" machines to state:
// one manager machine, and one non-manager.
func (s *destroyModelSuite) setUpManual(c *gc.C) (m0, m1 *state.Machine) {
m0, err := s.State.AddMachine("precise", state.JobManageModel)
c.Assert(err, jc.ErrorIsNil)
err = m0.SetProvisioned(instance.Id("manual:0"), "manual:0:fake_nonce", nil)
c.Assert(err, jc.ErrorIsNil)
m1, err = s.State.AddMachine("precise", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
err = m1.SetProvisioned(instance.Id("manual:1"), "manual:1:fake_nonce", nil)
c.Assert(err, jc.ErrorIsNil)
return m0, m1
}
示例10: TestInstancesReturnPartialInstances
func (s *environAvailzonesSuite) TestInstancesReturnPartialInstances(c *gc.C) {
client := vsphere.ExposeEnvFakeClient(s.Env)
client.SetPropertyProxyHandler("FakeDatacenter", vsphere.RetrieveDatacenterProperties)
vmName1 := common.MachineFullName(s.Env, "1")
vmName2 := common.MachineFullName(s.Env, "2")
s.FakeInstancesWithResourcePool(client, vsphere.InstRp{Inst: vmName1, Rp: "rp1"}, vsphere.InstRp{Inst: "Some inst", Rp: "rp2"})
_, err := s.Env.Instances([]instance.Id{instance.Id(vmName1), instance.Id(vmName2)})
c.Assert(err, gc.Equals, environs.ErrPartialInstances)
}
示例11: TestDestroyContainer
func (s *KVMSuite) TestDestroyContainer(c *gc.C) {
instance := containertesting.CreateContainer(c, s.manager, "1/lxc/0")
err := s.manager.DestroyContainer(instance.Id())
c.Assert(err, gc.IsNil)
name := string(instance.Id())
// Check that the container dir is no longer in the container dir
c.Assert(filepath.Join(s.ContainerDir, name), jc.DoesNotExist)
// but instead, in the removed container dir
c.Assert(filepath.Join(s.RemovedDir, name), jc.IsDirectory)
}
示例12: TestInstances
func (s *environAvailzonesSuite) TestInstances(c *gc.C) {
client := vsphere.ExposeEnvFakeClient(s.Env)
client.SetPropertyProxyHandler("FakeDatacenter", vsphere.RetrieveDatacenterProperties)
vmName1 := common.MachineFullName(s.Env, "1")
vmName2 := common.MachineFullName(s.Env, "2")
s.FakeInstancesWithResourcePool(client, vsphere.InstRp{Inst: vmName1, Rp: "rp1"}, vsphere.InstRp{Inst: vmName2, Rp: "rp2"})
instances, err := s.Env.Instances([]instance.Id{instance.Id(vmName1), instance.Id(vmName2)})
c.Assert(err, jc.ErrorIsNil)
c.Assert(len(instances), gc.Equals, 2)
c.Assert(string(instances[0].Id()), gc.Equals, vmName1)
c.Assert(string(instances[1].Id()), gc.Equals, vmName2)
}
示例13: getInstance
// getInstance returns an up-to-date version of the instance with the given
// name.
func (env *azureEnviron) getInstance(hostedService *gwacl.HostedService, roleName string) (instance.Instance, error) {
if n := len(hostedService.Deployments); n != 1 {
return nil, fmt.Errorf("expected one deployment for %q, got %d", hostedService.ServiceName, n)
}
deployment := &hostedService.Deployments[0]
var maskStateServerPorts bool
var instanceId instance.Id
switch deployment.Name {
case deploymentNameV1(hostedService.ServiceName):
// Old style instance.
instanceId = instance.Id(hostedService.ServiceName)
if n := len(deployment.RoleList); n != 1 {
return nil, fmt.Errorf("expected one role for %q, got %d", deployment.Name, n)
}
roleName = deployment.RoleList[0].RoleName
// In the old implementation of the Azure provider,
// all machines opened the state and API server ports.
maskStateServerPorts = true
case deploymentNameV2(hostedService.ServiceName):
instanceId = instance.Id(fmt.Sprintf("%s-%s", hostedService.ServiceName, roleName))
// Newly created state server machines are put into
// the cloud service with the stateServerLabel label.
if decoded, err := base64.StdEncoding.DecodeString(hostedService.Label); err == nil {
maskStateServerPorts = string(decoded) == stateServerLabel
}
}
var roleInstance *gwacl.RoleInstance
for _, role := range deployment.RoleInstanceList {
if role.RoleName == roleName {
roleInstance = &role
break
}
}
instance := &azureInstance{
environ: env,
hostedService: &hostedService.HostedServiceDescriptor,
instanceId: instanceId,
deploymentName: deployment.Name,
roleName: roleName,
roleInstance: roleInstance,
maskStateServerPorts: maskStateServerPorts,
}
return instance, nil
}
示例14: TestCreateContainerWithBlockStorage
func (s *LxcSuite) TestCreateContainerWithBlockStorage(c *gc.C) {
err := os.Remove(s.RestartDir)
c.Assert(err, jc.ErrorIsNil)
manager := s.makeManager(c, "test")
machineConfig, err := containertesting.MockMachineConfig("1/lxc/0")
c.Assert(err, jc.ErrorIsNil)
storageConfig := &container.StorageConfig{AllowMount: true}
networkConfig := container.BridgeNetworkConfig("nic42", 4321, nil)
instance := containertesting.CreateContainerWithMachineAndNetworkAndStorageConfig(c, manager, machineConfig, networkConfig, storageConfig)
name := string(instance.Id())
autostartLink := lxc.RestartSymlink(name)
config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name))
c.Assert(err, jc.ErrorIsNil)
expected := fmt.Sprintf(`
# network config
# interface "eth0"
lxc.network.type = veth
lxc.network.link = nic42
lxc.network.flags = up
lxc.network.mtu = 4321
lxc.start.auto = 1
lxc.mount.entry = %s var/log/juju none defaults,bind 0 0
lxc.aa_profile = lxc-container-default-with-mounting
lxc.cgroup.devices.allow = b 7:* rwm
lxc.cgroup.devices.allow = c 10:237 rwm
`, s.logDir)
c.Assert(string(config), gc.Equals, expected)
c.Assert(autostartLink, jc.DoesNotExist)
}
示例15: TestClientAddMachinesWithInstanceIdSomeErrors
func (s *clientSuite) TestClientAddMachinesWithInstanceIdSomeErrors(c *gc.C) {
apiParams := make([]params.AddMachineParams, 3)
addrs := network.NewAddresses("1.2.3.4")
hc := instance.MustParseHardware("mem=4G")
for i := 0; i < 3; i++ {
apiParams[i] = params.AddMachineParams{
Jobs: []multiwatcher.MachineJob{multiwatcher.JobHostUnits},
InstanceId: instance.Id(fmt.Sprintf("1234-%d", i)),
Nonce: "foo",
HardwareCharacteristics: hc,
Addrs: params.FromNetworkAddresses(addrs...),
}
}
// This will cause the last add-machine to fail.
apiParams[2].Nonce = ""
machines, err := s.APIState.Client().AddMachines(apiParams)
c.Assert(err, jc.ErrorIsNil)
c.Assert(len(machines), gc.Equals, 3)
for i, machineResult := range machines {
if i == 2 {
c.Assert(machineResult.Error, gc.NotNil)
c.Assert(machineResult.Error, gc.ErrorMatches, "cannot add a new machine: cannot add a machine with an instance id and no nonce")
} else {
c.Assert(machineResult.Machine, gc.DeepEquals, strconv.Itoa(i))
s.checkMachine(c, machineResult.Machine, series.LatestLts(), apiParams[i].Constraints.String())
instanceId := fmt.Sprintf("1234-%d", i)
s.checkInstance(c, machineResult.Machine, instanceId, "foo", hc, addrs)
}
}
}