event stream from watcher should have logical ordering.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju-core |
Won't Fix
|
Low
|
Unassigned | ||
juju-gui |
Triaged
|
High
|
Unassigned |
Bug Description
ie. you shouldn't publish a relation in the event stream, before the services in the relation. clients should be able to assume the output is coming, rather than rebuffering and doing ordering themselves.
Proper order is removes before adds, and then changes. Each of those sections has ordering by type, so i see machine added, service added, and then unit added.
here's an example of the issue, empty env, then deploy mysql
[u'relation', u'change', {u'Endpoints': [{u'ServiceName': u'mysql', u'Relation': {u'Name': u'cluster', u'Limit': 1, u'Scope': u'global', u'Interface':\
u'mysql-ha', u'Role': u'peer', u'Optional': False}}], u'Key': u'mysql:cluster'}]
[u'service', u'change', {u'Life': u'alive', u'CharmURL': u'cs:precise/
{}}]
[u'unit', u'change', {u'Status': u'pending', u'CharmURL': u'', u'Name': u'mysql/0', u'Service': u'mysql', u'PublicAddress': u'', u'Series': u'precise'\
, u'Ports': [], u'StatusInfo': u'', u'MachineId': u'1', u'PrivateAddress': u''}]
[u'machine', u'change', {u'InstanceId': u'', u'Status': u'pending', u'StatusInfo': u'', u'Id': u'1'}]
Changed in juju-core: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Changed in juju-core: | |
importance: | Medium → Low |
Changed in juju-core: | |
status: | Triaged → Won't Fix |
We needed to implement a workaround in the GUI too in order to handle the similar case of peer relation data arriving before the actual service creation event.