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
28 changes: 18 additions & 10 deletions chi/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class Server:
Args:
name (str): The name of the server.
reservation_id (Optional[str]): The reservation ID associated with the server. Defaults to None.
image_name (str): The name of the image to use for the server. Defaults to DEFAULT_IMAGE_NAME.
image_name (Optional[str]): The name of the image to use for the server. Defaults to DEFAULT_IMAGE_NAME.
image (Optional[str]): The image ID or name to use for the server. Defaults to None.
flavor_name (str): The name of the flavor to use for the server. Defaults to BAREMETAL_FLAVOR.
key_name (str): The name of the keypair to use for the server. Defaults to None.
Expand All @@ -86,7 +86,7 @@ class Server:
Attributes:
name (str): The name of the server.
reservation_id (Optional[str]): The reservation ID associated with the server.
image_name (str): The name of the image used for the server.
image_name (Optional[str]): The name of the image used for the server.
flavor_name (str): The name of the flavor used for the server.
keypair (Optional[Keypair]): The keypair object used for the server.
network_name (str): The name of the network used for the server.
Expand All @@ -104,7 +104,7 @@ def __init__(
self,
name: str,
reservation_id: Optional[str] = None,
image_name: str = DEFAULT_IMAGE_NAME,
image_name: Optional[str] = DEFAULT_IMAGE_NAME,
image: Optional[Image] = None,
flavor_name: str = BAREMETAL_FLAVOR,
key_name: str = None,
Expand All @@ -114,8 +114,13 @@ def __init__(
self.name = name
self.reservation_id = reservation_id or None
# Add this once chi.image is implemented
self.image = image or chi.image.get_image(image_name)
self.image_name = self.image.name
if image:
self.image = image
elif image_name:
self.image = chi.image.get_image(image_name)
else:
self.image = None
self.image_name = self.image.name if self.image else None
self.flavor_name = flavor_name

if keypair:
Expand Down Expand Up @@ -216,10 +221,13 @@ def _server_cleanup_func():

@classmethod
def _from_nova_server(cls, nova_server):
try:
image_id = nova_server.image["id"]
except Exception:
image_id = nova_server.image_id
if nova_server.image:
if isinstance(nova_server.image, dict):
image_id = nova_server.image.get("id")
else:
image_id = nova_server.image
else:
image_id = None
flavor_name = nova_server.flavor.get("original_name", "")

try:
Expand All @@ -238,7 +246,7 @@ def _from_nova_server(cls, nova_server):
server = cls(
name=nova_server.name,
reservation_id=None,
image_name=get_image_name(image_id),
image_name=get_image_name(image_id) if image_id else None,
flavor_name=flavor_name,
key_name=nova_server.key_name,
network_name=(
Expand Down
3 changes: 2 additions & 1 deletion chi/storage.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from dataclasses import dataclass
from typing import List

import cinderclient
import manilaclient
import swiftclient

Expand Down Expand Up @@ -295,7 +296,7 @@ def get_volume(ref) -> Volume:
"""
try:
volume = cinder().volumes.get(ref)
except cinder.exceptions.NotFound:
except cinderclient.exceptions.NotFound:
volumes = list(cinder().volumes.list(search_opts={"name": ref}))
if not volumes:
raise CHIValueError(f'No volumes found matching name "{ref}"')
Expand Down