diff --git a/src/lib/charm/gluster/block.py b/src/lib/charm/gluster/block.py index ccb0c84..92a8e05 100644 --- a/src/lib/charm/gluster/block.py +++ b/src/lib/charm/gluster/block.py @@ -652,9 +652,10 @@ def get_manual_bricks() -> Result: log("Gathering list of manually specified brick devices") brick_list = [] manual_config_brick_devices = config("brick_devices") - for brick in manual_config_brick_devices.split(" "): - if brick is not None: - brick_list.append(brick) + if manual_config_brick_devices: + for brick in manual_config_brick_devices.split(" "): + if brick is not None: + brick_list.append(brick) log("List of manual storage brick devices: {}".format(brick_list)) bricks = scan_devices(brick_list) if bricks.is_err(): diff --git a/src/reactive/main.py b/src/reactive/main.py index 132eb88..d1d5f38 100644 --- a/src/reactive/main.py +++ b/src/reactive/main.py @@ -223,6 +223,8 @@ def create_volume(peers: Dict[str, Dict], log("Got brick list: {}".format(brick_list.value)) log("Creating volume of type {} with brick list {}".format( cluster_type, [str(b) for b in brick_list.value]), INFO) + if not brick_list.value: + return Err("No block devices detected") result = None if cluster_type is VolumeType.Distribute: @@ -668,9 +670,16 @@ def update_status() -> None: local_bricks = get_local_bricks(volume_name) if local_bricks.is_ok(): - status_set(workload_state="active", - message="Unit is ready ({} bricks)".format( - len(local_bricks.value))) + if local_bricks.value: + status_set(workload_state="active", + message="Unit is ready ({} bricks)".format( + len(local_bricks.value))) + else: + status_set( + workload_state="blocked", + message='No block devices detected using ' + 'current configuration') + return else: status_set(workload_state="blocked",