Fixing update procedure and timeouts for services
This commit is contained in:
parent
1aae204447
commit
47583aafce
4
cli.py
4
cli.py
@ -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()
|
||||
|
@ -17,4 +17,3 @@
|
||||
- {{ config_dir }}:/etc/keystone
|
||||
- name: wait for keystone
|
||||
wait_for: host={{ip}} port={{port}} timeout=20
|
||||
|
||||
|
@ -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
|
||||
|
@ -16,3 +16,4 @@
|
||||
until: result.rc == 0
|
||||
retries: 30
|
||||
delay: 0.5
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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]
|
||||
|
Loading…
x
Reference in New Issue
Block a user