devstack-cli 11.0.83__py3-none-any.whl → 11.0.84__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cli.py +8 -23
- {devstack_cli-11.0.83.dist-info → devstack_cli-11.0.84.dist-info}/METADATA +1 -1
- devstack_cli-11.0.84.dist-info/RECORD +9 -0
- version.py +3 -3
- devstack_cli-11.0.83.dist-info/RECORD +0 -9
- {devstack_cli-11.0.83.dist-info → devstack_cli-11.0.84.dist-info}/LICENSE +0 -0
- {devstack_cli-11.0.83.dist-info → devstack_cli-11.0.84.dist-info}/WHEEL +0 -0
- {devstack_cli-11.0.83.dist-info → devstack_cli-11.0.84.dist-info}/entry_points.txt +0 -0
- {devstack_cli-11.0.83.dist-info → devstack_cli-11.0.84.dist-info}/top_level.txt +0 -0
cli.py
CHANGED
@@ -1002,10 +1002,11 @@ class Cli:
|
|
1002
1002
|
logger.info('Connecting to CDE')
|
1003
1003
|
known_hosts = await self._get_known_hosts()
|
1004
1004
|
if known_hosts is None:
|
1005
|
+
logger.error('Cannot connect to CDE. Host-key not found.')
|
1005
1006
|
return
|
1006
1007
|
self.known_hosts_file = await _create_temp_file(exit_stack=self.exit_stack, content=known_hosts)
|
1007
1008
|
self.ssh_client = paramiko.SSHClient()
|
1008
|
-
self.ssh_client.
|
1009
|
+
self.ssh_client.load_host_keys(self.known_hosts_file.name)
|
1009
1010
|
try:
|
1010
1011
|
self.ssh_client.connect(
|
1011
1012
|
hostname=self.hostname,
|
@@ -1022,34 +1023,18 @@ class Cli:
|
|
1022
1023
|
logger.info('Connected to CDE')
|
1023
1024
|
|
1024
1025
|
async def _get_known_hosts(self: 'Cli') -> typing.Optional[str]:
|
1025
|
-
if self.cde['value']['hostkey']:
|
1026
|
-
if self.cde['value']['hostkey'].startswith(self.cde['value']['hostname']):
|
1027
|
-
return self.cde['value']['hostkey']
|
1028
|
-
return f"{self.cde['value']['hostname']} {self.cde['value']['hostkey']}"
|
1029
1026
|
if not self.cde:
|
1030
1027
|
logger.error('No CDE is selected. Cannot fetch host-key.')
|
1031
1028
|
return None
|
1032
1029
|
if not self.is_cde_running:
|
1033
1030
|
logger.error('CDE is not running. Cannot fetch host-key.')
|
1034
1031
|
return None
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
],
|
1042
|
-
name='ssh-keyscan',
|
1043
|
-
print_stdout=False,
|
1044
|
-
print_stderr=False,
|
1045
|
-
)
|
1046
|
-
except SubprocessError as ex:
|
1047
|
-
logger.error('%s Failed to fetch hostkeys. Is you CDE running?', ex) # noqa: TRY400
|
1048
|
-
sys.exit(1)
|
1049
|
-
known_hosts = stdout
|
1050
|
-
with contextlib.suppress(FileNotFoundError):
|
1051
|
-
known_hosts += pathlib.Path(os.path.expandvars('$HOME/.ssh/known_hosts')).read_bytes()
|
1052
|
-
return known_hosts
|
1032
|
+
if not self.cde['value']['hostkey']:
|
1033
|
+
logger.error('CDE record does not contain a hostkey.')
|
1034
|
+
return None
|
1035
|
+
if self.cde['value']['hostkey'].startswith(self.cde['value']['hostname']):
|
1036
|
+
return self.cde['value']['hostkey']
|
1037
|
+
return f"{self.cde['value']['hostname']} {self.cde['value']['hostkey']}"
|
1053
1038
|
|
1054
1039
|
async def _disconnect_cde(self: 'Cli') -> None:
|
1055
1040
|
logger.info('Disconnecting from CDE')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: devstack-cli
|
3
|
-
Version: 11.0.
|
3
|
+
Version: 11.0.84
|
4
4
|
Summary: Command-line access to Cloud Development Environments (CDEs) created by Cloudomation DevStack
|
5
5
|
Author-email: Stefan Mückstein <stefan@cloudomation.com>
|
6
6
|
Project-URL: Homepage, https://cloudomation.com/
|
@@ -0,0 +1,9 @@
|
|
1
|
+
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
cli.py,sha256=hcWads1pYl3HKD5oRNmO0QdLxiTwZAdkNQBJ2J9bdYU,78948
|
3
|
+
version.py,sha256=HJYf0m_9gulsCX42Jl1pHFeGC4PbMO4lYxekjZOi7oY,180
|
4
|
+
devstack_cli-11.0.84.dist-info/LICENSE,sha256=OBXZbEUMtIHIzyISkJ9fJlf_imds3rcKqeQu9yiyUJI,1055
|
5
|
+
devstack_cli-11.0.84.dist-info/METADATA,sha256=AEpd3gg3dLQeRdblLsD9Hcs1wZKG8jhXybW13-9NXuo,4287
|
6
|
+
devstack_cli-11.0.84.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
7
|
+
devstack_cli-11.0.84.dist-info/entry_points.txt,sha256=f0xb4DIk0a7E5kyZ7YpoLhtjoagQj5VQpeBbW9a8A9Y,42
|
8
|
+
devstack_cli-11.0.84.dist-info/top_level.txt,sha256=lP8zvU46Am_G0MPcNmCI6f0sMfwpDUWpTROaPs-IEPk,21
|
9
|
+
devstack_cli-11.0.84.dist-info/RECORD,,
|
version.py
CHANGED
@@ -4,6 +4,6 @@ constants, set by build
|
|
4
4
|
|
5
5
|
MAJOR = '11'
|
6
6
|
BRANCH_NAME = 'release-11'
|
7
|
-
BUILD_DATE = '2025-02-10-
|
8
|
-
SHORT_SHA = '
|
9
|
-
VERSION = '11+release-11.2025-02-10-
|
7
|
+
BUILD_DATE = '2025-02-10-112610'
|
8
|
+
SHORT_SHA = '5cc11b4'
|
9
|
+
VERSION = '11+release-11.2025-02-10-112610.5cc11b4'
|
@@ -1,9 +0,0 @@
|
|
1
|
-
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
cli.py,sha256=_k9ZnI2n6T9tPqBasTj5c0EECaHJvWRFwTcoxPRik2o,79526
|
3
|
-
version.py,sha256=oQplPMp28xVgc4xkJB2_VKADgQ7VfXmif3LaFfGYAj8,180
|
4
|
-
devstack_cli-11.0.83.dist-info/LICENSE,sha256=OBXZbEUMtIHIzyISkJ9fJlf_imds3rcKqeQu9yiyUJI,1055
|
5
|
-
devstack_cli-11.0.83.dist-info/METADATA,sha256=UsbgvY8Vrs2AErciQXxOz5kk0fzVmC1FO684cq1QuVk,4287
|
6
|
-
devstack_cli-11.0.83.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
7
|
-
devstack_cli-11.0.83.dist-info/entry_points.txt,sha256=f0xb4DIk0a7E5kyZ7YpoLhtjoagQj5VQpeBbW9a8A9Y,42
|
8
|
-
devstack_cli-11.0.83.dist-info/top_level.txt,sha256=lP8zvU46Am_G0MPcNmCI6f0sMfwpDUWpTROaPs-IEPk,21
|
9
|
-
devstack_cli-11.0.83.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|