)]}'
{"nova/compute/migration_states.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59ed840e4c58149537d506320cc9dda8c8a6b9c3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"MIGRATING \u003d MigState(\u0027migrating\u0027, next_states\u003d[POST_MIGRATING, ERROR])"},{"line_number":44,"context_line":"PREPARING \u003d MigState(\u0027preparing\u0027, next_states\u003d[MIGRATING, RUNNING, FAILED])"},{"line_number":45,"context_line":"PRE_MIGRATING \u003d MigState(\u0027pre-migrating\u0027,"},{"line_number":46,"context_line":"                         next_states\u003d[PREPARING, ERROR, FAILED])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"MigrationStates \u003d functools.partial(states.States, NAMESPACE, PRE_MIGRATING)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_f5198923","line":46,"updated":"2015-07-06 17:27:59.000000000","message":"All of the above things should really be nova.objects.fields.Enum derivatives. I don\u0027t see a need to get all fancy with functools.partial\u0027s, specializations of automaton.FiniteMachine, or anything like that.","commit_id":"e1a8f388c28b1bebdd72257852de06d532cfb900"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"a7fb174a0d85fb74ba3a536f5613cd7027d5cb39","unresolved":false,"context_lines":[{"line_number":43,"context_line":"MIGRATING \u003d MigState(\u0027migrating\u0027, next_states\u003d[POST_MIGRATING, ERROR])"},{"line_number":44,"context_line":"PREPARING \u003d MigState(\u0027preparing\u0027, next_states\u003d[MIGRATING, RUNNING, FAILED])"},{"line_number":45,"context_line":"PRE_MIGRATING \u003d MigState(\u0027pre-migrating\u0027,"},{"line_number":46,"context_line":"                         next_states\u003d[PREPARING, ERROR, FAILED])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"MigrationStates \u003d functools.partial(states.States, NAMESPACE, PRE_MIGRATING)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_7b68e6ba","line":46,"in_reply_to":"ba3cc151_f5198923","updated":"2015-07-07 12:56:48.000000000","message":"Well that would not capture valid and invalid transitions of states which this does. We also get the benefits of easily being able to document the migration state machine using the features of automaton library.\n\nThe point of this is to explicitely define the states an their stat transitions for the migration object. I don\u0027t think any of this belongs in objects. I really dislike the tendency to shove everything and more into objects (they already do quite a lot of things).","commit_id":"e1a8f388c28b1bebdd72257852de06d532cfb900"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab079f3519674ee6c6a0a1b20786317da38285b5","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Evacuate only"},{"line_number":49,"context_line":"ACCEPTED \u003d MigState(\u0027accepted\u0027, next_states\u003d[PRE_MIGRATING], initial\u003dTrue)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"MigrationStates \u003d functools.partial(states.FSM, NAMESPACE)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_e94b002a","line":51,"updated":"2015-07-13 08:07:01.000000000","message":"it is worth creating different namespace for different move type?","commit_id":"ef2c5c4d2ba632a05fcb6dd5dbbf0eab978f50e5"}],"nova/objects/migration.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c75be92c3ec7fa1aca621e3954cee51b8f461758","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            self.status \u003d states.MigrationStates(new_state).current_state"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            self.status \u003d states.MigrationStates("},{"line_number":131,"context_line":"                self.status).step(new_state).current_state"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"@base.NovaObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_a85a9f28","line":131,"updated":"2015-07-07 13:43:04.000000000","message":"I was talking with alaski on IRC about this yesterday. I think we were leaning towards adding a new field to the database called \"state\" and leaving \"status\" as a free-form field that we could mostly set to anything (as it is now).\n\nThat way the states would be more rigorous and few, but we could update status more often with things like \"starting migration\", \"moving data\", \"doing cleanup\", \"waiting for confirm\". State might be something like \"in-progress\", \"waiting-confirm\", \"finished\".\n\nRight now, we already overload status to be movement-related and progress-related bits. Especially since we need to use something to decide whether an evacuation has started and we should do the cleanup, we would have a more finite set of steps to examine.\n\nWhat do you think about that?","commit_id":"c71f66aea91813ebc11b2acff3e9e9b09658e8a0"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ad24ddb159722b4f4c7e837060e41b0403cf6b5a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            self.status \u003d states.MigrationStates(new_state).current_state"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            self.status \u003d states.MigrationStates("},{"line_number":131,"context_line":"                self.status).step(new_state).current_state"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"@base.NovaObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_0ec95378","line":131,"in_reply_to":"ba3cc151_a85a9f28","updated":"2015-07-07 14:20:49.000000000","message":"Well I like the idea of separating the high level states of the move that can tell us that \"from now on - only look at this host\" and then have another set of fine grained events that we also consider if needed. I am not sure that it\u0027s as easy as that for the case of live-migrate/resize though, because of the possibility to revert - so I\u0027d have to see the actual states being proposed and then consider how they actually fit into the workflow.\n\nEven then we should probably use a similar mechanism as porposed here to define/document them.","commit_id":"c71f66aea91813ebc11b2acff3e9e9b09658e8a0"}]}
