func (*uuidSuite) TestUUIDFromString(c *gc.C) { _, err := utils.UUIDFromString("blah") c.Assert(err, gc.ErrorMatches, `invalid UUID: "blah"`) validUUID := "9f484882-2f18-4fd2-967d-db9663db7bea" uuid, err := utils.UUIDFromString(validUUID) c.Assert(err, gc.IsNil) c.Assert(uuid.String(), gc.Equals, validUUID) }
// NewIPAddressTag returns the tag for the IP address with the given ID (UUID). func NewIPAddressTag(id string) IPAddressTag { uuid, err := utils.UUIDFromString(id) if err != nil { panic(err) } return IPAddressTag{id: uuid} }
func stringToUUID(id string) utils.UUID { uuid, err := utils.UUIDFromString(id) if err != nil { panic(err) } return uuid }
// NewActionTag returns the tag of an action with the given id (UUID). func NewActionTag(id string) ActionTag { uuid, err := utils.UUIDFromString(id) if err != nil { panic(err) } return ActionTag{ID: uuid} }
// AuthorizationURITenantID returns the tenant ID portion of the given URL, // which is expected to have come from DiscoverAuthorizationURI. func AuthorizationURITenantID(url *url.URL) (string, error) { path := strings.TrimPrefix(url.Path, "/") if _, err := utils.UUIDFromString(path); err != nil { return "", errors.NotValidf("authorization_uri %q", url) } return path, nil }
func (s *InteractiveSuite) SetUpTest(c *gc.C) { s.IsolationSuite.SetUpTest(c) uuids := []string{ "33333333-3333-3333-3333-333333333333", // password "44444444-4444-4444-4444-444444444444", // password key ID "55555555-5555-5555-5555-555555555555", // role assignment ID } s.newUUID = func() (utils.UUID, error) { uuid, err := utils.UUIDFromString(uuids[0]) if err != nil { return utils.UUID{}, err } uuids = uuids[1:] return uuid, nil } s.clock = testing.NewClock(clockStartTime()) }
// UUID returns the globally unique ID of the IP address. func (i *IPAddress) UUID() (utils.UUID, error) { return utils.UUIDFromString(i.doc.UUID) }
// ParseTag parses a string representation into a Tag. func ParseTag(tag string) (Tag, error) { kind, id, err := splitTag(tag) if err != nil { return nil, invalidTagError(tag, "") } switch kind { case UnitTagKind: id = unitTagSuffixToId(id) if !IsValidUnit(id) { return nil, invalidTagError(tag, kind) } return NewUnitTag(id), nil case MachineTagKind: id = machineTagSuffixToId(id) if !IsValidMachine(id) { return nil, invalidTagError(tag, kind) } return NewMachineTag(id), nil case ServiceTagKind: if !IsValidService(id) { return nil, invalidTagError(tag, kind) } return NewServiceTag(id), nil case UserTagKind: if !IsValidUser(id) { return nil, invalidTagError(tag, kind) } return NewUserTag(id), nil case EnvironTagKind: if !IsValidEnvironment(id) { return nil, invalidTagError(tag, kind) } return NewEnvironTag(id), nil case RelationTagKind: id = relationTagSuffixToKey(id) if !IsValidRelation(id) { return nil, invalidTagError(tag, kind) } return NewRelationTag(id), nil case NetworkTagKind: if !IsValidNetwork(id) { return nil, invalidTagError(tag, kind) } return NewNetworkTag(id), nil case ActionTagKind: if !IsValidAction(id) { return nil, invalidTagError(tag, kind) } return NewActionTag(id), nil case VolumeTagKind: id = volumeTagSuffixToId(id) if !IsValidVolume(id) { return nil, invalidTagError(tag, kind) } return NewVolumeTag(id), nil case CharmTagKind: if !IsValidCharm(id) { return nil, invalidTagError(tag, kind) } return NewCharmTag(id), nil case StorageTagKind: id = storageTagSuffixToId(id) if !IsValidStorage(id) { return nil, invalidTagError(tag, kind) } return NewStorageTag(id), nil case FilesystemTagKind: id = filesystemTagSuffixToId(id) if !IsValidFilesystem(id) { return nil, invalidTagError(tag, kind) } return NewFilesystemTag(id), nil case IPAddressTagKind: uuid, err := utils.UUIDFromString(id) if err != nil { return nil, invalidTagError(tag, kind) } return NewIPAddressTag(uuid.String()), nil case SubnetTagKind: if !IsValidSubnet(id) { return nil, invalidTagError(tag, kind) } return NewSubnetTag(id), nil case SpaceTagKind: if !IsValidSpace(id) { return nil, invalidTagError(tag, kind) } return NewSpaceTag(id), nil default: return nil, invalidTagError(tag, "") } }