diff --git a/ansible/library/reduce_and_add_sonic_images.py b/ansible/library/reduce_and_add_sonic_images.py index 6e63f08ce65..d10e5d01ed5 100644 --- a/ansible/library/reduce_and_add_sonic_images.py +++ b/ansible/library/reduce_and_add_sonic_images.py @@ -66,14 +66,23 @@ def get_memory_sizes(module): """ _, out, _ = exec_command(module, cmd="free -m", msg="checking memory total/free sizes") lines = out.split('\n') - if len(lines) < 2: - return -1, -1 - fields = lines[1].split() - if len(fields) < 3: - return -1, -1 - - total, avail = int(fields[1]), int(fields[-1]) + for line in lines: + if line.startswith("Mem:"): + fields = line.split() + if len(fields) < 3: + return -1, -1 + else: + total_mem, avail_mem = int(fields[1]), int(fields[-1]) + elif line.startswith("Swap:"): + fields = line.split() + if len(fields) < 3: + return -1, -1 + else: + total_swap, avail_swap = int(fields[1]), int(fields[-1]) + + total = total_mem + total_swap + avail = avail_mem + avail_swap return total, avail