Fix system_log and add compact view for changes
This commit is contained in:
parent
87528def40
commit
d6f77ad658
@ -26,11 +26,11 @@ def validate():
|
||||
|
||||
@changes.command()
|
||||
def stage():
|
||||
log = change.stage_changes()
|
||||
staged = list(log.reverse())
|
||||
if not staged:
|
||||
log = list(change.stage_changes().reverse())
|
||||
for item in log:
|
||||
click.echo(item)
|
||||
if not log:
|
||||
click.echo('No changes')
|
||||
click.echo(staged)
|
||||
|
||||
|
||||
@changes.command()
|
||||
|
@ -48,11 +48,12 @@ def _stage_changes(staged_resources, conn_graph,
|
||||
df = create_diff(staged_data, commited_data)
|
||||
|
||||
if df:
|
||||
action = guess_action(commited_data, staged_data)
|
||||
log_item = data.LogItem(
|
||||
utils.generate_uuid(),
|
||||
res_uid,
|
||||
df,
|
||||
guess_action(commited_data, staged_data))
|
||||
'{}.{}'.format(res_uid, action),
|
||||
df)
|
||||
staged_log.append(log_item)
|
||||
return staged_log
|
||||
|
||||
|
@ -30,12 +30,12 @@ CL = partial(state_file, 'commit_log')
|
||||
|
||||
class LogItem(object):
|
||||
|
||||
def __init__(self, uid, res, diff, action, state=None):
|
||||
def __init__(self, uid, res, log_action, diff, state=None):
|
||||
self.uid = uid
|
||||
self.res = res
|
||||
self.log_action = log_action
|
||||
self.diff = diff
|
||||
self.state = state or STATES.pending
|
||||
self.action = action
|
||||
|
||||
def to_yaml(self):
|
||||
return utils.yaml_dump(self.to_dict())
|
||||
@ -43,9 +43,9 @@ class LogItem(object):
|
||||
def to_dict(self):
|
||||
return {'uid': self.uid,
|
||||
'res': self.res,
|
||||
'log_action': self.log_action,
|
||||
'diff': self.diff,
|
||||
'state': self.state.name,
|
||||
'action': self.action}
|
||||
'state': self.state.name}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, **kwargs):
|
||||
@ -54,10 +54,14 @@ class LogItem(object):
|
||||
return cls(**kwargs)
|
||||
|
||||
def __str__(self):
|
||||
return self.to_yaml()
|
||||
return self.compact
|
||||
|
||||
def __repr__(self):
|
||||
return self.to_yaml()
|
||||
return self.compact
|
||||
|
||||
@property
|
||||
def compact(self):
|
||||
return 'log task={} uid={}'.format(self.log_action, self.uid)
|
||||
|
||||
|
||||
class Log(object):
|
||||
@ -66,7 +70,7 @@ class Log(object):
|
||||
self.ordered_log = db.get_set(path)
|
||||
|
||||
def append(self, logitem):
|
||||
self.ordered_log.add([(logitem.res, logitem.to_dict())])
|
||||
self.ordered_log.add([(logitem.log_action, logitem.to_dict())])
|
||||
|
||||
def pop(self, uid):
|
||||
item = self.get(uid)
|
||||
@ -76,7 +80,7 @@ class Log(object):
|
||||
return item
|
||||
|
||||
def update(self, logitem):
|
||||
self.ordered_log.update(logitem.res, logitem.to_dict())
|
||||
self.ordered_log.update(logitem.log_action, logitem.to_dict())
|
||||
|
||||
def clean(self):
|
||||
self.ordered_log.clean()
|
||||
|
@ -4,20 +4,20 @@ from solar.system_log import data
|
||||
from dictdiffer import patch
|
||||
|
||||
|
||||
def set_error(task_uuid, *args, **kwargs):
|
||||
def set_error(log_action, *args, **kwargs):
|
||||
sl = data.SL()
|
||||
item = sl.get(task_uuid)
|
||||
item = sl.get(log_action)
|
||||
if item:
|
||||
item.state = data.STATES.error
|
||||
sl.update(item)
|
||||
|
||||
|
||||
def move_to_commited(task_uuid, *args, **kwargs):
|
||||
def move_to_commited(log_action, *args, **kwargs):
|
||||
sl = data.SL()
|
||||
item = sl.pop(task_uuid)
|
||||
item = sl.pop(log_action)
|
||||
if item:
|
||||
commited = data.CD()
|
||||
staged_data = patch(item.diff, commited.get(item.res, {}))
|
||||
staged_data = patch(item.diff, commited.get(item.log_action, {}))
|
||||
cl = data.CL()
|
||||
item.state = data.STATES.success
|
||||
cl.append(item)
|
||||
|
@ -6,11 +6,11 @@ from solar.system_log.operations import set_error, move_to_commited
|
||||
__all__ = ['error_logitem', 'commit_logitem']
|
||||
|
||||
|
||||
@app.task
|
||||
@app.task(name='error_logitem')
|
||||
def error_logitem(task_uuid):
|
||||
return set_error(task_uuid.rsplit(':', 1)[-1])
|
||||
|
||||
|
||||
@app.task
|
||||
@app.task(name='commit_logitem')
|
||||
def commit_logitem(task_uuid):
|
||||
return move_to_commited(task_uuid.rsplit(':', 1)[-1])
|
||||
|
Loading…
x
Reference in New Issue
Block a user