From 3d88a084345b3ec8abbc75704787cb5fd2b7a002 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 5 Dec 2008 08:26:18 +0000 Subject: [PATCH] node_type can be provided at AddNode time --- PLC/Methods/AddNode.py | 2 +- PLC/Nodes.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/PLC/Methods/AddNode.py b/PLC/Methods/AddNode.py index 07fd7cca..5ddb467e 100644 --- a/PLC/Methods/AddNode.py +++ b/PLC/Methods/AddNode.py @@ -8,7 +8,7 @@ from PLC.Sites import Site, Sites from PLC.Auth import Auth can_update = lambda (field, value): field in \ - ['hostname', 'boot_state', 'model', 'version'] + ['hostname', 'node_type', 'boot_state', 'model', 'version'] class AddNode(Method): """ diff --git a/PLC/Nodes.py b/PLC/Nodes.py index 7a164c76..a61e366e 100644 --- a/PLC/Nodes.py +++ b/PLC/Nodes.py @@ -15,8 +15,9 @@ from PLC.Parameter import Parameter, Mixed from PLC.Filter import Filter from PLC.Debug import profile from PLC.Table import Row, Table -from PLC.Interfaces import Interface, Interfaces +from PLC.NodeTypes import NodeTypes from PLC.BootStates import BootStates +from PLC.Interfaces import Interface, Interfaces def valid_hostname(hostname): # 1. Each part begins and ends with a letter or number. @@ -99,11 +100,16 @@ class Node(Row): return hostname + def validate_node_type(self, node_type): + node_types = [row['node_type'] for row in NodeTypes(self.api)] + if node_type not in node_types: + raise PLCInvalidArgument, "Invalid node type %r"%node_type + return node_type + def validate_boot_state(self, boot_state): boot_states = [row['boot_state'] for row in BootStates(self.api)] if boot_state not in boot_states: - raise PLCInvalidArgument, "Invalid boot state" - + raise PLCInvalidArgument, "Invalid boot state %r"%boot_state return boot_state validate_date_created = Row.validate_timestamp -- 2.47.0