def update_node(self, node_json): name = node_json['name'].split('@')[1] query = Node.query.filter(Node.name == name) if query.count(): node = query.one() verb = "Updated" else: node = Node(name) verb = "Created" vm_host_name = node_json.get('vpshost', '') is_vm = vm_host_name not in (None, '') if is_vm: self.vm_hosts[name] = node_json['vpshost'] locked_since_local = datetime.strptime(node_json['locked_since'], '%Y-%m-%dT%H:%M:%S') locked_since = local_datetime_to_utc(locked_since_local) node.machine_type = node_json.get('type') node.arch = node_json.get('arch') node.distro = node_json.get('distro') node.up = bool(node_json.get('up', 0)) node.is_vm = is_vm node.mac_address = node_json.get('mac').lower() node.ssh_pub_key = node_json.get('sshpubkey') node.locked = node_json.get('locked') == 1 node.locked_by = node_json.get('locked_by') node.locked_since = locked_since node.description = node_json.get('description') return verb
def update_node(self, node_json): name = node_json['name'].split('@')[1] query = Node.query.filter(Node.name == name) if query.count(): node = query.one() verb = "Updated" else: node = Node(name) verb = "Created" vm_host_name = node_json.get('vpshost', '') is_vm = vm_host_name not in (None, '') if is_vm: self.vm_hosts[name] = node_json['vpshost'] locked_since_local = datetime.strptime(node_json['locked_since'], '%Y-%m-%dT%H:%M:%S') locked_since = local_datetime_to_utc(locked_since_local) node.machine_type = node_json.get('type') node.arch = node_json.get('arch') node.distro = node_json.get('distro') node.up = bool(node_json.get('up', 0)) node.is_vm = is_vm node.mac_address = node_json.get('mac').lower() node.ssh_pub_key = node_json.get('sshpubkey') node.locked = node_json.get('locked') == 1 node.locked_by = node_json.get('locked_by') node.locked_since = locked_since node.description = node_json.get('description') return verb
def _populate(self, job): #print "Job: %s/%s" % (job.name, job.job_id) if not job.targets: return for key in job.targets.keys(): name = key.split('@')[1] mtype = self.parse_machine_type(name) node_q = Node.query.filter(Node.name == name) #print " node: exists={count}, name={name}".format( # count=node_q.count(), # name=name, #) if node_q.count() == 0: #print " Creating Node with name: %s" % name node = Node(name=name) else: node = node_q.one() if mtype: node.machine_type = mtype if node not in job.target_nodes: job.target_nodes.append(node)