charms.ceph sync for py3 bug fix

Change-Id: Iac68df226b30e570a74f2e4b59d36020e759f42d
Partial-Bug: #1735720
This commit is contained in:
Liam Young 2017-12-01 13:37:28 +00:00
parent 5451ef9cb2
commit 730b1d6b6a
1 changed files with 45 additions and 35 deletions

View File

@ -195,7 +195,7 @@ def save_sysctls(sysctl_dict, save_location):
except IOError as e:
log("Unable to persist sysctl settings to {}. Error {}".format(
save_location, e.message), level=ERROR)
save_location, e), level=ERROR)
raise
@ -221,7 +221,7 @@ def tune_nic(network_interface):
save_location=sysctl_file)
except IOError as e:
log("Write to /etc/sysctl.d/51-ceph-osd-charm-{} "
"failed. {}".format(network_interface, e.message),
"failed. {}".format(network_interface, e),
level=ERROR)
try:
@ -266,7 +266,7 @@ def get_link_speed(network_interface):
except IOError as e:
log("Unable to open {path} because of error: {error}".format(
path=speed_path,
error=e.message), level='error')
error=e), level='error')
return LinkSpeed["UNKNOWN"]
@ -286,13 +286,13 @@ def persist_settings(settings_dict):
context=settings_dict)
except IOError as err:
log("Unable to open {path} because of error: {error}".format(
path=HDPARM_FILE, error=err.message), level=ERROR)
path=HDPARM_FILE, error=err), level=ERROR)
except Exception as e:
# The templating.render can raise a jinja2 exception if the
# template is not found. Rather than polluting the import
# space of this charm, simply catch Exception
log('Unable to render {path} due to error: {error}'.format(
path=HDPARM_FILE, error=e.message), level=ERROR)
path=HDPARM_FILE, error=e), level=ERROR)
def set_max_sectors_kb(dev_name, max_sectors_size):
@ -308,7 +308,7 @@ def set_max_sectors_kb(dev_name, max_sectors_size):
f.write(max_sectors_size)
except IOError as e:
log('Failed to write max_sectors_kb to {}. Error: {}'.format(
max_sectors_kb_path, e.message), level=ERROR)
max_sectors_kb_path, e), level=ERROR)
def get_max_sectors_kb(dev_name):
@ -328,7 +328,7 @@ def get_max_sectors_kb(dev_name):
return int(max_sectors_kb)
except IOError as e:
log('Failed to read max_sectors_kb to {}. Error: {}'.format(
max_sectors_kb_path, e.message), level=ERROR)
max_sectors_kb_path, e), level=ERROR)
# Bail.
return 0
return 0
@ -350,7 +350,7 @@ def get_max_hw_sectors_kb(dev_name):
return int(max_hw_sectors_kb)
except IOError as e:
log('Failed to read max_hw_sectors_kb to {}. Error: {}'.format(
max_hw_sectors_kb_path, e.message), level=ERROR)
max_hw_sectors_kb_path, e), level=ERROR)
return 0
return 0
@ -547,11 +547,11 @@ def get_osd_weight(osd_id):
return device['crush_weight']
except ValueError as v:
log("Unable to parse ceph tree json: {}. Error: {}".format(
tree, v.message))
tree, v))
raise
except subprocess.CalledProcessError as e:
log("ceph osd tree command failed with message: {}".format(
e.message))
e))
raise
@ -591,11 +591,11 @@ def get_osd_tree(service):
return crush_list
except ValueError as v:
log("Unable to parse ceph tree json: {}. Error: {}".format(
tree, v.message))
tree, v))
raise
except subprocess.CalledProcessError as e:
log("ceph osd tree command failed with message: {}".format(
e.message))
e))
raise
@ -944,15 +944,27 @@ def get_partition_list(dev):
# For each line of output
for partition in partitions:
parts = partition.split()
partitions_list.append(
Partition(number=parts[0],
start=parts[1],
end=parts[2],
sectors=parts[3],
size=parts[4],
name=parts[5],
uuid=parts[6])
)
try:
partitions_list.append(
Partition(number=parts[0],
start=parts[1],
end=parts[2],
sectors=parts[3],
size=parts[4],
name=parts[5],
uuid=parts[6])
)
except IndexError:
partitions_list.append(
Partition(number=parts[0],
start=parts[1],
end=parts[2],
sectors=parts[3],
size=parts[4],
name="",
uuid=parts[5])
)
return partitions_list
except subprocess.CalledProcessError:
raise
@ -973,7 +985,7 @@ def is_osd_disk(dev):
return True
except subprocess.CalledProcessError as e:
log("sgdisk inspection of partition {} on {} failed with "
"error: {}. Skipping".format(partition.minor, dev, e.message),
"error: {}. Skipping".format(partition.minor, dev, e),
level=ERROR)
return False
@ -1682,7 +1694,7 @@ def upgrade_monitor(new_version):
apt_update(fatal=True)
except subprocess.CalledProcessError as err:
log("Adding the ceph source failed with message: {}".format(
err.message))
err))
status_set("blocked", "Upgrade to {} failed".format(new_version))
sys.exit(1)
try:
@ -1711,7 +1723,7 @@ def upgrade_monitor(new_version):
service_start('ceph-mon-all')
except subprocess.CalledProcessError as err:
log("Stopping ceph and upgrading packages failed "
"with message: {}".format(err.message))
"with message: {}".format(err))
status_set("blocked", "Upgrade to {} failed".format(new_version))
sys.exit(1)
@ -1895,7 +1907,7 @@ def upgrade_osd(new_version):
apt_update(fatal=True)
except subprocess.CalledProcessError as err:
log("Adding the ceph sources failed with message: {}".format(
err.message))
err))
status_set("blocked", "Upgrade to {} failed".format(new_version))
sys.exit(1)
@ -1940,7 +1952,7 @@ def upgrade_osd(new_version):
except (subprocess.CalledProcessError, IOError) as err:
log("Stopping ceph and upgrading packages failed "
"with message: {}".format(err.message))
"with message: {}".format(err))
status_set("blocked", "Upgrade to {} failed".format(new_version))
sys.exit(1)
@ -2159,7 +2171,7 @@ UCA_CODENAME_MAP = {
def pretty_print_upgrade_paths():
"""Pretty print supported upgrade paths for ceph"""
return ["{} -> {}".format(key, value)
for key, value in UPGRADE_PATHS.iteritems()]
for key, value in UPGRADE_PATHS.items()]
def resolve_ceph_version(source):
@ -2189,11 +2201,10 @@ def get_ceph_pg_stat():
return json_tree
except ValueError as v:
log("Unable to parse ceph pg stat json: {}. Error: {}".format(
tree, v.message))
tree, v))
raise
except subprocess.CalledProcessError as e:
log("ceph pg stat command failed with message: {}".format(
e.message))
log("ceph pg stat command failed with message: {}".format(e))
raise
@ -2217,11 +2228,10 @@ def get_ceph_health():
return json_tree
except ValueError as v:
log("Unable to parse ceph tree json: {}. Error: {}".format(
tree, v.message))
tree, v))
raise
except subprocess.CalledProcessError as e:
log("ceph status command failed with message: {}".format(
e.message))
log("ceph status command failed with message: {}".format(e))
raise
@ -2247,8 +2257,8 @@ def reweight_osd(osd_num, new_weight):
return True
return False
except subprocess.CalledProcessError as e:
log("ceph osd crush reweight command failed with message: {}".format(
e.message))
log("ceph osd crush reweight command failed"
" with message: {}".format(e))
raise