diff --git a/slapos/grid/slapgrid.py b/slapos/grid/slapgrid.py index 0fa091ebbef0ca5a6dcc47329b56347bc158f38f..fc8d3d86cc599a5eb179b02251a3ad6c4735a107 100644 --- a/slapos/grid/slapgrid.py +++ b/slapos/grid/slapgrid.py @@ -1000,6 +1000,31 @@ stderr_logfile_backups=1 os.remove(periodicity_path) self.logger.exception('') + local_partition = Partition( + software_path=software_path, + instance_path=instance_path, + supervisord_partition_configuration_path=os.path.join( + _getSupervisordConfigurationDirectory(self.instance_root), '%s.conf' % + computer_partition_id), + supervisord_socket=self.supervisord_socket, + computer_partition=computer_partition, + computer_id=self.computer_id, + partition_id=computer_partition_id, + server_url=self.master_url, + software_release_url=software_url, + certificate_repository_path=self.certificate_repository_path, + buildout=self.buildout, + logger=self.logger, + retention_delay=getattr(computer_partition, '_filter_dict', {}).get('retention_delay', '0'), + instance_min_free_space=self.instance_min_free_space, + instance_storage_home=self.instance_storage_home, + ipv4_global_network=self.ipv4_global_network, + ) + + # let managers modify current partition + for manager in self._manager_list: + manager.instance(local_partition) + # Check if timestamp from server is more recent than local one. # If not: it's not worth processing this partition (nothing has # changed). @@ -1047,32 +1072,6 @@ stderr_logfile_backups=1 self.logger.info(' Software path: %s' % software_path) self.logger.info(' Instance path: %s' % instance_path) - filter_dict = getattr(computer_partition, '_filter_dict', None) - if filter_dict: - retention_delay = filter_dict.get('retention_delay', '0') - else: - retention_delay = '0' - - local_partition = Partition( - software_path=software_path, - instance_path=instance_path, - supervisord_partition_configuration_path=os.path.join( - _getSupervisordConfigurationDirectory(self.instance_root), '%s.conf' % - computer_partition_id), - supervisord_socket=self.supervisord_socket, - computer_partition=computer_partition, - computer_id=self.computer_id, - partition_id=computer_partition_id, - server_url=self.master_url, - software_release_url=software_url, - certificate_repository_path=self.certificate_repository_path, - buildout=self.buildout, - logger=self.logger, - retention_delay=retention_delay, - instance_min_free_space=self.instance_min_free_space, - instance_storage_home=self.instance_storage_home, - ipv4_global_network=self.ipv4_global_network, - ) computer_partition_state = computer_partition.getState() # XXX this line breaks 37 tests @@ -1084,10 +1083,6 @@ stderr_logfile_backups=1 partition_ip_list = parameter_dict['ip_list'] + parameter_dict.get( 'full_ip_list', []) - # call manager for every software release - for manager in self._manager_list: - manager.instance(local_partition) - if computer_partition_state == COMPUTER_PARTITION_STARTED_STATE: local_partition.install() computer_partition.available()