Class: Couchbase::Management::AnalyticsIndexManager

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase/management/analytics_index_manager.rb,
/home/runner/work/couchbase-ruby-client/couchbase-ruby-client/lib/couchbase/management/analytics_index_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(backend, observability) ⇒ AnalyticsIndexManager

Returns a new instance of AnalyticsIndexManager.

Parameters:

  • backend (Couchbase::Backend)


632
633
634
635
# File 'lib/couchbase/management/analytics_index_manager.rb', line 632

def initialize(backend, observability)
  @backend = backend
  @observability = observability
end

Instance Method Details

This method returns an undefined value.

Connects a link

Parameters:

Raises:



778
779
780
781
782
# File 'lib/couchbase/management/analytics_index_manager.rb', line 778

def connect_link(options = Options::Analytics::ConnectLink.new)
  @observability.record_operation(Observability::OP_AM_CONNECT_LINK, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_link_connect(options.to_backend, obs_handler)
  end
end

#create_dataset(dataset_name, bucket_name, options = Options::Analytics::CreateDataset.new) ⇒ void

This method returns an undefined value.

Creates a new dataset

Parameters:

  • dataset_name (String)

    name of dataset

  • bucket_name (String)

    name of the bucket

  • options (Options::Analytics::CreateDataset) (defaults to: Options::Analytics::CreateDataset.new)

Raises:



678
679
680
681
682
# File 'lib/couchbase/management/analytics_index_manager.rb', line 678

def create_dataset(dataset_name, bucket_name, options = Options::Analytics::CreateDataset.new)
  @observability.record_operation(Observability::OP_AM_CREATE_DATASET, options.parent_span, self, :analytics) do |_obs_handler|
    @backend.analytics_dataset_create(dataset_name, bucket_name, options.to_backend)
  end
end

#create_dataverse(dataverse_name, options = Options::Analytics::CreateDataverse.new) ⇒ void

This method returns an undefined value.

Creates a new dataverse

Parameters:

Raises:



646
647
648
649
650
# File 'lib/couchbase/management/analytics_index_manager.rb', line 646

def create_dataverse(dataverse_name, options = Options::Analytics::CreateDataverse.new)
  @observability.record_operation(Observability::OP_AM_CREATE_DATAVERSE, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_dataverse_create(dataverse_name, options.to_backend, obs_handler)
  end
end

#create_index(index_name, dataset_name, fields, options = Options::Analytics::CreateIndex.new) ⇒ void

This method returns an undefined value.

Creates a new index

Parameters:

  • index_name (String)

    name of the index

  • dataset_name (String)

    name of the dataset

  • fields (Hash<String => String>)

    mapping of the field name to field type

  • options (Options::Analytics::CreateIndex) (defaults to: Options::Analytics::CreateIndex.new)

Raises:



729
730
731
732
733
# File 'lib/couchbase/management/analytics_index_manager.rb', line 729

def create_index(index_name, dataset_name, fields, options = Options::Analytics::CreateIndex.new)
  @observability.record_operation(Observability::OP_AM_CREATE_INDEX, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_index_create(index_name, dataset_name, fields.entries, options.to_backend, obs_handler)
  end
end

This method returns an undefined value.

Creates a link

Parameters:

Raises:



822
823
824
825
826
# File 'lib/couchbase/management/analytics_index_manager.rb', line 822

def create_link(link, options = Options::Analytics::CreateLink.new)
  @observability.record_operation(Observability::OP_AM_CREATE_LINK, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_link_create(link.to_backend, options.to_backend, obs_handler)
  end
end

This method returns an undefined value.

Disconnects a link,

Parameters:

Raises:



792
793
794
795
796
# File 'lib/couchbase/management/analytics_index_manager.rb', line 792

def disconnect_link(options = Options::Analytics::DisconnectLink.new)
  @observability.record_operation(Observability::OP_AM_DISCONNECT_LINK, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_link_disconnect(options.to_backend, obs_handler)
  end
end

#drop_dataset(dataset_name, options = Options::Analytics::DropDataset.new) ⇒ void

This method returns an undefined value.

Drops a dataset

Parameters:

Raises:



693
694
695
696
697
# File 'lib/couchbase/management/analytics_index_manager.rb', line 693

def drop_dataset(dataset_name, options = Options::Analytics::DropDataset.new)
  @observability.record_operation(Observability::OP_AM_DROP_DATASET, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_dataset_drop(dataset_name, options.to_backend, obs_handler)
  end
end

#drop_dataverse(dataverse_name, options = Options::Analytics::DropDataverse.new) ⇒ void

This method returns an undefined value.

Drops a dataverse

Parameters:

Raises:



661
662
663
664
665
# File 'lib/couchbase/management/analytics_index_manager.rb', line 661

def drop_dataverse(dataverse_name, options = Options::Analytics::DropDataverse.new)
  @observability.record_operation(Observability::OP_AM_DROP_DATAVERSE, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_dataverse_drop(dataverse_name, options.to_backend, obs_handler)
  end
end

#drop_index(index_name, dataset_name, options = Options::Analytics::DropIndex.new) ⇒ void

This method returns an undefined value.

Drops an index

Parameters:

  • index_name (String)

    name of the index

  • dataset_name (String)

    name of the dataset

  • options (Options::Analytics::DropIndex) (defaults to: Options::Analytics::DropIndex.new)

Raises:



745
746
747
748
749
# File 'lib/couchbase/management/analytics_index_manager.rb', line 745

def drop_index(index_name, dataset_name, options = Options::Analytics::DropIndex.new)
  @observability.record_operation(Observability::OP_AM_DROP_INDEX, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_index_drop(index_name, dataset_name, options.to_backend, obs_handler)
  end
end

This method returns an undefined value.

Drops the link

Parameters:

  • link_name (String)

    name of the link

  • dataverse_name (String)

    dataverse where the link belongs

  • options (Options::Analytics::DropLink) (defaults to: Options::Analytics::DropLink.new)

Raises:



853
854
855
856
857
# File 'lib/couchbase/management/analytics_index_manager.rb', line 853

def drop_link(link_name, dataverse_name, options = Options::Analytics::DropLink.new)
  @observability.record_operation(Observability::OP_AM_DROP_LINK, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_link_drop(link_name, dataverse_name, options.to_backend, obs_handler)
  end
end

#get_all_datasets(options = Options::Analytics::GetAllDatasets.new) ⇒ Array<AnalyticsDataset>

Gets all datasets

Parameters:

Returns:



704
705
706
707
708
709
710
711
712
713
714
715
716
# File 'lib/couchbase/management/analytics_index_manager.rb', line 704

def get_all_datasets(options = Options::Analytics::GetAllDatasets.new)
  @observability.record_operation(Observability::OP_AM_GET_ALL_DATASETS, options.parent_span, self, :analytics) do |obs_handler|
    resp = @backend.analytics_dataset_get_all(options.to_backend, obs_handler)
    resp.map do |entry|
      AnalyticsDataset.new do |dataset|
        dataset.name = entry[:name]
        dataset.dataverse_name = entry[:dataverse_name]
        dataset.link_name = entry[:link_name]
        dataset.bucket_name = entry[:bucket_name]
      end
    end
  end
end

#get_all_indexes(options = Options::Analytics::GetAllIndexes.new) ⇒ Array<AnalyticsIndex>

Gets all indexes

Parameters:

Returns:



756
757
758
759
760
761
762
763
764
765
766
767
768
# File 'lib/couchbase/management/analytics_index_manager.rb', line 756

def get_all_indexes(options = Options::Analytics::GetAllIndexes.new)
  @observability.record_operation(Observability::OP_AM_GET_ALL_INDEXES, options.parent_span, self, :analytics) do |obs_handler|
    resp = @backend.analytics_index_get_all(options.to_backend, obs_handler)
    resp.map do |entry|
      AnalyticsIndex.new do |dataset|
        dataset.name = entry[:name]
        dataset.dataverse_name = entry[:dataverse_name]
        dataset.dataset_name = entry[:dataset_name]
        dataset.is_primary = entry[:is_primary]
      end
    end
  end
end

This method returns an undefined value.

Retrieves the links

Parameters:

Raises:



867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
# File 'lib/couchbase/management/analytics_index_manager.rb', line 867

def get_links(options = Options::Analytics::GetLinks.new)
  @observability.record_operation(Observability::OP_AM_GET_LINKS, options.parent_span, self, :analytics) do |obs_handler|
    resp = @backend.analytics_link_get_all(options.to_backend, obs_handler)
    resp.map do |entry|
      case entry[:type]
      when :s3
        S3ExternalAnalyticsLink.new(
          entry[:link_name],
          entry[:dataverse],
          entry[:access_key_id],
          nil,
          entry[:region],
          service_endpoint: entry[:service_endpoint],
        )
      when :couchbase
        CouchbaseRemoteAnalyticsLink.new(
          entry[:link_name],
          entry[:dataverse],
          entry[:hostname],
          username: entry[:username],
          encryption: EncryptionSettings.new(
            level: entry[:encryption_level],
            certificate: entry[:certificate],
            client_certificate: entry[:client_certificate],
          ),
        )
      when :azureblob
        AzureBlobExternalAnalyticsLink.new(
          entry[:link_name],
          entry[:dataverse],
          account_name: entry[:account_name],
          blob_endpoint: entry[:blob_endpoint],
          endpoint_suffix: entry[:endpoint_suffix],
        )
      end
    end
  end
end

#get_pending_mutations(options = Options::Analytics::GetPendingMutations.new) ⇒ Hash<String => Integer>

Note:

If a link is disconnected then it will return no results. If all links are disconnected, then

Gets the pending mutations for all datasets.

an empty object is returned.

Parameters:

Returns:

  • (Hash<String => Integer>)

    dictionary, where keys are dataset coordinates encoded as “dataverse.dataset” and values are number of mutations for given dataset.



807
808
809
810
811
# File 'lib/couchbase/management/analytics_index_manager.rb', line 807

def get_pending_mutations(options = Options::Analytics::GetPendingMutations.new)
  @observability.record_operation(Observability::OP_AM_GET_PENDING_MUTATIONS, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_get_pending_mutations(options.to_backend, obs_handler)
  end
end

This method returns an undefined value.

Replaces the link

Parameters:

Raises:



837
838
839
840
841
# File 'lib/couchbase/management/analytics_index_manager.rb', line 837

def replace_link(link, options = Options::Analytics::ReplaceLink.new)
  @observability.record_operation(Observability::OP_AM_REPLACE_LINK, options.parent_span, self, :analytics) do |obs_handler|
    @backend.analytics_link_replace(link.to_backend, options.to_backend, obs_handler)
  end
end