Skip to content

Commit

Permalink
fixes#18
Browse files Browse the repository at this point in the history
  • Loading branch information
LisiLisenok committed May 3, 2017
1 parent 1baf92f commit 1f1e422
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions source/herd/schedule/chime/SchedulerManager.ceylon
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ class SchedulerManager(
Chime.operation.info -> operationInfo
};

"Processes 'create new scheduler' operation."
"Processes 'create new scheduler or timer' operation."
void operationCreate( Message<JSON?> msg ) {
if ( exists request = msg.body(), is String name = request[Chime.key.name], !name.empty && name != address ) {
String schedulerName;
Expand Down Expand Up @@ -169,20 +169,21 @@ class SchedulerManager(
}
}

"Processes 'delete scheduler' operation."
"Processes 'delete scheduler or timer' operation."
void operationDelete( Message<JSON?> msg ) {
if ( exists request = msg.body(), is String name = request[Chime.key.name] ) {
value nn = msg.body()?.get( Chime.key.name );
if ( is String name = nn ) {
if ( name.empty || name == address ) {
// remove all schedulers
for ( scheduler in schedulers.items ) {
scheduler.stop();
}
schedulers.clear();
msg.reply (
JSON {
Chime.key.schedulers -> JSONArray( [ for ( scheduler in schedulers.items ) scheduler.fullInfo ] )
Chime.key.schedulers -> JSONArray( [ for ( scheduler in schedulers.items ) scheduler.shortInfo ] )
}
);
schedulers.clear();
}
else if ( exists sch = schedulers.remove( name ) ) {
// delete scheduler
Expand All @@ -203,6 +204,17 @@ class SchedulerManager(
}
}
}
else if ( is JSONArray arr = nn, nonempty names = arr.narrow<String>().sequence() ) {
JSONArray ret = JSONArray();
for ( item in names ) {
if ( exists sch = schedulers.remove( item ) ) {
// delete scheduler
sch.stop();
ret.add( sch.shortInfo );
}
}
msg.reply( JSON{ Chime.key.schedulers -> ret } );
}
else {
// response with wrong format error
msg.fail( Chime.errors.codeSchedulerNameHasToBeSpecified, Chime.errors.schedulerNameHasToBeSpecified );
Expand Down

0 comments on commit 1f1e422

Please sign in to comment.