Skip to content

Commit 9e55138

Browse files
committed
refactor: update imports to use rapyuta_io_sdk_v2.Client and streamline method calls
1 parent a9e3bb9 commit 9e55138

File tree

20 files changed

+71
-43
lines changed

20 files changed

+71
-43
lines changed

riocli/apply/parse.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@
4747
from collections.abc import Callable, Iterable, Mapping
4848

4949
from rapyuta_io import Client
50+
from rapyuta_io_sdk_v2 import Client as v2Client
5051
from yaspin.api import Yaspin
5152

5253
from riocli.config import Configuration
53-
from riocli.v2client import Client as v2Client
5454

5555
DEFAULT_MAX_WORKERS = 6
5656
DELETE_POLICY_LABEL = "rapyuta.io/deletionPolicy"
@@ -169,6 +169,9 @@ def _apply_manifest(
169169
assert v2_client is not None
170170
assert spinner is not None
171171

172+
if obj_key not in self.objects:
173+
return
174+
172175
obj = self.objects[obj_key]
173176
obj_key = click.style(obj_key, bold=True)
174177

@@ -225,6 +228,9 @@ def _delete_manifest(
225228
assert v2_client is not None
226229
assert spinner is not None
227230

231+
if obj_key not in self.objects:
232+
return
233+
228234
obj = self.objects[obj_key]
229235
obj_key = click.style(obj_key, bold=True)
230236

@@ -343,7 +349,9 @@ def _load_values_and_secrets(
343349

344350
if value_files is not None:
345351
for v in value_files:
346-
values.merge(self._load_value(v))
352+
value = self._load_value(v)
353+
if value is not None:
354+
values.merge(value)
347355

348356
# The "rio" namespace exposes the commonly used fields from rio's
349357
# Configuration file.
@@ -358,7 +366,9 @@ def _load_values_and_secrets(
358366

359367
if secret_files is not None:
360368
for s in secret_files:
361-
secrets.merge(self._load_secret(s))
369+
secret = self._load_secret(s)
370+
if secret is not None:
371+
secrets.merge(secret)
362372

363373
if "secrets" in values:
364374
benedict(values["secrets"]).merge(secrets.dict())

riocli/auth/util.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@
2020
from rapyuta_io.clients.rip_client import AuthTokenLevel
2121
from rapyuta_io.utils import UnauthorizedError
2222
from rapyuta_io.utils.rest_client import HttpMethod, RestClient
23+
from rapyuta_io_sdk_v2 import Client as v2Client
24+
from rapyuta_io_sdk_v2.utils import handle_server_errors
2325

2426
from riocli.config import Configuration
2527
from riocli.constants import Colors, Symbols
2628
from riocli.exceptions import OrganizationNotFound, ProjectNotFound
2729
from riocli.utils.selector import show_selection
2830
from riocli.utils.spinner import with_spinner
29-
from rapyuta_io_sdk_v2 import Client as v2Client
30-
from rapyuta_io_sdk_v2.utils import handle_server_errors
31-
from riocli.exceptions import ProjectNotFound, OrganizationNotFound
3231

3332
TOKEN_LEVELS = {0: AuthTokenLevel.LOW, 1: AuthTokenLevel.MED, 2: AuthTokenLevel.HIGH}
3433

riocli/configtree/revision.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@
3636
from riocli.utils.state import StateFile
3737

3838
if TYPE_CHECKING:
39-
from yaspin.core import Yaspin
40-
4139
from rapyuta_io_sdk_v2 import Client
40+
from yaspin.core import Yaspin
4241

4342

4443
class Revision:

riocli/deployment/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
import time
1515

1616
from munch import Munch, unmunchify
17+
from rapyuta_io_sdk_v2 import Client
1718
from typing_extensions import override
1819

1920
from riocli.constants import Status
2021
from riocli.model import Model
21-
from rapyuta_io_sdk_v2 import Client
2222
from riocli.utils.error import (
2323
RetriesExhausted,
2424
)

riocli/deployment/util.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414
import re
1515
import time
16+
from typing import Any
1617

1718
import munch
1819
from rapyuta_io_sdk_v2 import Client
@@ -34,10 +35,11 @@ def fetch_deployments(
3435
client: Client,
3536
deployment_name_or_regex: str,
3637
include_all: bool,
37-
) -> list:
38+
) -> list[Any]:
3839
deployments = client.list_deployments(phases=DEFAULT_PHASES)
3940
result = []
40-
for deployment in deployments.items:
41+
items = deployments.items if deployments.items is not None else []
42+
for deployment in items:
4143
if (
4244
include_all
4345
or deployment_name_or_regex == deployment.metadata.name
@@ -75,7 +77,7 @@ def poll_deployment(
7577
name: str,
7678
retry_count: int = 50,
7779
sleep_interval: int = 6,
78-
ready_phases: list[str] = None,
80+
ready_phases: list[str] | None = None,
7981
):
8082
if ready_phases is None:
8183
ready_phases = []
@@ -84,18 +86,27 @@ def poll_deployment(
8486
status = deployment.status
8587

8688
for _ in range(retry_count):
87-
if status.phase in ready_phases:
89+
if status is not None and status.phase in ready_phases:
8890
return deployment
8991

90-
if status.phase == DeploymentPhaseConstants.DeploymentPhaseProvisioning.value:
92+
if (
93+
status is not None
94+
and status.phase == DeploymentPhaseConstants.DeploymentPhaseProvisioning.value
95+
):
9196
errors = status.get("error_codes", [])
9297
if "DEP_E153" in errors:
9398
raise ImagePullError(
9499
f"Deployment not running. Phase: Provisioning Status: {status.phase}"
95100
)
96-
elif status.phase == DeploymentPhaseConstants.DeploymentPhaseSucceeded.value:
101+
elif (
102+
status is not None
103+
and status.phase == DeploymentPhaseConstants.DeploymentPhaseSucceeded.value
104+
):
97105
return deployment
98-
elif status.phase == DeploymentPhaseConstants.DeploymentPhaseStopped.value:
106+
elif (
107+
status is not None
108+
and status.phase == DeploymentPhaseConstants.DeploymentPhaseStopped.value
109+
):
99110
raise DeploymentNotRunning(
100111
f"Deployment not running. Phase: Stopped Status: {status.phase}"
101112
)
@@ -104,9 +115,12 @@ def poll_deployment(
104115
deployment = client.get_deployment(name=name)
105116
status = deployment.status
106117

118+
error_codes = []
119+
if status is not None and hasattr(status, "error_codes"):
120+
error_codes = status.error_codes or []
107121
msg = (
108122
f"Retries exhausted: Tried {retry_count} times with {sleep_interval}s interval. "
109123
f"Deployment: phase={status.phase} status={status.status} \n"
110-
f"{process_errors(status.get('error_codes', []))}"
124+
f"{process_errors(error_codes) if callable(process_errors) else process_errors}"
111125
)
112126
raise RetriesExhausted(msg)

riocli/device/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ def delete_hwil_device(spec: dict, metadata: dict) -> None:
314314
)
315315

316316
client = new_hwil_client()
317-
devices = client.list_devices(query={"name": device_name})
317+
devices = client.list_devices(name=device_name)
318318
if not devices:
319319
return
320320

riocli/disk/model.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313
# limitations under the License.
1414

1515
from munch import Munch, unmunchify
16+
from rapyuta_io_sdk_v2 import Client as v2Client
1617
from typing_extensions import override
1718

19+
from riocli.disk.util import poll_disk
1820
from riocli.model import Model
19-
from rapyuta_io_sdk_v2 import Client as v2Client
2021

2122

2223
class Disk(Model):
@@ -29,8 +30,9 @@ def create_object(
2930
self, v2_client: v2Client, retry_count: int, retry_interval: int, *args, **kwargs
3031
) -> Munch | None:
3132
created = v2_client.create_disk(unmunchify(self)) # pyright:ignore[reportArgumentType]
32-
_ = v2_client.poll_disk(
33-
created.metadata.name,
33+
_ = poll_disk(
34+
client=v2_client,
35+
name=created.metadata.name,
3436
retry_count=retry_count,
3537
sleep_interval=retry_interval,
3638
)

riocli/model/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717

1818
from munch import Munch
1919
from rapyuta_io import Client
20+
from rapyuta_io_sdk_v2 import Client as v2Client
21+
from rapyuta_io_sdk_v2.exceptions import HttpAlreadyExistsError, HttpNotFoundError
2022

2123
from riocli.config.config import Configuration
2224
from riocli.constants import ApplyResult
2325
from riocli.exceptions import ResourceNotFound
2426
from riocli.jsonschema.validate import load_schema
25-
from riocli.v2client.client import Client as v2Client
26-
from riocli.v2client.error import HttpAlreadyExistsError, HttpNotFoundError
2727

2828
DELETE_POLICY_LABEL = "rapyuta.io/deletionPolicy"
2929

riocli/network/model.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
# limitations under the License.
1414

1515
from munch import Munch, unmunchify
16+
from rapyuta_io_sdk_v2 import Client
1617
from typing_extensions import override
1718

1819
from riocli.model import Model
19-
from rapyuta_io_sdk_v2 import Client
20+
21+
from .util import poll_network
2022

2123

2224
class Network(Model):
@@ -29,8 +31,11 @@ def create_object(
2931
self, v2_client: Client, retry_count: int, retry_interval: int, *args, **kwargs
3032
) -> Munch | None:
3133
network = v2_client.create_network(unmunchify(self)) # pyright:ignore[reportArgumentType]
32-
_ = v2_client.poll_network(
33-
network.metadata.name, retry_count=retry_count, sleep_interval=retry_interval
34+
_ = poll_network(
35+
client=v2_client,
36+
name=network.metadata.name, # pyright: ignore[reportOptionalMemberAccess]
37+
retry_count=retry_count,
38+
sleep_interval=retry_interval,
3439
)
3540

3641
@override

riocli/organization/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
# limitations under the License.
1414

1515
from munch import Munch, unmunchify
16+
from rapyuta_io_sdk_v2 import Client
1617
from typing_extensions import override
1718

1819
from riocli.constants import ApplyResult
1920
from riocli.model import Model
20-
from riocli.v2client.client import Client
2121

2222

2323
class Organization(Model):

0 commit comments

Comments
 (0)