Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .github/workflows/publish_dev_artifact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,20 @@ jobs:
ls -la dist | grep .tar.gz
ls -la dist | grep .whl

- name: Store dev artifacts
- name: Store dev artifacts - .tar.gz
uses: actions/upload-artifact@v4
with:
name: libcloud-dev-artifacts
name: libcloud-dev-tarball
retention-days: 60
compression-level: 0
path: |
dist/*.tar.gz

- name: Store dev artifacts - .whl
uses: actions/upload-artifact@v4
with:
name: libcloud-dev-wheel
retention-days: 60
compression-level: 0
path: |
dist/*.whl
2 changes: 1 addition & 1 deletion libcloud/common/openstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ def _set_up_connection_info(self, url):
new_conn = (self.host, self.port, self.secure)
if new_conn != prev_conn:
# We only call connect in case connection details have changed - this way we correctly
# re-use connection in case nothing has changed
# reuse connection in case nothing has changed
self.connect()

def _populate_hosts_and_request_paths(self):
Expand Down
2 changes: 1 addition & 1 deletion libcloud/common/openstack_identity.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class OpenStackAuthenticationCache:
:class:`OpenStackAuthenticationCache` in
OpenStackIdentityConnection.auth_cache.

Cache implementors should inherit this class and define the methods below.
Cache implementers should inherit this class and define the methods below.
"""

def get(self, key):
Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1947,7 +1947,7 @@ def _run_deployment_script(self, task, node, ssh_client, max_tries=3):

if "ssh session not active" in str(e).lower():
# Sometimes connection gets closed or disconnected half
# way through for wahtever reason.
# way through for whatever reason.
# If this happens, we try to re-connect before
# re-attempting to run the step.
try:
Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def run(self, node, client):
"""
self.name = cast(str, self.name)
file_path = client.put(path=self.name, chmod=int("755", 8), contents=self.script)
# Pre-pend cwd if user specified a relative path
# Prepend cwd if user specified a relative path
if self.name and (self.name[0] not in ["/", "\\"] and not re.match(r"^\w\:.*$", file_path)):
base_path = os.path.dirname(file_path)
name = os.path.join(base_path, self.name)
Expand Down
4 changes: 1 addition & 3 deletions libcloud/compute/drivers/ec2.py
Original file line number Diff line number Diff line change
Expand Up @@ -1650,9 +1650,7 @@ def create_node(
params["SecurityGroup.%d" % (sig + 1,)] = security_groups[sig]

if ex_security_group_ids and not ex_subnet:
raise ValueError(
"You can only supply ex_security_group_ids" " combinated with ex_subnet"
)
raise ValueError("You can only supply ex_security_group_ids" " combined with ex_subnet")

security_group_ids = ex_security_group_ids
security_group_id_params = {}
Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/drivers/gce.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ def _merge_response_items(self, list_name, response_list):
"""
Take a list of API responses ("item"-portion only) and combine them.

Helper function to combine multiple aggegrated responses into a single
Helper function to combine multiple aggregated responses into a single
dictionary that resembles an API response.

Note: keys that don't have a 'list_name" key (including warnings)
Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/drivers/kubevirt.py
Original file line number Diff line number Diff line change
Expand Up @@ -956,7 +956,7 @@ def create_node(
be used for the creation of the
Persistent Volume Claim.
Make sure it allows for
dymamic provisioning.
dynamic provisioning.
- optional:
- access_mode: default is ReadWriteOnce
- volume_mode: default is `Filesystem`, it can also be `Block`
Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/drivers/outscale.py
Original file line number Diff line number Diff line change
Expand Up @@ -5427,7 +5427,7 @@ def ex_link_private_ips(
:type private_ips: ``list`` of ``str``

:param secondary_private_ip_count: The secondary private IP a
ddress or addresses you want to assign to the NIC within the IP
address or addresses you want to assign to the NIC within the IP
address range of the Subnet.
:type secondary_private_ip_count: ``int``

Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/drivers/vcloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,7 @@ def destroy_node(self, node):
self._wait_for_task_completion(res.object.get("href"))
except ExpatError:
# The undeploy response is malformed XML atm.
# We can remove this whent he providers fix the problem.
# We can remove this when the providers fix the problem.
pass
except Exception:
# Some vendors don't implement undeploy at all yet,
Expand Down
4 changes: 2 additions & 2 deletions libcloud/compute/drivers/vsphere.py
Original file line number Diff line number Diff line change
Expand Up @@ -2043,7 +2043,7 @@ def create_node(
ex_folder = folder["folder"]

if ex_folder is None:
msg = "No suitable folder vor VMs found, please create one"
msg = "No suitable folder for VMs found, please create one"
raise ProviderError(msg, 404)
spec["placement"]["folder"] = ex_folder

Expand Down Expand Up @@ -2176,7 +2176,7 @@ def create_node(
ex_folder = folder["folder"]

if ex_folder is None:
msg = "No suitable folder vor VMs found, please create one"
msg = "No suitable folder for VMs found, please create one"
raise ProviderError(msg, 404)
spec["placement"]["folder"] = ex_folder

Expand Down
2 changes: 1 addition & 1 deletion libcloud/compute/ssh.py
Original file line number Diff line number Diff line change
Expand Up @@ -764,7 +764,7 @@ def _get_sftp_client(self):
"""
Create SFTP client from the underlying SSH client.

This method tries to re-use the existing self.sftp_client (if it
This method tries to reuse the existing self.sftp_client (if it
exists) and it also tries to verify the connection is opened and if
it's not, it will try to re-establish it.
"""
Expand Down
2 changes: 1 addition & 1 deletion libcloud/container/drivers/lxd.py
Original file line number Diff line number Diff line change
Expand Up @@ -1135,7 +1135,7 @@ def ex_has_image(self, alias):
:param alias: the image alias
:type alias: ``str``

:rtype: ``tupple`` :: (``boolean``, ``str``)
:rtype: ``tuple`` :: (``boolean``, ``str``)
"""

# get all the images existing on the host
Expand Down
2 changes: 1 addition & 1 deletion libcloud/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ def _normalize_headers(self, headers):

class HttpLibResponseProxy:
"""
Provides a proxy pattern around the :class:`requests.Reponse`
Provides a proxy pattern around the :class:`requests.Response`
object to a :class:`httplib.HTTPResponse` object
"""

Expand Down
2 changes: 1 addition & 1 deletion libcloud/storage/drivers/cloudfiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def __init__(
:param region: ID of the region which should be used.
:type region: ``str``
"""
# This is here for backard compatibility
# This is here for backward compatibility
if "ex_force_service_region" in kwargs:
region = kwargs["ex_force_service_region"]

Expand Down
2 changes: 1 addition & 1 deletion libcloud/test/common/test_openstack_identity.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ def test_authentication_cache(self):
# Token is cached
self.assertEqual(len(auth_cache), 1)

# New client, token from cache is re-used
# New client, token from cache is reused
osa = cls(auth_url=auth_url, parent_conn=connection, **kwargs)
osa.request = Mock(wraps=osa.request)
osa = osa.authenticate()
Expand Down
2 changes: 1 addition & 1 deletion libcloud/test/compute/test_openstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def test_populate_hosts_and_requests_path(self, _):

count = 5

# Test authentication and token re-use
# Test authentication and token reuse
con = cls("username", "key")
osa = con.get_auth_class()

Expand Down
2 changes: 1 addition & 1 deletion libcloud/test/compute/test_ssh_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -792,7 +792,7 @@ def test_get_sftp_client(self):
self.assertEqual(client._get_sftp_client(), mock_sft_client)
self.assertEqual(mock_client.open_sftp.call_count, 1)

# 2. existing sftp connection which is already opened is re-used
# 2. existing sftp connection which is already opened is reused
mock_client = Mock()
mock_sft_client = Mock()
client.client = mock_client
Expand Down
2 changes: 1 addition & 1 deletion requirements-ci.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
tox==4.15.1
tox==4.24.1
2 changes: 1 addition & 1 deletion requirements-lint.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ black==25.1.0; python_version >= '3.7' and implementation_name == "cpython"
isort[pyproject]==6.0.1; python_version >= '3.8'
pyupgrade==3.3.1
rstcheck==6.2.4; python_version >= '3.7'
codespell==2.2.5
codespell==2.4.1

requests>=2.27.1
paramiko==3.4.0; platform_python_implementation != 'PyPy'
Loading