Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add default port for remote connection #304

Merged
merged 5 commits into from
Aug 21, 2020

Conversation

Uunnamed
Copy link
Contributor

@@ -3146,11 +3146,17 @@
`run-driver` and `connect-driver` may accept."
([type]
(boot-driver type {}))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я сейчас посмотрел, мы делаем похожее в create-driver: тоже ищем порт по дефолтам или рандомный. Хотелось бы, что это было только в одном месте.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

или погоди, можно всю эту логику сдвинуть в create-driver, тем более она и так там частично есть.

Comment on lines 3150 to 3155
(let [port (when host
(or port
(get-in defaults [type :port])))
opt (if port
(assoc opt :port port)
opt)]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В общем, мне кажется, что пляски вокруг порта лучше сдвинуть в create-driver, чтобы boot-driver состоял только из набора шагов. В boot мы оставим только условие на (run-driver opt)

Copy link
Contributor Author

@Uunnamed Uunnamed Aug 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, я тоже видел что в create-driver уже есть логика, но она немного другая
там момент в том, что тогда discover-port нужно убрать или отрефакторить, из create-driver в run-driver
(discover-port type host))
внутри берет дефолтный порт, если он есть и проверяет не занят ли он, и если занят, то берет рандомный
но в случае коннекта порт точно занят, поэтому всегда получим рандомный порт.
т.е. можно вынести из discover-port получение дефолтного порта, и сам discover-port переместить в run-driver, тогда сразу закроем задачу с форком процесса.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, тут нужно привести к общему решению. Предлагаю так:

  • хост задан (ремоут)
    • порт задан -- используем его
    • порт не задан -- берем стандартный
  • хост не задан (локально)
    • порт задан -- берем его
    • порт не задан -- берем случайный

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

случай с форком: перед запуском драйвера проверяем, что порт (полученный из предыдущего шага) не занят. Если занят, кидаем исключение.

(get-in defaults [type :port]))
(if port
port
(discover-port type local-host)))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

чтобы не забыть: рандомный порт и удалить discover-port

@Uunnamed Uunnamed merged commit c3443f4 into master Aug 21, 2020
@Uunnamed Uunnamed deleted the add-default-port-for-remote-connection branch August 21, 2020 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants