You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2015/03/17 03:25:11 UTC
incubator-aurora git commit: Rename beta-update subcommand to update.
Repository: incubator-aurora
Updated Branches:
refs/heads/master 2f991069e -> b847bbfcc
Rename beta-update subcommand to update.
Bugs closed: AURORA-1160
Reviewed at https://reviews.apache.org/r/32077/
Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/b847bbfc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/b847bbfc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/b847bbfc
Branch: refs/heads/master
Commit: b847bbfcce409e217e6000dcb3f5c1437994020b
Parents: 2f99106
Author: Bill Farner <wf...@apache.org>
Authored: Mon Mar 16 19:25:02 2015 -0700
Committer: Bill Farner <wf...@apache.org>
Committed: Mon Mar 16 19:25:02 2015 -0700
----------------------------------------------------------------------
docs/client-commands.md | 80 ++++++++++----------
docs/configuration-reference.md | 2 +-
docs/hooks.md | 2 +-
examples/vagrant/upstart/aurora-scheduler.conf | 1 -
.../thrift/SchedulerThriftInterface.java | 19 -----
.../aurora/scheduler/thrift/ThriftModule.java | 12 ---
.../python/apache/aurora/client/cli/update.py | 2 +-
.../thrift/SchedulerThriftInterfaceTest.java | 47 ------------
.../apache/aurora/client/cli/test_supdate.py | 28 +++----
.../sh/org/apache/aurora/e2e/test_end_to_end.sh | 14 ++--
10 files changed, 63 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/docs/client-commands.md
----------------------------------------------------------------------
diff --git a/docs/client-commands.md b/docs/client-commands.md
index f0769b5..fe13fb3 100644
--- a/docs/client-commands.md
+++ b/docs/client-commands.md
@@ -10,8 +10,8 @@ Aurora Client Commands
- [Running a Command On a Running Job](#running-a-command-on-a-running-job)
- [Killing a Job](#killing-a-job)
- [Updating a Job](#updating-a-job)
- - [Asynchronous job updates (beta)](#user-content-asynchronous-job-updates-beta)
- - [Coordinated job updates (beta)](#user-content-coordinated-job-updates-beta)
+ - [Coordinated job updates](#user-content-coordinated-job-updates)
+ - [Client-orchestrated updates (deprecated)](#user-content-client-orchestrated-updates-deprecated)
- [Renaming a Job](#renaming-a-job)
- [Restarting Jobs](#restarting-jobs)
- [Cron Jobs](#cron-jobs)
@@ -169,44 +169,14 @@ kill command.
### Updating a Job
- aurora job update CLUSTER/ROLE/ENV/NAME[/INSTANCES] <configuration file>
- aurora job cancel-update CLUSTER/ROLE/ENV/NAME
-
-Given a running job, does a rolling update to reflect a new
-configuration version. Only updates Tasks in the Job with a changed
-configuration. You can further restrict the operated on Tasks by specifying
-specific instances that should be updated.
-
-You may want to run `aurora job diff` beforehand to validate which Tasks
-have different configurations.
-
-Updating jobs are locked to be sure the update finishes without
-disruption. If the update abnormally terminates, the lock may stay
-around and cause failure of subsequent update attempts.
- `aurora job cancel-update `unlocks the Job specified by
-its `job_key` argument. Be sure you don't issue `job cancel-update` when
-another user is working with the specified Job.
-
-The `<configuration file>` argument for `job cancel-update` is optional. Use
-it only if it contains hook definitions and activations that affect the
-`cancel_update` command. The `<configuration file>` argument for
-`update` is required, but in addition to a new configuration it can be
-used to define and activate hooks for `job update`.
-
-#### Asynchronous job updates (beta)
-
-As of 0.6.0, Aurora will control and dispatch updates (and rollbacks) within the
-scheduler. Performing updates this way also allows the scheduler to display
-update progress and job update history in the browser.
-
There are several sub-commands to manage job updates:
- aurora beta-update start <job key> <configuration file>
- aurora beta-update status <job key>
- aurora beta-update pause <job key>
- aurora beta-update resume <job key>
- aurora beta-update abort <job key>
- aurora beta-update list <cluster>
+ aurora update start <job key> <configuration file>
+ aurora update status <job key>
+ aurora update pause <job key>
+ aurora update resume <job key>
+ aurora update abort <job key>
+ aurora update list <cluster>
When you `start` a job update, the command will return once it has sent the
instructions to the scheduler. At that point, you may view detailed
@@ -223,10 +193,9 @@ You may `abort` a job update regardless of the state it is in. This will
instruct the scheduler to completely abandon the job update and leave the job
in the current (possibly partially-updated) state.
-##### Coordinated job updates (beta)
+#### Coordinated job updates
-Some Aurora services may benefit from having more control over the
-[asynchronous scheduler updater](#user-content-asynchronous-job-updates-beta) by explicitly
+Some Aurora services may benefit from having more control over updates by explicitly
acknowledging ("heartbeating") job update progress. This may be helpful for mission-critical
service updates where explicit job health monitoring is vital during the entire job update
lifecycle. Such job updates would rely on an external service (or a custom client) periodically
@@ -244,6 +213,35 @@ progress until the first pulse arrives. However, a paused update (`ROLL_FORWARD_
`ROLL_BACK_PAUSED`) is still considered active and upon resuming will immediately make progress
provided the pulse interval has not expired.
+#### Client-orchestrated updates (deprecated)
+
+*Note: This feature is deprecated and will be removed in 0.9.0.
+Please use aurora update instead.*
+
+ aurora job update CLUSTER/ROLE/ENV/NAME[/INSTANCES] <configuration file>
+ aurora job cancel-update CLUSTER/ROLE/ENV/NAME
+
+Given a running job, does a rolling update to reflect a new
+configuration version. Only updates Tasks in the Job with a changed
+configuration. You can further restrict the operated on Tasks by specifying
+specific instances that should be updated.
+
+You may want to run `aurora job diff` beforehand to validate which Tasks
+have different configurations.
+
+Updating jobs are locked to be sure the update finishes without
+disruption. If the update abnormally terminates, the lock may stay
+around and cause failure of subsequent update attempts.
+ `aurora job cancel-update `unlocks the Job specified by
+its `job_key` argument. Be sure you don't issue `job cancel-update` when
+another user is working with the specified Job.
+
+The `<configuration file>` argument for `job cancel-update` is optional. Use
+it only if it contains hook definitions and activations that affect the
+`cancel_update` command. The `<configuration file>` argument for
+`update` is required, but in addition to a new configuration it can be
+used to define and activate hooks for `job update`.
+
### Renaming a Job
Renaming is a tricky operation as downstream clients must be informed of
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/docs/configuration-reference.md
----------------------------------------------------------------------
diff --git a/docs/configuration-reference.md b/docs/configuration-reference.md
index af03862..af332f2 100644
--- a/docs/configuration-reference.md
+++ b/docs/configuration-reference.md
@@ -349,7 +349,7 @@ Parameters for controlling the rate and policy of rolling updates.
| ```max_total_failures``` | Integer | Maximum number of shard failures to be tolerated in total during an update. Cannot be greater than or equal to the total number of tasks in a job. (Default: 0)
| ```rollback_on_failure``` | boolean | When False, prevents auto rollback of a failed update (Default: True)
| ```wait_for_batch_completion```| boolean | When True, all threads from a given batch will be blocked from picking up new instances until the entire batch is updated. This essentially simulates the legacy sequential updater algorithm. (Default: False)
-| ```pulse_interval_secs``` | Integer | Indicates a [coordinated update](client-commands.md#user-content-coordinated-job-updates-beta). If no pulses are received within the provided interval the update will be blocked. Beta-updater only. Will fail on submission when used with client updater. (Default: None)
+| ```pulse_interval_secs``` | Integer | Indicates a [coordinated update](client-commands.md#user-content-coordinated-job-updates). If no pulses are received within the provided interval the update will be blocked. Beta-updater only. Will fail on submission when used with client updater. (Default: None)
### HealthCheckConfig Objects
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/docs/hooks.md
----------------------------------------------------------------------
diff --git a/docs/hooks.md b/docs/hooks.md
index 23cc207..63dbdb9 100644
--- a/docs/hooks.md
+++ b/docs/hooks.md
@@ -92,7 +92,7 @@ You can associate `pre_`, `post_`, and `err_` hooks with the following methods.
```update_job``` | ```self```, ```config```, ```health_check_interval_seconds=3```, ```shards=None``` | ```job update```
```kill_job``` | ```self```, ```job_key```, ```shards=None``` | ```job kill```
```start_cronjob``` | ```self```, ```job_key``` | ```cron start```
- ```start_job_update``` | ```self```, ```config```, ```instances=None``` | ```beta-update start```
+ ```start_job_update``` | ```self```, ```config```, ```instances=None``` | ```update start```
Some specific examples:
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/examples/vagrant/upstart/aurora-scheduler.conf
----------------------------------------------------------------------
diff --git a/examples/vagrant/upstart/aurora-scheduler.conf b/examples/vagrant/upstart/aurora-scheduler.conf
index f85127d..1090bd8 100644
--- a/examples/vagrant/upstart/aurora-scheduler.conf
+++ b/examples/vagrant/upstart/aurora-scheduler.conf
@@ -38,7 +38,6 @@ exec $DIST_DIR/install/aurora-scheduler/bin/aurora-scheduler \
-thermos_executor_path=$DIST_DIR/thermos_executor.pex \
-thermos_executor_flags="--announcer-enable --announcer-ensemble localhost:2181" \
-gc_executor_path=$DIST_DIR/gc_executor.pex \
- -enable_beta_updater=true \
-vlog=INFO \
-logtostderr \
-allowed_container_types=MESOS,DOCKER
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
index c60d1e7..6b15bfd 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -13,8 +13,6 @@
*/
package org.apache.aurora.scheduler.thrift;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -23,7 +21,6 @@ import java.util.logging.Logger;
import javax.annotation.Nullable;
import javax.inject.Inject;
-import javax.inject.Qualifier;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
@@ -132,10 +129,6 @@ import org.apache.aurora.scheduler.updater.JobUpdateController.AuditData;
import org.apache.aurora.scheduler.updater.UpdateStateException;
import org.apache.thrift.TException;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static java.util.Objects.requireNonNull;
import static com.google.common.base.CharMatcher.WHITESPACE;
@@ -200,14 +193,8 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
private final TaskIdGenerator taskIdGenerator;
private final UUIDGenerator uuidGenerator;
private final JobUpdateController jobUpdateController;
- private final boolean isUpdaterEnabled;
private final ReadOnlyScheduler.Iface readOnlyScheduler;
- @Qualifier
- @Target({FIELD, PARAMETER, METHOD})
- @Retention(RUNTIME)
- @interface EnableUpdater { }
-
@Inject
SchedulerThriftInterface(
NonVolatileStorage storage,
@@ -222,7 +209,6 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
TaskIdGenerator taskIdGenerator,
UUIDGenerator uuidGenerator,
JobUpdateController jobUpdateController,
- @EnableUpdater boolean isUpdaterEnabled,
ReadOnlyScheduler.Iface readOnlyScheduler) {
this.storage = requireNonNull(storage);
@@ -237,7 +223,6 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
this.taskIdGenerator = requireNonNull(taskIdGenerator);
this.uuidGenerator = requireNonNull(uuidGenerator);
this.jobUpdateController = requireNonNull(jobUpdateController);
- this.isUpdaterEnabled = isUpdaterEnabled;
this.readOnlyScheduler = requireNonNull(readOnlyScheduler);
}
@@ -1121,10 +1106,6 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
@Nullable final String message,
SessionKey session) {
- if (!isUpdaterEnabled) {
- return invalidRequest("Server-side updates are disabled on this cluster.");
- }
-
requireNonNull(mutableRequest);
requireNonNull(session);
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/main/java/org/apache/aurora/scheduler/thrift/ThriftModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/ThriftModule.java b/src/main/java/org/apache/aurora/scheduler/thrift/ThriftModule.java
index b1d6336..d9184eb 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/ThriftModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/ThriftModule.java
@@ -13,14 +13,10 @@
*/
package org.apache.aurora.scheduler.thrift;
-import com.google.common.annotations.VisibleForTesting;
import com.google.inject.AbstractModule;
-import com.twitter.common.args.Arg;
-import com.twitter.common.args.CmdLine;
import org.apache.aurora.gen.AuroraAdmin;
import org.apache.aurora.gen.ReadOnlyScheduler;
-import org.apache.aurora.scheduler.thrift.SchedulerThriftInterface.EnableUpdater;
import org.apache.aurora.scheduler.thrift.aop.AopModule;
/**
@@ -28,11 +24,6 @@ import org.apache.aurora.scheduler.thrift.aop.AopModule;
*/
public class ThriftModule extends AbstractModule {
- @VisibleForTesting
- @CmdLine(name = "enable_beta_updater",
- help = "Enable the async updater. Use at your own risk, this feature is not yet complete.")
- static final Arg<Boolean> ENABLE_BETA_UPDATER = Arg.create(false);
-
@Override
protected void configure() {
bind(ReadOnlyScheduler.Iface.class).to(ReadOnlySchedulerImpl.class);
@@ -41,9 +32,6 @@ public class ThriftModule extends AbstractModule {
// Promote to an explicit binding so it's created in the servlet container child injector.
// See https://code.google.com/p/google-guice/issues/detail?id=461
bind(SchedulerThriftInterface.class);
-
- bind(Boolean.class).annotatedWith(EnableUpdater.class).toInstance(ENABLE_BETA_UPDATER.get());
-
install(new AopModule());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/main/python/apache/aurora/client/cli/update.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/update.py b/src/main/python/apache/aurora/client/cli/update.py
index cced108..f025d46 100644
--- a/src/main/python/apache/aurora/client/cli/update.py
+++ b/src/main/python/apache/aurora/client/cli/update.py
@@ -374,7 +374,7 @@ class Update(Noun):
@property
def name(self):
- return "beta-update"
+ return "update"
@property
def help(self):
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
index 89b9ce0..f5326af 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -29,10 +29,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
import com.twitter.common.testing.easymock.EasyMockTest;
import org.apache.aurora.auth.CapabilityValidator;
@@ -90,9 +86,7 @@ import org.apache.aurora.scheduler.configuration.ConfigurationManager;
import org.apache.aurora.scheduler.configuration.SanitizedConfiguration;
import org.apache.aurora.scheduler.cron.CronException;
import org.apache.aurora.scheduler.cron.CronJobManager;
-import org.apache.aurora.scheduler.cron.CronPredictor;
import org.apache.aurora.scheduler.cron.SanitizedCronJob;
-import org.apache.aurora.scheduler.metadata.NearestFit;
import org.apache.aurora.scheduler.quota.QuotaCheckResult;
import org.apache.aurora.scheduler.quota.QuotaManager;
import org.apache.aurora.scheduler.state.LockManager;
@@ -100,7 +94,6 @@ import org.apache.aurora.scheduler.state.LockManager.LockException;
import org.apache.aurora.scheduler.state.MaintenanceController;
import org.apache.aurora.scheduler.state.StateManager;
import org.apache.aurora.scheduler.state.UUIDGenerator;
-import org.apache.aurora.scheduler.storage.Storage.NonVolatileStorage;
import org.apache.aurora.scheduler.storage.Storage.StorageException;
import org.apache.aurora.scheduler.storage.backup.Recovery;
import org.apache.aurora.scheduler.storage.backup.StorageBackup;
@@ -113,11 +106,8 @@ import org.apache.aurora.scheduler.storage.entities.ILockKey;
import org.apache.aurora.scheduler.storage.entities.IRange;
import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
-import org.apache.aurora.scheduler.storage.entities.IServerInfo;
import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
import org.apache.aurora.scheduler.storage.testing.StorageTestUtil;
-import org.apache.aurora.scheduler.thrift.SchedulerThriftInterface.EnableUpdater;
-import org.apache.aurora.scheduler.thrift.aop.AopModule;
import org.apache.aurora.scheduler.updater.JobUpdateController;
import org.apache.aurora.scheduler.updater.JobUpdateController.AuditData;
import org.apache.aurora.scheduler.updater.UpdateStateException;
@@ -151,7 +141,6 @@ import static org.apache.aurora.scheduler.thrift.Fixtures.LOCK_KEY;
import static org.apache.aurora.scheduler.thrift.Fixtures.NOT_ENOUGH_QUOTA;
import static org.apache.aurora.scheduler.thrift.Fixtures.ROLE;
import static org.apache.aurora.scheduler.thrift.Fixtures.ROLE_IDENTITY;
-import static org.apache.aurora.scheduler.thrift.Fixtures.SERVER_INFO;
import static org.apache.aurora.scheduler.thrift.Fixtures.TASK_ID;
import static org.apache.aurora.scheduler.thrift.Fixtures.UPDATE_KEY;
import static org.apache.aurora.scheduler.thrift.Fixtures.USER;
@@ -240,7 +229,6 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
taskIdGenerator,
uuidGenerator,
jobUpdateController,
- true,
readOnlyScheduler));
}
@@ -2175,41 +2163,6 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
}
@Test
- public void testStartUpdateFailsInProd() throws Exception {
- Module testModule = new AbstractModule() {
- @Override
- protected void configure() {
- bind(NonVolatileStorage.class).toInstance(storageUtil.storage);
- bind(LockManager.class).toInstance(createMock(LockManager.class));
- bind(CapabilityValidator.class).toInstance(createMock(CapabilityValidator.class));
- bind(StorageBackup.class).toInstance(createMock(StorageBackup.class));
- bind(Recovery.class).toInstance(createMock(Recovery.class));
- bind(MaintenanceController.class).toInstance(createMock(MaintenanceController.class));
- bind(CronJobManager.class).toInstance(createMock(CronJobManager.class));
- bind(QuotaManager.class).toInstance(createMock(QuotaManager.class));
- bind(AuroraAdmin.Iface.class).to(SchedulerThriftInterface.class);
- bind(IServerInfo.class).toInstance(SERVER_INFO);
- bind(CronPredictor.class).toInstance(createMock(CronPredictor.class));
- bind(NearestFit.class).toInstance(createMock(NearestFit.class));
- bind(StateManager.class).toInstance(createMock(StateManager.class));
- bind(TaskIdGenerator.class).toInstance(createMock(TaskIdGenerator.class));
- bind(UUIDGenerator.class).toInstance(createMock(UUIDGenerator.class));
- bind(JobUpdateController.class).toInstance(createMock(JobUpdateController.class));
- bind(ReadOnlyScheduler.Iface.class).toInstance(createMock(ReadOnlyScheduler.Iface.class));
- bind(Boolean.class)
- .annotatedWith(EnableUpdater.class)
- .toInstance(ThriftModule.ENABLE_BETA_UPDATER.get());
- }
- };
- Injector injector = Guice.createInjector(testModule, new AopModule());
- AuroraAdmin.Iface thriftInstance =
- getResponseProxy(injector.getInstance(AuroraAdmin.Iface.class));
-
- control.replay();
- assertResponse(INVALID_REQUEST, thriftInstance.startJobUpdate(null, null, null));
- }
-
- @Test
public void testPauseJobUpdateByCoordinator() throws Exception {
expectAuth(UPDATE_COORDINATOR, true);
jobUpdateController.pause(UPDATE_KEY, AUDIT);
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/test/python/apache/aurora/client/cli/test_supdate.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_supdate.py b/src/test/python/apache/aurora/client/cli/test_supdate.py
index a237da9..cb66439 100644
--- a/src/test/python/apache/aurora/client/cli/test_supdate.py
+++ b/src/test/python/apache/aurora/client/cli/test_supdate.py
@@ -161,7 +161,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.flush()
cmd = AuroraCommandLine()
result = cmd.execute([
- 'beta-update',
+ 'update',
'start',
self.TEST_JOBSPEC,
fp.name,
@@ -192,7 +192,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'start', self.TEST_JOBSPEC, fp.name])
+ result = cmd.execute(['update', 'start', self.TEST_JOBSPEC, fp.name])
assert result == EXIT_OK
assert mock_api.start_job_update.call_count == 1
@@ -214,7 +214,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'pause', self.TEST_JOBSPEC, '-m=hello'])
+ result = cmd.execute(['update', 'pause', self.TEST_JOBSPEC, '-m=hello'])
assert result == EXIT_OK
assert mock_api.query_job_updates.mock_calls == [
@@ -235,7 +235,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'abort', self.TEST_JOBSPEC, '-m=hello'])
+ result = cmd.execute(['update', 'abort', self.TEST_JOBSPEC, '-m=hello'])
assert result == EXIT_OK
assert mock_api.query_job_updates.mock_calls == [
@@ -256,7 +256,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'resume', self.TEST_JOBSPEC, '--message=hello'])
+ result = cmd.execute(['update', 'resume', self.TEST_JOBSPEC, '--message=hello'])
assert result == EXIT_OK
assert mock_api.query_job_updates.mock_calls == [
@@ -274,7 +274,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_invalid_config('invalid_field=False,'))
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'start', self.TEST_JOBSPEC, fp.name])
+ result = cmd.execute(['update', 'start', self.TEST_JOBSPEC, fp.name])
assert result == EXIT_INVALID_CONFIGURATION
assert mock_api.start_job_update.mock_calls == []
@@ -290,7 +290,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'resume', self.TEST_JOBSPEC])
+ result = cmd.execute(['update', 'resume', self.TEST_JOBSPEC])
assert result == EXIT_API_ERROR
assert mock_api.query_job_updates.mock_calls == [
@@ -311,7 +311,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'abort', self.TEST_JOBSPEC])
+ result = cmd.execute(['update', 'abort', self.TEST_JOBSPEC])
assert result == EXIT_API_ERROR
assert mock_api.query_job_updates.mock_calls == [
@@ -334,7 +334,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'abort', self.TEST_JOBSPEC])
+ result = cmd.execute(['update', 'abort', self.TEST_JOBSPEC])
assert result == EXIT_API_ERROR
assert mock_api.query_job_updates.mock_calls == [
@@ -356,7 +356,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
fp.write(self.get_valid_config())
fp.flush()
cmd = AuroraCommandLine()
- result = cmd.execute(['beta-update', 'pause', self.TEST_JOBSPEC])
+ result = cmd.execute(['update', 'pause', self.TEST_JOBSPEC])
assert result == EXIT_API_ERROR
assert mock_api.query_job_updates.mock_calls == [
@@ -391,7 +391,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
patch('apache.aurora.client.cli.update.Update.create_context', return_value=mock_context),
patch('apache.aurora.client.factory.CLUSTERS', new=self.TEST_CLUSTERS)):
cmd = AuroraCommandLine()
- result = cmd.execute(["beta-update", "list", self.TEST_CLUSTER, "--user=me"])
+ result = cmd.execute(["update", "list", self.TEST_CLUSTER, "--user=me"])
assert result == EXIT_OK
assert mock_context.get_out_str() == textwrap.dedent("""\
Job: west/bozo/test/hello, Id: update_id, User: me, Status: ROLLED_FORWARD
@@ -409,7 +409,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
patch('apache.aurora.client.cli.update.Update.create_context', return_value=mock_context),
patch('apache.aurora.client.factory.CLUSTERS', new=self.TEST_CLUSTERS)):
cmd = AuroraCommandLine()
- result = cmd.execute(["beta-update", "list", self.TEST_CLUSTER, "--user=me", '--write-json'])
+ result = cmd.execute(["update", "list", self.TEST_CLUSTER, "--user=me", '--write-json'])
assert result == EXIT_OK
# TODO(wfarner): We really should not be performing string equality matching on JSON data,
# as it is sensitive to field ordering.
@@ -494,7 +494,7 @@ class TestUpdateCommand(AuroraClientCommandTest):
patch('apache.aurora.client.cli.update.Update.create_context', return_value=mock_context),
patch('apache.aurora.client.factory.CLUSTERS', new=self.TEST_CLUSTERS)):
cmd = AuroraCommandLine()
- result = cmd.execute(["beta-update", "status", self.TEST_JOBSPEC])
+ result = cmd.execute(["update", "status", self.TEST_JOBSPEC])
assert result == EXIT_OK
assert ('\n'.join(mock_context.get_out()) ==
"""Job: west/bozo/test/hello, UpdateID: update_id
@@ -526,7 +526,7 @@ Instance events:
patch('apache.aurora.client.cli.update.Update.create_context', return_value=mock_context),
patch('apache.aurora.client.factory.CLUSTERS', new=self.TEST_CLUSTERS)):
cmd = AuroraCommandLine()
- result = cmd.execute(["beta-update", "status", "--write-json", self.TEST_JOBSPEC])
+ result = cmd.execute(["update", "status", "--write-json", self.TEST_JOBSPEC])
assert result == EXIT_OK
assert mock_context.get_api(self.TEST_CLUSTER).query_job_updates.mock_calls == [
call(update_statuses=ACTIVE_JOB_UPDATE_STATES, job_key=self.TEST_JOBKEY)
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/b847bbfc/src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
----------------------------------------------------------------------
diff --git a/src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh b/src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
index f255f2d..320c1fb 100755
--- a/src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
+++ b/src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
@@ -35,7 +35,7 @@ tear_down() {
for job in http_example http_example_docker; do
aurora job cancel-update devcluster/vagrant/test/$job >/dev/null 2>&1
- aurora beta-update abort devcluster/vagrant/test/$job || true >/dev/null 2>&1
+ aurora update abort devcluster/vagrant/test/$job || true >/dev/null 2>&1
aurora job killall --no-batching devcluster/vagrant/test/$job >/dev/null 2>&1
done
}
@@ -139,7 +139,7 @@ test_legacy_update() {
assert_update_state() {
local _jobkey=$1 _expected_state=$2
- local _state=$(aurora beta-update status $_jobkey | grep 'Current status' | awk '{print $NF}')
+ local _state=$(aurora update status $_jobkey | grep 'Current status' | awk '{print $NF}')
if [ $_state != $_expected_state ]; then
echo "Expected update to be in state $_expected_state, but found $_state"
exit 1
@@ -151,7 +151,7 @@ await_update_finished() {
local _matched=0
for i in $(seq 1 120); do
- if [ $(aurora beta-update status $_jobkey | grep 'Current status' | wc -l) -eq 0 ]; then
+ if [ $(aurora update status $_jobkey | grep 'Current status' | wc -l) -eq 0 ]; then
_matched=1
break
else
@@ -168,19 +168,19 @@ await_update_finished() {
test_update() {
local _jobkey=$1 _config=$2 _cluster=$3
- aurora beta-update start $_jobkey $_config
+ aurora update start $_jobkey $_config
assert_update_state $_jobkey 'ROLLING_FORWARD'
sudo restart aurora-scheduler
assert_update_state $_jobkey 'ROLLING_FORWARD'
- aurora beta-update pause $_jobkey --message='hello'
+ aurora update pause $_jobkey --message='hello'
assert_update_state $_jobkey 'ROLL_FORWARD_PAUSED'
- aurora beta-update resume $_jobkey
+ aurora update resume $_jobkey
assert_update_state $_jobkey 'ROLLING_FORWARD'
await_update_finished $_jobkey
# Check that the update ended in ROLLED_FORWARD state. Assumes the status is the last column.
- local status=$(aurora beta-update list --job $_jobkey $_cluster | grep -m 1 Status \
+ local status=$(aurora update list --job $_jobkey $_cluster | grep -m 1 Status \
| awk '{print $NF}')
if [ $status != "ROLLED_FORWARD" ]; then
echo "Update should have completed in ROLLED_FORWARD state"