Class: OodReservations::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/ood_reservations/query.rb

Overview

Object used to communicate with a batch server to retrieve reservation information for current user

Direct Known Subclasses

OodReservations::Queries::TorqueMoab

Defined Under Namespace

Classes: Error

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cluster:, **_) ⇒ Query

Returns a new instance of Query.

Parameters:

  • cluster (OodCluster::Cluster)

    the cluster to query



23
24
25
# File 'lib/ood_reservations/query.rb', line 23

def initialize(cluster:, **_)
  @cluster = cluster
end

Class Method Details

.build(**kwargs) ⇒ Query?

Build a query object choosing the class of the object based on the servers available in the cluster object

Parameters:

  • cluster (OodCluster::Cluster)

    the cluster to query

Returns:

  • (Query, nil)

    query object used to query reservations from cluster



14
15
16
17
18
19
20
# File 'lib/ood_reservations/query.rb', line 14

def self.build(**kwargs)
  if Queries::TorqueMoab.match(**kwargs)
    Queries::TorqueMoab.new(**kwargs)
  else
    nil
  end
end

Instance Method Details

#reservation(id:) ⇒ Reservation

This method is abstract.

This should be implemented by the adapter

Queries the batch server for a given reservation

Parameters:

  • id (#to_s)

    the id of the reservation

Returns:

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/ood_reservations/query.rb', line 31

def reservation(id:)
  raise NotImplementedError
end

#reservationsArray<Reservation>

This method is abstract.

This should be implemented by the adapter

Queries the batch server for a list of reservations

Returns:

Raises:

  • (NotImplementedError)


38
39
40
# File 'lib/ood_reservations/query.rb', line 38

def reservations
  raise NotImplementedError
end