Commit 60a7dd72 authored by Jérome Perrin's avatar Jérome Perrin

slapgrid: support intermediate software state

By just taking action "destroy" where requested state is destroyed and
installing for all other states, we can inform master of the state.
XXX this is wrong !
parent 8a82b654
......@@ -534,6 +534,7 @@ stderr_logfile_backups=1
clean_run = True
for software_release in self.computer.getSoftwareReleaseList():
state = software_release.getState()
action = 'destroy' if state == 'destroyed' else 'install'
try:
software_release_uri = software_release.getURI()
url_hash = md5digest(software_release_uri)
......@@ -567,7 +568,7 @@ stderr_logfile_backups=1
for manager in self._manager_list:
manager.software(software)
if state == 'available':
if action == 'install':
completed_tag = os.path.join(software_path, '.completed')
if (self.develop or (not os.path.exists(completed_tag) and
len(self.software_release_filter_list) == 0) or
......@@ -580,7 +581,7 @@ stderr_logfile_backups=1
software.install()
with open(completed_tag, 'w') as fout:
fout.write(time.asctime())
elif state == 'destroyed':
elif action == 'destroy':
if os.path.exists(software_path):
self.logger.info('Destroying %r...' % software_release_uri)
software.destroy()
......@@ -610,12 +611,12 @@ stderr_logfile_backups=1
software_release.error(traceback.format_exc(), logger=self.logger)
clean_run = False
else:
if state == 'available':
if action == 'install':
try:
software_release.available()
except (NotFoundError, ServerError):
pass
elif state == 'destroyed':
elif action == 'destroy':
try:
software_release.destroyed()
except (NotFoundError, ServerError):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment