Fixing update procedure and timeouts for services

This commit is contained in:
Dmitry Shulyak 2015-06-03 11:09:07 +02:00
parent 1aae204447
commit 47583aafce
7 changed files with 18 additions and 22 deletions

4
cli.py
View File

@ -178,10 +178,6 @@ def init_changes():
changes.add_command(rollback)
@click.command()
def replay():
operations.replay_errors()
changes.add_command(replay)
def init_cli_connections():
@click.group()

View File

@ -17,4 +17,3 @@
- {{ config_dir }}:/etc/keystone
- name: wait for keystone
wait_for: host={{ip}} port={{port}} timeout=20

View File

@ -4,7 +4,7 @@ version: 1.0.0
input:
image:
schema: str!
value: kollaglue/centos-rdo-j-keystone
value: kollaglue/centos-rdo-k-keystone
config_dir:
schema: str!
value: /etc/solar/keystone

View File

@ -16,3 +16,4 @@
until: result.rc == 0
retries: 30
delay: 0.5

View File

@ -17,8 +17,7 @@ class BaseObserver(object):
self.receivers = []
def log(self, msg):
pass
#print '{} {}'.format(self, msg)
print '{} {}'.format(self, msg)
def __repr__(self):
return '[{}:{}] {}'.format(self.attached_to.name, self.name, self.value)

View File

@ -92,21 +92,23 @@ def commit(li, resources):
history = state.CL()
staged = state.SL()
wrapper = resources[li.res]
staged_res = resources[li.res]
staged_data = patch(li.diff, commited.get(li.res, {}))
# TODO(dshulyak) think about this hack for update
if li.action == 'update':
commited_args = commited[li.res]['args']
wrapper.update(commited_args)
result_state = actions.resource_action(wrapper, 'remove')
commited_res = resource.Resource(
staged_res.name,
staged_res.metadata,
commited[li.res]['args'],
commited[li.res]['tags'])
result_state = execute(commited_res, 'remove')
if result_state is state.STATES.success:
wrapper.update(staged_data.get('args', {}))
result_state = actions.resource_action(wrapper, 'run')
result_state = execute(staged_res, 'run')
else:
result_state = actions.resource_action(wrapper, li.action)
result_state = execute(staged_res, li.action)
# resource_action return None in case there is no actions
result_state = result_state or state.STATES.success
@ -158,7 +160,7 @@ def rollback(log_item):
log_item.res, df, guess_action(commited, staged))
log.add(log_item)
res = resource.wrap_resource(db.get_resource(log_item.res))
res = db.get_obj_resource(log_item.res)
res.update(staged.get('args', {}))
res.save()

View File

@ -75,10 +75,10 @@ class Log(object):
def __init__(self, path):
self.path = path
items = []
if path in db:
items = db[path]
else:
items = []
items = db[path] or items
self.items = deque([LogItem(
l['uid'], l['res'],
l['diff'], l['action'],
@ -120,10 +120,9 @@ class Data(collections.MutableMapping):
def __init__(self, path):
self.path = path
self.store = {}
if path in db:
self.store = db[path]
else:
self.store = {}
self.store = db[path] or self.store
def __getitem__(self, key):
return self.store[key]