Fix columns
This commit is contained in:
parent
a2dd21d11b
commit
239b546415
20
kls
20
kls
|
@ -46,13 +46,16 @@ bytes_list = subprocess.check_output(
|
||||||
"kubectl get ns --no-headers -o template='{{range .items}}{{.metadata.name}} {{end}}'", shell=True).split()
|
"kubectl get ns --no-headers -o template='{{range .items}}{{.metadata.name}} {{end}}'", shell=True).split()
|
||||||
namespaces = [bytes_list[i].decode('utf-8') for i in range(len(bytes_list))]
|
namespaces = [bytes_list[i].decode('utf-8') for i in range(len(bytes_list))]
|
||||||
## отрисовываем меню
|
## отрисовываем меню
|
||||||
menu1 = Menu("Namespaces", namespaces, 0, curses.COLS // 4, SELECTED_WITHOUT_SEARCH)
|
menu1 = Menu("Namespaces", namespaces, 0, curses.COLS // 5, SELECTED_WITHOUT_SEARCH)
|
||||||
|
|
||||||
# рисуем второе меню
|
# рисуем второе меню
|
||||||
## готовим контент
|
## готовим контент
|
||||||
api_resources = ["pods", "services", "deployments", "statefulsets", "ingresses", "configmaps", "secrets"]
|
api_resources_top = ["pods", "services", "deployments", "statefulsets", "ingresses", "configmaps", "secrets", "persistentvolumes", "nodes", "storageclasses"]
|
||||||
|
bytes_list = subprocess.check_output("kubectl api-resources -o name --verbs get", shell=True).split()
|
||||||
|
api_resources_kubectl = [bytes_list[i].decode('utf-8') for i in range(len(bytes_list))]
|
||||||
|
api_resources = api_resources_top + list(set(api_resources_kubectl) - set(api_resources_top))
|
||||||
## отрисовываем меню
|
## отрисовываем меню
|
||||||
menu2 = Menu("API resources", api_resources, 0 + curses.COLS // 4, curses.COLS // 4, NOT_SELECTED_WITHOUT_SEARCH)
|
menu2 = Menu("API resources", api_resources, 0 + curses.COLS // 5, curses.COLS // 5 * 2, NOT_SELECTED_WITHOUT_SEARCH)
|
||||||
|
|
||||||
# рисуем третье меню
|
# рисуем третье меню
|
||||||
## готовим контент
|
## готовим контент
|
||||||
|
@ -61,7 +64,7 @@ bytes_list = subprocess.check_output(
|
||||||
shell=True).split()
|
shell=True).split()
|
||||||
pods = [bytes_list[i].decode('utf-8') for i in range(len(bytes_list))]
|
pods = [bytes_list[i].decode('utf-8') for i in range(len(bytes_list))]
|
||||||
## отрисовываем меню
|
## отрисовываем меню
|
||||||
menu3 = Menu("Resources", pods, 0 + curses.COLS // 4 * 2, curses.COLS // 2, NOT_SELECTED_WITHOUT_SEARCH)
|
menu3 = Menu("Resources", pods, 0 + curses.COLS // 5 * 3, curses.COLS // 5 * 2, NOT_SELECTED_WITHOUT_SEARCH)
|
||||||
|
|
||||||
menus = [menu1, menu2, menu3]
|
menus = [menu1, menu2, menu3]
|
||||||
|
|
||||||
|
@ -108,15 +111,17 @@ def draw_rows(menu):
|
||||||
if menu.selected_row < menu.rows_number:
|
if menu.selected_row < menu.rows_number:
|
||||||
first_row_index = 0
|
first_row_index = 0
|
||||||
else:
|
else:
|
||||||
first_row_index = (menu.selected_row % menu.rows_number) + (menu.selected_row // menu.rows_number)
|
first_row_index = menu.selected_row - menu.rows_number + 1
|
||||||
last_row_index = first_row_index + menu.rows_number
|
last_row_index = first_row_index + menu.rows_number
|
||||||
filtered_rows = filtered_rows[first_row_index:last_row_index]
|
filtered_rows = filtered_rows[first_row_index:last_row_index]
|
||||||
# индекс выбранной строки в отфильтрованных строках
|
# индекс выбранной строки в отфильтрованных строках
|
||||||
selected_row_in_window = menu.selected_row - first_row_index
|
selected_row_index = menu.selected_row - first_row_index
|
||||||
|
# if menu2.selected_row != 0: # debug
|
||||||
|
# raise ValueError(f"{len(filtered_rows)} {selected_row_index} {first_row_index} {last_row_index} {menu.rows_number}")
|
||||||
for index, row in enumerate(filtered_rows): # рисуем то, что отфильтровали
|
for index, row in enumerate(filtered_rows): # рисуем то, что отфильтровали
|
||||||
menu.win.addstr(index + 3, 2, row)
|
menu.win.addstr(index + 3, 2, row)
|
||||||
# выделяем выбранную строку
|
# выделяем выбранную строку
|
||||||
menu.win.addstr(selected_row_in_window + 3, 2, filtered_rows[selected_row_in_window], curses.A_REVERSE | curses.A_ITALIC)
|
menu.win.addstr(selected_row_index + 3, 2, filtered_rows[selected_row_index], curses.A_REVERSE | curses.A_ITALIC)
|
||||||
menu.win.box()
|
menu.win.box()
|
||||||
menu.win.refresh()
|
menu.win.refresh()
|
||||||
|
|
||||||
|
@ -190,7 +195,6 @@ def catch_input(menu):
|
||||||
return
|
return
|
||||||
elif key_pressed == "KEY_F(4)" and api_resource == "pods": # logs
|
elif key_pressed == "KEY_F(4)" and api_resource == "pods": # logs
|
||||||
command = f"f'kubectl -n {namespace} logs {resource} | batcat -l log --paging always --style numbers'"
|
command = f"f'kubectl -n {namespace} logs {resource} | batcat -l log --paging always --style numbers'"
|
||||||
# raise ValueError(str(menu.state) + ' ' + eval(command))
|
|
||||||
run_command(command, namespace, api_resource, resource)
|
run_command(command, namespace, api_resource, resource)
|
||||||
draw_window()
|
draw_window()
|
||||||
elif (key_pressed.isalpha() or key_pressed == "-") and menu.state == SELECTED_WITH_SEARCH: # объекты в кубе не могут иметь иных символов кроме a-z и -
|
elif (key_pressed.isalpha() or key_pressed == "-") and menu.state == SELECTED_WITH_SEARCH: # объекты в кубе не могут иметь иных символов кроме a-z и -
|
||||||
|
|
Loading…
Reference in New Issue