def serve(etcd_discovery=None, size=3, *args, **kwargs): cluster_name = '-'.join(ifilter(None, ('etcd2', kwargs['cluster_name']))) status = run('status {cluster_name}'.format(cluster_name=cluster_name), warn_only=True, quiet=True) if status.succeeded and status.endswith('start/running'): sudo('stop {cluster_name}'.format(cluster_name=cluster_name)) if 'start/running' in run('status {cluster_name}'.format(cluster_name=cluster_name), warn_only=True, quiet=True): raise RuntimeError('Cluster hasn\'t stopped') etcd_discovery = shared_serve(etcd_discovery, size, kwargs) append('/etc/environment', 'ETCD_DISCOVERY={etcd_discovery}'.format(etcd_discovery=etcd_discovery), use_sudo=True) data_dir = '/var/{cluster_name}_data_dir'.format(cluster_name=cluster_name) sudo('mkdir -p "{data_dir}"'.format(data_dir=data_dir)) upload_template( path.join(path.dirname(resource_filename('offregister_etcd', '__init__.py')), 'data', 'etcd2.upstart.conf'), '/etc/init/{cluster_name}.conf'.format(cluster_name=cluster_name), context={k: str(v) for k, v in update_d(kwargs, locals()).iteritems()}, use_sudo=True ) sudo('initctl reload-configuration') sudo('start {cluster_name}'.format(cluster_name=cluster_name), warn_only=True) return etcd_discovery
def serve(etcd_discovery=None, size=3, *args, **kwargs): if kwargs['cluster_name']: raise NotImplementedError('Running multiple etcd clusters not yet implemented for CoreOS') cluster_name = 'etcd2' # '-'.join(ifilter(None, ('etcd2', kwargs['cluster_name']))) if run('systemctl status {cluster_name}.service'.format(cluster_name=cluster_name), warn_only=True, quiet=True).succeeded: sudo('systemctl stop {cluster_name}.service'.format(cluster_name=cluster_name)) etcd_discovery = shared_serve(etcd_discovery, size, cluster_name, kwargs) data_dir = '/var/{cluster_name}_data_dir'.format(cluster_name=cluster_name) sudo('mkdir -p "{data_dir}"'.format(data_dir=data_dir)) upload_template( path.join(path.dirname(resource_filename('offregister.aux_recipes', '__init__.py')), 'templates', 'etcd2.systemd.conf'), '/run/systemd/system/{cluster_name}.service.d/10-oem.conf'.format(cluster_name=cluster_name), context=locals(), use_sudo=True ) sudo('systemctl daemon-reload') sudo('systemctl start {cluster_name}.service'.format(cluster_name=cluster_name)) run('systemctl status {cluster_name}.service'.format(cluster_name=cluster_name))