Committed by
Brian O'Connor
Remove IntentStore access in IntentUpdate subclasses
Change-Id: I923c62f1d34dc2c911323f11990de5c9788bf655
Showing
3 changed files
with
14 additions
and
21 deletions
| ... | @@ -27,16 +27,16 @@ class InstallRequest implements IntentUpdate { | ... | @@ -27,16 +27,16 @@ class InstallRequest implements IntentUpdate { |
| 27 | // TODO: define an interface and use it, instead of IntentManager | 27 | // TODO: define an interface and use it, instead of IntentManager |
| 28 | private final IntentManager intentManager; | 28 | private final IntentManager intentManager; |
| 29 | private final IntentData pending; | 29 | private final IntentData pending; |
| 30 | + private final Optional<IntentData> current; | ||
| 30 | 31 | ||
| 31 | - InstallRequest(IntentManager intentManager, IntentData intentData) { | 32 | + InstallRequest(IntentManager intentManager, IntentData intentData, Optional<IntentData> current) { |
| 32 | this.intentManager = checkNotNull(intentManager); | 33 | this.intentManager = checkNotNull(intentManager); |
| 33 | this.pending = checkNotNull(intentData); | 34 | this.pending = checkNotNull(intentData); |
| 35 | + this.current = checkNotNull(current); | ||
| 34 | } | 36 | } |
| 35 | 37 | ||
| 36 | @Override | 38 | @Override |
| 37 | public Optional<IntentUpdate> execute() { | 39 | public Optional<IntentUpdate> execute() { |
| 38 | - //FIXME... store hack | 40 | + return Optional.of(new Compiling(intentManager, pending, current.orElse(null))); |
| 39 | - IntentData current = intentManager.store.getIntentData(pending.key()); | ||
| 40 | - return Optional.of(new Compiling(intentManager, pending, current)); | ||
| 41 | } | 41 | } |
| 42 | } | 42 | } | ... | ... |
| ... | @@ -489,19 +489,16 @@ public class IntentManager | ... | @@ -489,19 +489,16 @@ public class IntentManager |
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | private IntentUpdate createIntentUpdate(IntentData intentData) { | 491 | private IntentUpdate createIntentUpdate(IntentData intentData) { |
| 492 | + IntentData current = store.getIntentData(intentData.key()); | ||
| 492 | switch (intentData.state()) { | 493 | switch (intentData.state()) { |
| 493 | case INSTALL_REQ: | 494 | case INSTALL_REQ: |
| 494 | - return new InstallRequest(this, intentData); | 495 | + return new InstallRequest(this, intentData, Optional.ofNullable(current)); |
| 495 | case WITHDRAW_REQ: | 496 | case WITHDRAW_REQ: |
| 496 | - return new WithdrawRequest(this, intentData); | 497 | + if (current == null) { |
| 497 | - // fallthrough | 498 | + return new Withdrawn(current, WITHDRAWN); |
| 498 | - case COMPILING: | 499 | + } else { |
| 499 | - case INSTALLING: | 500 | + return new WithdrawRequest(this, intentData, current); |
| 500 | - case INSTALLED: | 501 | + } |
| 501 | - case RECOMPILING: | ||
| 502 | - case WITHDRAWING: | ||
| 503 | - case WITHDRAWN: | ||
| 504 | - case FAILED: | ||
| 505 | default: | 502 | default: |
| 506 | // illegal state | 503 | // illegal state |
| 507 | return new CompilingFailed(intentData); | 504 | return new CompilingFailed(intentData); | ... | ... |
| ... | @@ -20,7 +20,6 @@ import org.onosproject.net.intent.IntentData; | ... | @@ -20,7 +20,6 @@ import org.onosproject.net.intent.IntentData; |
| 20 | import java.util.Optional; | 20 | import java.util.Optional; |
| 21 | 21 | ||
| 22 | import static com.google.common.base.Preconditions.checkNotNull; | 22 | import static com.google.common.base.Preconditions.checkNotNull; |
| 23 | -import static org.onosproject.net.intent.IntentState.WITHDRAWN; | ||
| 24 | 23 | ||
| 25 | /** | 24 | /** |
| 26 | * Represents a phase of requesting a withdraw of an intent. | 25 | * Represents a phase of requesting a withdraw of an intent. |
| ... | @@ -30,19 +29,16 @@ class WithdrawRequest implements IntentUpdate { | ... | @@ -30,19 +29,16 @@ class WithdrawRequest implements IntentUpdate { |
| 30 | // TODO: define an interface and use it, instead of IntentManager | 29 | // TODO: define an interface and use it, instead of IntentManager |
| 31 | private final IntentManager intentManager; | 30 | private final IntentManager intentManager; |
| 32 | private final IntentData pending; | 31 | private final IntentData pending; |
| 32 | + private final IntentData current; | ||
| 33 | 33 | ||
| 34 | - WithdrawRequest(IntentManager intentManager, IntentData intentData) { | 34 | + WithdrawRequest(IntentManager intentManager, IntentData intentData, IntentData current) { |
| 35 | this.intentManager = checkNotNull(intentManager); | 35 | this.intentManager = checkNotNull(intentManager); |
| 36 | this.pending = checkNotNull(intentData); | 36 | this.pending = checkNotNull(intentData); |
| 37 | + this.current = checkNotNull(current); | ||
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | @Override | 40 | @Override |
| 40 | public Optional<IntentUpdate> execute() { | 41 | public Optional<IntentUpdate> execute() { |
| 41 | - //FIXME need store interface | ||
| 42 | - IntentData current = intentManager.store.getIntentData(pending.key()); | ||
| 43 | - if (current == null) { | ||
| 44 | - return Optional.of(new Withdrawn(pending, WITHDRAWN)); | ||
| 45 | - } | ||
| 46 | //TODO perhaps we want to validate that the pending and current are the | 42 | //TODO perhaps we want to validate that the pending and current are the |
| 47 | // same version i.e. they are the same | 43 | // same version i.e. they are the same |
| 48 | // Note: this call is not just the symmetric version of submit | 44 | // Note: this call is not just the symmetric version of submit | ... | ... |
-
Please register or login to post a comment