Sha256: 1f58a6a45cee99dd8db1b26f4e3ebafe06ef89f062c0a0544dfde003786a6400

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 KB

Contents

require_relative 'ionoscloud_base'

class Chef
  class Knife
    class IonoscloudDbaasPostgresBackupList < Knife
      include Knife::IonoscloudBase

      banner 'knife ionoscloud dbaas postgres backup list (options)'

      option :cluster_id,
              short: '-C CLUSTER_ID',
              long: '--cluster-id CLUSTER_ID',
              description: 'ID of the cluster'

      def initialize(args = [])
        super(args)
        @description =
        'If cluster_id is provided, retrieves a list of all backups of the given PostgreSQL cluster, '\
        'otherwise retrieves a list of all PostgreSQL cluster backups.'
        @directory = 'dbaas-postgres'
        @required_options = [:ionoscloud_username, :ionoscloud_password]
      end

      def run
        $stdout.sync = true
        handle_extra_config
        validate_required_params(@required_options, config)

        backup_list = [
          ui.color('ID', :bold),
          ui.color('Type', :bold),
          ui.color('Cluster ID', :bold),
          ui.color('Is Active', :bold),
          ui.color('Earliest Recovery Target Time', :bold),
          ui.color('Created Date', :bold),
        ]

        backups_api = IonoscloudDbaasPostgres::BackupsApi.new(api_client_dbaas)

        if config[:cluster_id]
          backups = backups_api.cluster_backups_get(config[:cluster_id])
        else
          backups = backups_api.clusters_backups_get()
        end

        backups.items.each do |backup|
          backup_list << backup.id
          backup_list << backup.type
          backup_list << backup.properties.cluster_id
          backup_list << backup.properties.is_active
          backup_list << backup.properties.earliest_recovery_target_time
          backup_list << backup.metadata.created_date
        end

        puts ui.list(backup_list, :uneven_columns_across, 6)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
knife-ionoscloud-6.1.1 lib/chef/knife/ionoscloud_dbaas_postgres_backup_list.rb