cf_light_api 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2598bd90a4e0453de25c9cd8e0247c528cdb9a85
4
- data.tar.gz: 87cadea0817776aafb744ad4448d4a87a8d496c4
3
+ metadata.gz: c695feed1d26f00127af6fac5fb24de9d64e0b56
4
+ data.tar.gz: 42228f7a1efecd0f66f4f3ac0a1f31ad8de6d734
5
5
  SHA512:
6
- metadata.gz: af22c2c73a60c6a73c4317f85b7ce0929136fe288f290cc740d054de132e0e84571585eeaa4ec4fec2b5b1c475cc1a8043444a28f1b4fe034611afba1c4aa3ff
7
- data.tar.gz: d54ac8cac0621763770844fc75637ccd52c713b45f81db54ef6f2f383e1b239e2d70cd294cc88711b4026f1c38af7ace0fa4f0b5aa3e5a6bd36ffaac45c5adf2
6
+ metadata.gz: 6a412171a1799c8797bcd53e064cdad186154c42ab01d2bf46145b15f2d56ac9b3fbb6303f9140546478bbfc48e9bcba0d832b777b26ae280850acf15222772e
7
+ data.tar.gz: 5de6fde920e3ad043ed7673a8fe0b70500665e377f076b1844a1f053b6c004180a95e87943a9c8f3fe028fedc525325e2ce51567db6f6463b5036ed4f57da00a
@@ -58,3 +58,16 @@ def format_duration(elapsed_seconds)
58
58
  hours = elapsed_seconds / (60 * 60)
59
59
  format("%02d hrs, %02d mins, %02d secs", hours, minutes, seconds)
60
60
  end
61
+
62
+ def format_routes_for_app app
63
+ routes = cf_rest app['entity']['routes_url']
64
+ routes.collect do |route|
65
+ host = route['entity']['host']
66
+ path = route['entity']['path']
67
+
68
+ domain = @domains.find{|a_domain| a_domain['metadata']['guid'] == route['entity']['domain_guid']}
69
+ domain = domain['entity']['name']
70
+
71
+ "#{host}.#{domain}#{path}"
72
+ end
73
+ end
@@ -63,6 +63,7 @@ scheduler.every UPDATE_INTERVAL, :first_in => '5s', :overlap => false, :timeout
63
63
  @quotas = cf_rest('/v2/quota_definitions?results-per-page=100')
64
64
  @spaces = cf_rest('/v2/spaces?results-per-page=100')
65
65
  @stacks = cf_rest('/v2/stacks?results-per-page=100')
66
+ @domains = cf_rest('/v2/domains?results-per-page=100')
66
67
 
67
68
  formatted_orgs = @orgs.map do |org|
68
69
  quota = @quotas.find{|a_quota| a_quota['metadata']['guid'] == org['entity']['quota_definition_guid']}
@@ -81,38 +82,39 @@ scheduler.every UPDATE_INTERVAL, :first_in => '5s', :overlap => false, :timeout
81
82
 
82
83
  formatted_apps = @apps.map do |app|
83
84
  # TODO: This is a bit repetative, could maybe improve?
84
- space = @spaces.find{|a_space| a_space['metadata']['guid'] == app['entity']['space_guid']}
85
- org = @orgs.find{|an_org| an_org['metadata']['guid'] == space['entity']['organization_guid']}
86
- stack = @stacks.find{|a_stack| a_stack['metadata']['guid'] == app['entity']['stack_guid']}
85
+ space = @spaces.find{|a_space| a_space['metadata']['guid'] == app['entity']['space_guid']}
86
+ org = @orgs.find{|an_org| an_org['metadata']['guid'] == space['entity']['organization_guid']}
87
+ stack = @stacks.find{|a_stack| a_stack['metadata']['guid'] == app['entity']['stack_guid']}
88
+ routes = format_routes_for_app(app)
87
89
 
88
90
  running = (app['entity']['state'] == "STARTED")
89
91
 
90
92
  base_data = {
93
+ :buildpack => app['entity']['buildpack'],
94
+ :data_from => Time.now.to_i,
95
+ :diego => app['entity']['diego'],
96
+ :docker => app['entity']['docker_image'] ? true : false,
97
+ :docker_image => app['entity']['docker_image'],
91
98
  :guid => app['metadata']['guid'],
99
+ :last_uploaded => app['metadata']['updated_at'] ? DateTime.parse(app['metadata']['updated_at']).strftime('%Y-%m-%d %T %z') : nil,
92
100
  :name => app['entity']['name'],
93
101
  :org => org['entity']['name'],
102
+ :routes => routes,
94
103
  :space => space['entity']['name'],
95
104
  :stack => stack['entity']['name'],
96
- :buildpack => app['entity']['buildpack'],
97
- :data_from => Time.now.to_i,
98
- :last_uploaded => app['metadata']['updated_at'] ? DateTime.parse(app['metadata']['updated_at']).strftime('%Y-%m-%d %T %z') : nil
105
+ :state => app['entity']['state']
99
106
  }
100
107
 
101
- # Add additional data, such as instance usage statistics, and routes - but this is only possible
102
- # if the instance is running.
108
+ # Add additional data, such as instance usage statistics - but this is only possible if the instances are running.
103
109
  additional_data = {}
104
110
 
105
111
  begin
106
112
  instance_stats = []
107
- routes = []
108
113
  if running
109
- # Finds the first running app instance that has a set of routes, in case there are stopped/crashed app instances that don't have any routes.
110
114
  instance_stats = formatted_instance_stats_for_app(app)
111
115
  running_instances = instance_stats.select{|instance| instance['stats']['uris'] if instance['state'] == 'RUNNING'}
112
- raise "Unable to retrieve app routes - no app instances are running." if running_instances.empty?
116
+ raise "There are no running instances of this app." if running_instances.empty?
113
117
 
114
- routes = running_instances.first['stats']['uris']
115
-
116
118
  if @graphite
117
119
  send_instance_usage_data_to_graphite(instance_stats, org['entity']['name'], space['entity']['name'], app['entity']['name'])
118
120
  end
@@ -121,7 +123,6 @@ scheduler.every UPDATE_INTERVAL, :first_in => '5s', :overlap => false, :timeout
121
123
  additional_data = {
122
124
  :running => running,
123
125
  :instances => instance_stats,
124
- :routes => routes,
125
126
  :error => nil
126
127
  }
127
128
 
@@ -133,7 +134,6 @@ scheduler.every UPDATE_INTERVAL, :first_in => '5s', :overlap => false, :timeout
133
134
  additional_data = {
134
135
  :running => 'error',
135
136
  :instances => [],
136
- :routes => [],
137
137
  :error => e.message
138
138
  }
139
139
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cf_light_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Springer Platform Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-14 00:00:00.000000000 Z
11
+ date: 2016-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cfoundry