Skip to content
Open
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
31 changes: 29 additions & 2 deletions riocli/configtree/etcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import os
import time
from base64 import b64encode

Expand All @@ -20,12 +21,38 @@
from riocli.configtree.util import serialize_value


def _parse_etcd_endpoint(endpoint_str: str) -> tuple[str, int]:
"""Parse etcd endpoint string into host and port.

Supports formats: "host", "host:port"
"""
if ':' in endpoint_str:

Check failure on line 29 in riocli/configtree/etcd.py

View workflow job for this annotation

GitHub Actions / code-quality-checks

ruff (Q000)

riocli/configtree/etcd.py:29:8: Q000 Single quotes found but double quotes preferred help: Replace single quotes with double quotes
host, port_str = endpoint_str.rsplit(':', 1)

Check failure on line 30 in riocli/configtree/etcd.py

View workflow job for this annotation

GitHub Actions / code-quality-checks

ruff (Q000)

riocli/configtree/etcd.py:30:46: Q000 Single quotes found but double quotes preferred help: Replace single quotes with double quotes
try:
return host, int(port_str)
except ValueError:
return endpoint_str, 2379
return endpoint_str, 2379
Comment on lines +29 to +35


def import_in_etcd(
data: dict,
endpoint: str,
port: int | None = 2379,
endpoint: str | None = None,
port: int | None = None,
prefix: str | None = None,
) -> None:
# Use environment variable if endpoint not provided
if endpoint is None:
endpoint = os.getenv("ETCD_ENDPOINT", "localhost")
Comment on lines +44 to +46

# Handle comma-separated list of endpoints (use first one for single connection)
if ',' in endpoint:

Check failure on line 49 in riocli/configtree/etcd.py

View workflow job for this annotation

GitHub Actions / code-quality-checks

ruff (Q000)

riocli/configtree/etcd.py:49:8: Q000 Single quotes found but double quotes preferred help: Replace single quotes with double quotes
endpoint = endpoint.split(',')[0].strip()

Check failure on line 50 in riocli/configtree/etcd.py

View workflow job for this annotation

GitHub Actions / code-quality-checks

ruff (Q000)

riocli/configtree/etcd.py:50:35: Q000 Single quotes found but double quotes preferred help: Replace single quotes with double quotes

# Parse endpoint if port is not separately provided
if port is None:
endpoint, port = _parse_etcd_endpoint(endpoint)

cli = Etcd3Client(host=endpoint, port=port)

try:
Expand Down
Loading