Example usage for com.amazonaws.services.ecs.model ServiceEvent getMessage

List of usage examples for com.amazonaws.services.ecs.model ServiceEvent getMessage

Introduction

In this page you can find the example usage for com.amazonaws.services.ecs.model ServiceEvent getMessage.

Prototype


public String getMessage() 

Source Link

Document

The event message.

Usage

From source file:com.netflix.spinnaker.clouddriver.ecs.controllers.servergroup.EcsServerGroupController.java

License:Apache License

@RequestMapping(value = "/events", method = RequestMethod.GET)
ResponseEntity getServerGroupEvents(@PathVariable String account, @PathVariable String serverGroupName,
        @RequestParam(value = "region", required = true) String region) {
    NetflixAmazonCredentials credentials = (NetflixAmazonCredentials) accountCredentialsProvider
            .getCredentials(account);/*from w  w  w  .  jav  a 2 s.com*/

    if (!(credentials instanceof NetflixECSCredentials)) {
        return new ResponseEntity(String.format("Account %s is not an ECS account", account),
                HttpStatus.BAD_REQUEST);
    }

    AmazonECS ecs = amazonClientProvider.getAmazonEcs(credentials, region, true);

    Service cachedService = serviceCacheClient.getAll(account, region).stream()
            .filter(service -> service.getServiceName().equals(serverGroupName)).findFirst().get();

    DescribeServicesResult describeServicesResult = ecs.describeServices(new DescribeServicesRequest()
            .withServices(serverGroupName).withCluster(cachedService.getClusterArn()));

    if (describeServicesResult.getServices().size() == 0) {
        return new ResponseEntity(
                String.format("Server group %s was not found in account ", serverGroupName, account),
                HttpStatus.NOT_FOUND);
    }

    List<ServiceEvent> rawEvents = describeServicesResult.getServices().get(0).getEvents();

    List<EcsServerGroupEvent> events = new ArrayList<>();

    for (ServiceEvent rawEvent : rawEvents) {
        EcsServerGroupEvent newEvent = new EcsServerGroupEvent(rawEvent.getMessage(), rawEvent.getCreatedAt(),
                rawEvent.getId(), statusConverter.inferEventStatus(rawEvent));
        events.add(newEvent);
    }

    return new ResponseEntity(events, HttpStatus.OK);
}

From source file:com.netflix.spinnaker.clouddriver.ecs.controllers.servergroup.ServerGroupEventStatusConverter.java

License:Apache License

public EcsServerGroupEventStatus inferEventStatus(ServiceEvent event) {

    String message = event.getMessage();

    if (message.contains(ERROR_TYPE_1) || message.contains(ERROR_TYPE_2)) {
        return EcsServerGroupEventStatus.Failure;
    } else if (message.contains(SUCCESS_TYPE_1)) {
        return EcsServerGroupEventStatus.Success;
    } else {/* w ww .  j  a v  a2 s.  co  m*/
        return EcsServerGroupEventStatus.Transition;
    }
}