feat: export transactions to support importing kv as a library

Co-authored-by: Chris Goller <goller@gmail.com>
pull/17374/head
Marc Delagrammatikas 2020-03-20 11:59:11 -07:00
parent ea8e6d15d0
commit 71ee028973
5 changed files with 25 additions and 0 deletions

View File

@ -303,6 +303,11 @@ func (s *Service) CreateAuthorization(ctx context.Context, a *influxdb.Authoriza
})
}
// CreateAuthorizationTx is used when importing kv as a library
func (s *Service) CreateAuthorizationTx(ctx context.Context, tx Tx, a *influxdb.Authorization) error {
return s.createAuthorization(ctx, tx, a)
}
func (s *Service) createAuthorization(ctx context.Context, tx Tx, a *influxdb.Authorization) error {
if err := a.Valid(); err != nil {
return &influxdb.Error{

View File

@ -455,6 +455,11 @@ func (s *Service) CreateBucket(ctx context.Context, b *influxdb.Bucket) error {
})
}
// CreateBucketTx is used when importing kv as a library
func (s *Service) CreateBucketTx(ctx context.Context, tx Tx, b *influxdb.Bucket) (err error) {
return s.createBucket(ctx, tx, b)
}
func (s *Service) createBucket(ctx context.Context, tx Tx, b *influxdb.Bucket) (err error) {
if b.OrgID.Valid() {
span, ctx := tracing.StartSpanFromContext(ctx)

View File

@ -279,6 +279,11 @@ func (s *Service) addOrgOwner(ctx context.Context, tx Tx, orgID influxdb.ID) err
return s.addResourceOwner(ctx, tx, influxdb.OrgsResourceType, orgID)
}
// CreateOrganizationTx is used when importing kv as a library
func (s *Service) CreateOrganizationTx(ctx context.Context, tx Tx, o *influxdb.Organization) (err error) {
return s.createOrganization(ctx, tx, o)
}
func (s *Service) createOrganization(ctx context.Context, tx Tx, o *influxdb.Organization) (err error) {
if err := s.validOrganizationName(ctx, tx, o); err != nil {
return err

View File

@ -180,6 +180,11 @@ func (s *Service) CreateUserResourceMapping(ctx context.Context, m *influxdb.Use
})
}
// CreateUserResourceMappingTx is used when importing kv as a library
func (s *Service) CreateUserResourceMappingTx(ctx context.Context, tx Tx, m *influxdb.UserResourceMapping) error {
return s.createUserResourceMapping(ctx, tx, m)
}
func (s *Service) createUserResourceMapping(ctx context.Context, tx Tx, m *influxdb.UserResourceMapping) error {
span, ctx := tracing.StartSpanFromContext(ctx)
defer span.Finish()

View File

@ -230,6 +230,11 @@ func (s *Service) CreateUser(ctx context.Context, u *influxdb.User) error {
})
}
// CreateUserTx is used when importing kv as a library
func (s *Service) CreateUserTx(ctx context.Context, tx Tx, u *influxdb.User) error {
return s.createUser(ctx, tx, u)
}
func (s *Service) createUser(ctx context.Context, tx Tx, u *influxdb.User) error {
if err := s.uniqueUserName(ctx, tx, u); err != nil {
return err