55
53
os.mkdir('/etc/ceph')
56
def get_ceph_request():
57
service = service_name()
59
replicas = config('ceph-osd-replication-count')
60
rq.add_op_create_pool(name=service, replica_count=replicas)
58
64
@hooks.hook('ceph-relation-changed')
59
65
@restart_on_change(restart_map())
60
66
def ceph_changed():
68
74
log('Could not create ceph keyring: peer not ready?')
71
settings = relation_get()
72
if settings and 'broker_rsp' in settings:
73
rsp = CephBrokerRsp(settings['broker_rsp'])
74
# Non-zero return code implies failure
76
log("Ceph broker request failed (rc=%s, msg=%s)" %
77
(rsp.exit_code, rsp.exit_msg), level=ERROR)
80
log("Ceph broker request succeeded (rc=%s, msg=%s)" %
81
(rsp.exit_code, rsp.exit_msg), level=INFO)
77
if is_request_complete(get_ceph_request()):
78
log('Request complete')
82
79
CONFIGS.write_all()
83
80
set_ceph_env_variables(service=service)
84
81
for rid in relation_ids('storage-backend'):
85
82
storage_backend(rid)
87
83
# Ensure that cinder-volume is restarted since only now can we
88
84
# guarantee that ceph resources are ready.
89
85
service_restart('cinder-volume')
92
replicas = config('ceph-osd-replication-count')
93
rq.add_op_create_pool(name=service, replica_count=replicas)
94
for rid in relation_ids('ceph'):
95
relation_set(relation_id=rid, broker_req=rq.request)
96
log("Request(s) sent to Ceph broker (rid=%s)" % (rid))
87
send_request_if_needed(get_ceph_request())
99
90
@hooks.hook('ceph-relation-broken')