set pool_id on node creation (#1049)

This commit is contained in:
bmc-msft
2021-07-07 17:58:24 -04:00
committed by GitHub
parent 5ba04d0cd2
commit 45d468f2ce
3 changed files with 23 additions and 1 deletions

View File

@ -48,6 +48,7 @@ class Node(BASE_NODE, ORMMixin):
def create(
cls,
*,
pool_id: UUID,
pool_name: PoolName,
machine_id: UUID,
scaleset_id: Optional[UUID],
@ -55,6 +56,7 @@ class Node(BASE_NODE, ORMMixin):
new: bool = False,
) -> "Node":
node = cls(
pool_id=pool_id,
pool_name=pool_name,
machine_id=machine_id,
scaleset_id=scaleset_id,
@ -78,11 +80,14 @@ class Node(BASE_NODE, ORMMixin):
def search_states(
cls,
*,
pool_id: Optional[UUID] = None,
scaleset_id: Optional[UUID] = None,
states: Optional[List[NodeState]] = None,
pool_name: Optional[PoolName] = None,
) -> List["Node"]:
query: QueryFilter = {}
if pool_id:
query["pool_id"] = [pool_id]
if scaleset_id:
query["scaleset_id"] = [scaleset_id]
if states:
@ -95,6 +100,7 @@ class Node(BASE_NODE, ORMMixin):
def search_outdated(
cls,
*,
pool_id: Optional[UUID] = None,
scaleset_id: Optional[UUID] = None,
states: Optional[List[NodeState]] = None,
pool_name: Optional[PoolName] = None,
@ -102,6 +108,8 @@ class Node(BASE_NODE, ORMMixin):
num_results: Optional[int] = None,
) -> List["Node"]:
query: QueryFilter = {}
if pool_id:
query["pool_id"] = [pool_id]
if scaleset_id:
query["scaleset_id"] = [scaleset_id]
if states:

View File

@ -291,6 +291,8 @@ class Scaleset(BASE_SCALESET, ORMMixin):
# result = 'did I modify the scaleset in azure'
def cleanup_nodes(self) -> bool:
from .pools import Pool
logging.info(
SCALESET_LOG_PREFIX + "cleaning up nodes. scaleset_id:%s", self.scaleset_id
)
@ -302,6 +304,16 @@ class Scaleset(BASE_SCALESET, ORMMixin):
self.halt()
return True
pool = Pool.get_by_name(self.pool_name)
if isinstance(pool, Error):
logging.error(
"unable to find pool during cleanup: %s - %s",
self.scaleset_id,
pool,
)
self.set_failed(pool)
return True
Node.reimage_long_lived_nodes(self.scaleset_id)
to_reimage = []
@ -346,6 +358,7 @@ class Scaleset(BASE_SCALESET, ORMMixin):
# Note, using `new=True` makes it such that if a node already has
# checked in, this won't overwrite it.
Node.create(
pool_id=pool.pool_id,
pool_name=self.pool_name,
machine_id=machine_id,
scaleset_id=self.scaleset_id,