github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/indexshipper/table_client.go (about)

     1  package indexshipper
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/grafana/loki/pkg/storage/chunk/client"
     7  	"github.com/grafana/loki/pkg/storage/config"
     8  	"github.com/grafana/loki/pkg/storage/stores/indexshipper/storage"
     9  	"github.com/grafana/loki/pkg/storage/stores/series/index"
    10  )
    11  
    12  type tableClient struct {
    13  	indexStorageClient storage.Client
    14  }
    15  
    16  // NewTableClient creates a client for managing tables in object storage based index store.
    17  // It is typically used when running a table manager.
    18  func NewTableClient(objectClient client.ObjectClient, storageKeyPrefix string) index.TableClient {
    19  	return &tableClient{storage.NewIndexStorageClient(objectClient, storageKeyPrefix)}
    20  }
    21  
    22  func (b *tableClient) ListTables(ctx context.Context) ([]string, error) {
    23  	b.indexStorageClient.RefreshIndexListCache(ctx)
    24  	return b.indexStorageClient.ListTables(ctx)
    25  }
    26  
    27  func (b *tableClient) CreateTable(ctx context.Context, desc config.TableDesc) error {
    28  	return nil
    29  }
    30  
    31  func (b *tableClient) Stop() {
    32  	b.indexStorageClient.Stop()
    33  }
    34  
    35  func (b *tableClient) DeleteTable(ctx context.Context, tableName string) error {
    36  	files, _, err := b.indexStorageClient.ListFiles(ctx, tableName, true)
    37  	if err != nil {
    38  		return err
    39  	}
    40  
    41  	for _, file := range files {
    42  		err := b.indexStorageClient.DeleteFile(ctx, tableName, file.Name)
    43  		if err != nil {
    44  			return err
    45  		}
    46  	}
    47  
    48  	return nil
    49  }
    50  
    51  func (b *tableClient) DescribeTable(ctx context.Context, name string) (desc config.TableDesc, isActive bool, err error) {
    52  	return config.TableDesc{
    53  		Name: name,
    54  	}, true, nil
    55  }
    56  
    57  func (b *tableClient) UpdateTable(ctx context.Context, current, expected config.TableDesc) error {
    58  	return nil
    59  }