in server/internal/server/CreateStorageAccount.go [48:85]
func (s *Server) CreateStorageAccount(ctx context.Context, in *pb.CreateStorageAccountRequest) (*pb.CreateStorageAccountResponse, error) {
logger := ctxlogger.GetLogger(ctx)
if s.AccountsClient == nil {
logger.Error("AccountsClient is nil in CreateStorageAccount(), azuresdk feature is likely disabled")
return nil, status.Errorf(codes.Unimplemented, "AccountsClient is nil in CreateStorageAccount(), azuresdk feature is likely disabled")
}
name, checkErr := s.generateUniqueStorageAccountName()
if checkErr != nil {
logger.Error("CheckNameAvailability() error: " + checkErr.Error())
return nil, HandleError(checkErr, "CheckNameAvailability()")
}
params := armstorage.AccountCreateParameters{
Location: to.Ptr(in.GetRegion()),
SKU: &armstorage.SKU{
Name: to.Ptr(armstorage.SKUNameStandardGRS),
},
Kind: to.Ptr(armstorage.KindStorageV2),
Properties: &armstorage.AccountPropertiesCreateParameters{
AllowBlobPublicAccess: to.Ptr(false),
},
}
poller, err := s.AccountsClient.BeginCreate(context.Background(), in.GetRgName(), name, params, nil)
if err != nil {
logger.Error("BeginCreate() error: " + err.Error())
return nil, HandleError(err, "BeginCreate()")
}
_, err = poller.PollUntilDone(context.Background(), nil)
if err != nil {
logger.Error("PollUntilDone() error: " + err.Error())
return nil, HandleError(err, "PollUntilDone()")
}
logger.Info("Created storage account: " + name)
return &pb.CreateStorageAccountResponse{Name: name}, nil
}