~niemeyer/pyjuju/machine-states

« back to all changes in this revision

Viewing changes to ensemble/state/service.py

  • Committer: Gustavo Niemeyer
  • Date: 2010-08-20 11:43:11 UTC
  • Revision ID: gustavo@niemeyer.net-20100820114311-x157614bm2dyc312
Machine unassignement is possible now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
180
180
        # XXX What if the system blows up right here?
181
181
        yield self._client.create("%s/units/%s" %
182
182
                                  (machine_st.zk_path, self.internal_id))
 
183
 
 
184
    @inlineCallbacks
 
185
    def unassign_from_machine(self):
 
186
        machine_id, stat = yield self._client.get(self.zk_path + "/machine")
 
187
        try:
 
188
            yield self._client.delete(self.zk_path + "/machine",
 
189
                                      stat["version"])
 
190
        except zookeeper.BadVersionException:
 
191
            # XXX How to test this?
 
192
            return # Machine was replaced meanwhile. It's cool.
 
193
        # XXX What if the system blows up here?
 
194
        yield self._client.delete("/machines/%s/units/%s" %
 
195
                                  (machine_id, self.internal_id))