-
Notifications
You must be signed in to change notification settings - Fork 368
Expand file tree
/
Copy pathquota_presenter_builder.rb
More file actions
64 lines (56 loc) · 1.89 KB
/
quota_presenter_builder.rb
File metadata and controls
64 lines (56 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
module VCAP::CloudController::Presenters
class QuotaPresenterBuilder
def initialize(quota)
@quota = quota
@hash = {}
end
def build
@hash
end
def add_resource_limits
@hash.merge!({
apps: {
total_memory_in_mb: unlimited_to_nil(@quota.memory_limit),
per_process_memory_in_mb: unlimited_to_nil(@quota.instance_memory_limit),
total_instances: unlimited_to_nil(@quota.app_instance_limit),
per_app_tasks: unlimited_to_nil(@quota.app_task_limit),
log_rate_limit_in_bytes_per_second: unlimited_to_nil(@quota.log_rate_limit)
},
services: {
paid_services_allowed: @quota.non_basic_services_allowed,
total_service_instances: unlimited_to_nil(@quota.total_services),
total_service_keys: unlimited_to_nil(@quota.total_service_keys)
},
routes: {
total_routes: unlimited_to_nil(@quota.total_routes),
total_reserved_ports: unlimited_to_nil(@quota.total_reserved_route_ports)
}
})
if @quota.respond_to?(:guid)
@hash[:guid] = @quota.guid
@hash[:created_at] = @quota.created_at
@hash[:updated_at] = @quota.updated_at
@hash[:name] = @quota.name
end
self
end
def add_domains
@hash[:domains] = {
total_domains: unlimited_to_nil(@quota.total_private_domains)
}
self
end
def add_relationships(relationships)
@hash[:relationships] = relationships
self
end
def add_links(links)
@hash[:links] = links
self
end
private
def unlimited_to_nil(value)
value == -1 ? nil : value
end
end
end