345
345
return succeed({})
347
347
@region.ReportForeignDHCPServer.responder
348
def report_foreign_dhcp_server(self, cluster_uuid, interface_name,
348
def report_foreign_dhcp_server(
349
self, system_id, interface_name, dhcp_ip=None):
350
350
"""report_foreign_dhcp_server()
352
352
Implementation of
353
:py:class:`~provisioningserver.rpc.region.SendEvent`.
353
:py:class:`~provisioningserver.rpc.region.ReportForeignDHCPServer`.
355
355
d = deferToDatabase(
356
rackcontrollers.update_foreign_dhcp_ip,
357
cluster_uuid, interface_name, foreign_dhcp_ip)
356
rackcontrollers.update_foreign_dhcp,
357
system_id, interface_name, dhcp_ip)
358
358
d.addCallback(lambda _: {})
361
@region.GetClusterInterfaces.responder
362
def get_cluster_interfaces(self, cluster_uuid):
363
"""get_cluster_interfaces()
366
:py:class:`~provisioningserver.rpc.region.GetClusterInterfaces`.
369
rackcontrollers.get_rack_controllers_interfaces_as_dicts,
371
d.addCallback(lambda interfaces: {'interfaces': interfaces})
374
361
@region.CreateNode.responder
375
362
def create_node(self, architecture, power_type, power_parameters,
376
363
mac_addresses, domain=None, hostname=None):
1079
1066
# Update the updated time for this process. This prevents other
1080
1067
# region process from removing this process.
1081
process = RegionControllerProcess.objects.get(id=self.processId.value)
1082
process.save(update_fields=["updated"])
1069
process = RegionControllerProcess.objects.get(
1070
id=self.processId.value)
1071
except RegionControllerProcess.DoesNotExist:
1072
# Possible that another regiond process deleted this process
1073
# because the updated field was not updated in time. Re-create the
1074
# process with the same ID so its the same across the running of
1075
# this regiond process.
1076
process = RegionControllerProcess(
1077
region=region_obj, pid=os.getpid(), created=now())
1078
process.id = self.processId.value
1081
process.save(update_fields=["updated"])
1084
1083
# Remove any old processes that are older than 90 seconds.
1085
1084
remove_before_time = now() - timedelta(seconds=90)