Re-implement SwapModule

This commit is contained in:
Lucas Noki 2020-01-18 04:15:08 +01:00
parent 23771e22be
commit fdd1c48bac
2 changed files with 66 additions and 46 deletions

5
modules/swap/__init__.py Normal file
View File

@ -0,0 +1,5 @@
from .module import SwapModule
def get_module():
return SwapModule()

View File

@ -1,30 +1,45 @@
import subprocess import subprocess
from PyInquirer import prompt
from AbstractModule import AbstractModule from AbstractModule import AbstractModule
from PyInquirer import prompt
class VimModule(AbstractModule): class SwapModule(AbstractModule):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.swap_file = None
def run(self):
actions = ["Create/Resize", "Delete"]
menu = [
{
'type': 'list',
'message': 'Select action',
'name': 'action',
'choices': list(map(lambda x: {"name": x}, actions))
}
]
selected_action = prompt(menu)['action']
if selected_action is "Create/Resize":
self.create_resize_swap()
elif selected_action is "Delete":
self.delete_swap()
# Check default swap location # Check default swap location
def convert_string(string): def swap_location_check(self) -> None:
li = list(string.split())
return li
output_swaps = subprocess.check_output(['cat', '/proc/swaps']).decode("UTF-8") output_swaps = subprocess.check_output(['cat', '/proc/swaps']).decode("UTF-8")
final_list = convert_string(output_swaps) li = list(output_swaps.split())
print(final_list[5]) final_list = li
try:
print("Swap is located here:", final_list[5])
self.swap_file = final_list[5]
except IndexError:
print("Swap file doesn´t exist!\n")
# End of location check # End of location check
def create_resize_swap(self):
output_swapon = subprocess.check_output(['swapon', '--show']).decode("UTF-8") output_swapon = subprocess.check_output(['swapon', '--show']).decode("UTF-8")
output_free = subprocess.check_output(['free', '-h']).decode("UTF-8")
option = input("Enter option. 1.Create/Resize 2.Delete: ")
if option == "1":
if not output_swapon: if not output_swapon:
size = input("How big should the swap be(numbers in Gigabyte)? ") size = input("How big should the swap be(numbers in Gigabyte)? ")
create_swapfile = """sudo fallocate -l {}G /swapfile && create_swapfile = """sudo fallocate -l {}G /swapfile &&
@ -47,9 +62,11 @@ if option == "1":
subprocess.call(resize_swapfile, shell=True) subprocess.call(resize_swapfile, shell=True)
output_free = subprocess.check_output(['free', '-h']).decode("UTF-8") output_free = subprocess.check_output(['free', '-h']).decode("UTF-8")
print(output_free.strip()) print(output_free.strip())
elif option == "2":
disable_swapfile = """sudo swapoff /swapfile && def delete_swap(self):
sudo rm /swapfile""" self.swap_location_check()
disable_swapfile = """sudo swapoff {0} &&
sudo rm {0}""".format(self.swap_file)
subprocess.call(disable_swapfile, shell=True) subprocess.call(disable_swapfile, shell=True)
output_swapon = subprocess.check_output(['swapon', '--show']).decode("UTF-8") output_swapon = subprocess.check_output(['swapon', '--show']).decode("UTF-8")
@ -57,5 +74,3 @@ elif option == "2":
if not output_swapon: if not output_swapon:
print("Swap deleted!") print("Swap deleted!")
print(output_free.strip()) print(output_free.strip())
else:
print("Wrong input!")