+ # populate network interfaces - others
+ if self.node_spec.has_key('extra_interfaces'):
+ for interface in self.node_spec['extra_interfaces']:
+ server.AddNodeNetwork(userauth,self.name(),
+ interface['network_fields'])
+ if interface.has_key('attributes'):
+ for (attribute,value) in interface['attributes'].iteritems():
+ # locate node network
+ nn = server.GetNodeNetworks(userauth,{'ip':interface['network_fields']['ip']})[0]
+ nnid=nn['nodenetwork_id']
+ # locate or create node network attribute type
+ try:
+ nnst = server.GetNodeNetworkSettingTypes(userauth,{'name':attribute})[0]
+ except:
+ nnst = server.AddNodeNetworkSettingType(rootauth,{'category':'test',
+ 'name':attribute})
+ # attach value
+ server.AddNodeNetworkSetting(userauth,nnid,attribute,value)
+
+ def delete_node (self):
+ # uses the right auth as far as poss.
+ try:
+ ownername = self.node_spec['owner']
+ user_spec = self.test_site.locate_user(ownername)
+ test_user = TestUser(self.test_plc,self.test_site,user_spec)
+ auth = test_user.auth()
+ except:
+ auth=self.test_plc.auth_root()
+ self.test_plc.server.DeleteNode(auth,self.name())
+
+ def get_node_status(self,hostname):
+ filter=['boot_state']
+ status=False
+ node_status=self.test_plc.server.GetNodes(self.test_plc.auth_root(),hostname, filter)
+ utils.header('Actual status for node %s is [%s]'%(hostname,node_status))
+ if (node_status[0]['boot_state'] == 'boot'):
+ utils.header('%s has reached boot state'%hostname)
+ status=True
+ elif (node_status[0]['boot_state'] == 'dbg' ):
+ utils.header('%s has reached debug state'%hostname)
+ return status