Class: Vra::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/vra-restapi/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, id) ⇒ Request

Returns a new instance of Request.



24
25
26
27
28
29
30
31
32
# File 'lib/vra-restapi/request.rb', line 24

def initialize(client, id)
  @client = client
  @id     = id

  @request_data       = nil
  @status             = nil
  @completion_state   = nil
  @completion_details = nil
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



23
24
25
# File 'lib/vra-restapi/request.rb', line 23

def client
  @client
end

#idObject (readonly)

Returns the value of attribute id.



23
24
25
# File 'lib/vra-restapi/request.rb', line 23

def id
  @id
end

Instance Method Details

#completed?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/vra-restapi/request.rb', line 55

def completed?
  successful? || failed?
end

#completion_detailsObject



74
75
76
77
78
79
# File 'lib/vra-restapi/request.rb', line 74

def completion_details
  refresh_if_empty
  return if request_empty?

  @request_data['requestCompletion']['completionDetails']
end

#completion_stateObject



67
68
69
70
71
72
# File 'lib/vra-restapi/request.rb', line 67

def completion_state
  refresh_if_empty
  return if request_empty?

  @request_data['requestCompletion']['requestCompletionState']
end

#failed?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/vra-restapi/request.rb', line 63

def failed?
  status == 'FAILED'
end

#refreshObject



34
35
36
37
38
# File 'lib/vra-restapi/request.rb', line 34

def refresh
  @request_data = JSON.parse(client.http_get!("/catalog-service/api/consumer/requests/#{@id}"))
rescue Vra::Exception::HTTPNotFound
  raise Vra::Exception::NotFound, "request ID #{@id} is not found"
end

#refresh_if_emptyObject



40
41
42
# File 'lib/vra-restapi/request.rb', line 40

def refresh_if_empty
  refresh if request_empty?
end

#request_empty?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/vra-restapi/request.rb', line 44

def request_empty?
  @request_data.nil?
end

#resourcesObject



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/vra-restapi/request.rb', line 81

def resources
  resources = []

  begin
    request_resources = client.http_get_paginated_array!("/catalog-service/api/consumer/requests/#{@id}/resources")
  rescue Vra::Exception::HTTPNotFound
    raise Vra::Exception::NotFound, "resources for request ID #{@id} are not found"
  end

  request_resources.each do |resource|
    resources << Vra::Resource.new(client, data: resource)
  end

  resources
end

#statusObject



48
49
50
51
52
53
# File 'lib/vra-restapi/request.rb', line 48

def status
  refresh_if_empty
  return if request_empty?

  @request_data['phase']
end

#successful?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/vra-restapi/request.rb', line 59

def successful?
  status == 'SUCCESSFUL'
end