cf-charmers team mailing list archive
-
cf-charmers team
-
Mailing list archive
-
Message #00613
[Merge] lp:~whitmo/charms/trusty/cloudfoundry/add-collector into lp:~cf-charmers/charms/trusty/cloudfoundry/trunk
Whit Morriss has proposed merging lp:~whitmo/charms/trusty/cloudfoundry/add-collector into lp:~cf-charmers/charms/trusty/cloudfoundry/trunk.
Requested reviews:
Cory Johns (johnsca)
For more details, see:
https://code.launchpad.net/~whitmo/charms/trusty/cloudfoundry/add-collector/+merge/241628
Add the collector as a service
- add service block for collector job
- GraphiteContext for creating relationships to graphite
- update dependencies (esp. raindance)
- minor tweaks to support subordinates
--
https://code.launchpad.net/~whitmo/charms/trusty/cloudfoundry/add-collector/+merge/241628
Your team Cloud Foundry Charmers is subscribed to branch lp:~cf-charmers/charms/trusty/cloudfoundry/trunk.
=== modified file 'Makefile'
--- Makefile 2014-09-30 17:22:35 +0000
+++ Makefile 2014-11-12 22:03:54 +0000
@@ -18,6 +18,7 @@
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
+ rm -fr .tox
clean-pyc:
find . -name '*.pyc' -exec rm -f {} +
=== modified file 'charmgen/placements.yaml'
--- charmgen/placements.yaml 2014-09-30 17:22:35 +0000
+++ charmgen/placements.yaml 2014-11-12 22:03:54 +0000
@@ -6,7 +6,7 @@
c: [login, uaa, mysql]
d: [dea, hm, etcd]
e: [loggregator, loggregator-trafficcontrol]
- f: [haproxy]
+ f: [haproxy, collector]
local:
__default__:
constraints: arch=amd64 root-disk=20G mem=12G
=== modified file 'cloudfoundry/contexts.py'
--- cloudfoundry/contexts.py 2014-11-06 23:37:55 +0000
+++ cloudfoundry/contexts.py 2014-11-12 22:03:54 +0000
@@ -71,6 +71,29 @@
return data
+class GraphiteRelation(RelationContext):
+ name = 'carbon'
+ interface = 'tcp'
+ required_keys = 'port', 'hostname'
+
+ def is_ready(self):
+ return True
+
+ def erb_mapping(self):
+ orch = OrchestratorRelation()
+ deployment_name = 'cf'
+
+ if orch.is_ready():
+ deployment_name = orch.get_first('deployment_name')
+
+ if self.name in self: # check due to everreadiness
+ return {'collector.use_graphite': True,
+ 'collector.deployment_name': deployment_name,
+ 'collector.graphite.address': self.get_first('hostname'),
+ 'collector.graphite.port': self.get_first('port')}
+ return {}
+
+
class NatsRelation(RelationContext):
name = 'nats'
interface = 'nats'
@@ -505,6 +528,7 @@
def provide_data(self):
pub_key = path(hookenv.charm_dir()) / 'orchestrator-key.pub'
result = {
+ 'deployment_name': hookenv.service_name(),
'artifacts_url': self.get_artifacts_url(),
'cf_version': self.get_version(),
'ssh_key': pub_key.text(),
=== modified file 'cloudfoundry/releases.py'
--- cloudfoundry/releases.py 2014-09-30 17:22:35 +0000
+++ cloudfoundry/releases.py 2014-11-12 22:03:54 +0000
@@ -11,6 +11,7 @@
('loggregator-v1', 'loggregator'),
('hm9000-v1', 'hm'),
('haproxy-v1', 'haproxy'),
+ ('collector-v1', 'collector'),
('cs:trusty/mysql', 'mysql'),
('cs:~hazmat/trusty/etcd', 'etcd'),
=== modified file 'cloudfoundry/services.py'
--- cloudfoundry/services.py 2014-11-06 23:37:55 +0000
+++ cloudfoundry/services.py 2014-11-12 22:03:54 +0000
@@ -362,5 +362,20 @@
'provided_data': [],
'required_data': [contexts.RouterRelation],
}]
- }
+ },
+
+ 'collector-v1': {
+ 'service': 'collector',
+ 'summary': 'collect health information on cf internal services',
+ 'description': '',
+ 'jobs': [{
+ 'job_name': 'collector',
+ 'ports': [],
+ 'mapping': {},
+ 'provided_data': [],
+ 'required_data': [contexts.NatsRelation,
+ contexts.GraphiteRelation,
+ contexts.OrchestratorRelation]
+ }]
+ }
}
=== added file 'docs/debugging.rst'
--- docs/debugging.rst 1970-01-01 00:00:00 +0000
+++ docs/debugging.rst 2014-11-12 22:03:54 +0000
@@ -0,0 +1,8 @@
+==================
+ Cloud controller
+==================
+
+The cc console
+==============
+
+bin/console /var/vcap/jobs/cloud_controller_ng/config/cloud_controller_ng.yml
=== modified file 'hooks/common.py'
--- hooks/common.py 2014-11-06 23:37:55 +0000
+++ hooks/common.py 2014-11-12 22:03:54 +0000
@@ -14,7 +14,8 @@
from cloudfoundry.releases import RELEASES
from cloudfoundry.services import SERVICES
from cloudfoundry.contexts import JujuAPICredentials
-from cloudfoundry.contexts import OrchestratorRelation, CloudFoundryCredentials
+from cloudfoundry.contexts import OrchestratorRelation
+from cloudfoundry.contexts import CloudFoundryCredentials
from cloudfoundry.contexts import RequiredConfig
from cloudfoundry.path import path
from cloudfoundry.utils import wait_for
=== modified file 'reconciler/app.py'
--- reconciler/app.py 2014-11-03 16:13:57 +0000
+++ reconciler/app.py 2014-11-12 22:03:54 +0000
@@ -78,10 +78,14 @@
def poll_health():
for service_name, service in db.real['Services'].iteritems():
- for unit_name, unit in service.get('Units', {}).iteritems():
+ logging.debug("Poll health for %s: %s", service_name, service)
+ units = service.get('Units', {}) or {}
+ for unit_name, unit in units.iteritems():
unit_addr = unit.get('PublicAddress')
if unit_addr:
- tornado.ioloop.IOLoop.instance().add_callback(check_health, service_name, unit_name, unit_addr)
+ loop = tornado.ioloop.IOLoop.instance()
+ loop.add_callback(check_health, service_name,
+ unit_name, unit_addr)
def check_health(service_name, unit_name, unit_addr):
=== modified file 'tests/test_contexts.py'
--- tests/test_contexts.py 2014-11-04 15:36:48 +0000
+++ tests/test_contexts.py 2014-11-12 22:03:54 +0000
@@ -240,10 +240,13 @@
gv.return_value = 'version'
gd.return_value = 'domain'
path.return_value.__div__.return_value.text.return_value = 'mock_key'
- result = contexts.OrchestratorRelation().provide_data()
+ with mock.patch('charmhelpers.core.hookenv.service_name') as hs:
+ hs.return_value = 'cf'
+ result = contexts.OrchestratorRelation().provide_data()
self.assertEqual(result, {
'artifacts_url': 'artifacts_url',
'cf_version': 'version',
+ 'deployment_name': 'cf',
'domain': 'domain',
'ssh_key': 'mock_key',
})
=== modified file 'wheelhouse/args-0.1.0-py2-none-any.whl'
Binary files wheelhouse/args-0.1.0-py2-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/args-0.1.0-py2-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== removed file 'wheelhouse/boto-2.32.1-py2.py3-none-any.whl'
Binary files wheelhouse/boto-2.32.1-py2.py3-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/boto-2.32.1-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== added file 'wheelhouse/boto-2.34.0-py2.py3-none-any.whl'
Binary files wheelhouse/boto-2.34.0-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/boto-2.34.0-py2.py3-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== removed file 'wheelhouse/clint-0.3.7-py2-none-any.whl'
Binary files wheelhouse/clint-0.3.7-py2-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/clint-0.3.7-py2-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== added file 'wheelhouse/clint-0.4.1-py2-none-any.whl'
Binary files wheelhouse/clint-0.4.1-py2-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/clint-0.4.1-py2-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== added file 'wheelhouse/futures-2.2.0-py2.py3-none-any.whl'
Binary files wheelhouse/futures-2.2.0-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/futures-2.2.0-py2.py3-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== removed file 'wheelhouse/path.py-6.2-py2-none-any.whl'
Binary files wheelhouse/path.py-6.2-py2-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/path.py-6.2-py2-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== added file 'wheelhouse/path.py-7.0-py2-none-any.whl'
Binary files wheelhouse/path.py-7.0-py2-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/path.py-7.0-py2-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== removed file 'wheelhouse/raindance-0.2dev-py2-none-any.whl'
Binary files wheelhouse/raindance-0.2dev-py2-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/raindance-0.2dev-py2-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== added file 'wheelhouse/raindance-0.3dev_r0-py2-none-any.whl'
Binary files wheelhouse/raindance-0.3dev_r0-py2-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/raindance-0.3dev_r0-py2-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== removed file 'wheelhouse/requests-2.2.1-py2.py3-none-any.whl'
Binary files wheelhouse/requests-2.2.1-py2.py3-none-any.whl 2014-06-25 07:08:08 +0000 and wheelhouse/requests-2.2.1-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== removed file 'wheelhouse/requests-2.4.1-py2.py3-none-any.whl'
Binary files wheelhouse/requests-2.4.1-py2.py3-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/requests-2.4.1-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 differ
=== added file 'wheelhouse/requests-2.4.3-py2.py3-none-any.whl'
Binary files wheelhouse/requests-2.4.3-py2.py3-none-any.whl 1970-01-01 00:00:00 +0000 and wheelhouse/requests-2.4.3-py2.py3-none-any.whl 2014-11-12 22:03:54 +0000 differ
=== modified file 'wheelhouse/subparse-0.3.3-py2-none-any.whl'
Binary files wheelhouse/subparse-0.3.3-py2-none-any.whl 2014-09-30 21:15:05 +0000 and wheelhouse/subparse-0.3.3-py2-none-any.whl 2014-11-12 22:03:54 +0000 differ
Follow ups