package com.sequenceiq.samples.core.service.simple;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.*;
import com.sequenceiq.samples.core.service.SecurityGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class SimpleSecurityGroupService implements SecurityGroupService {
@Autowired
private AmazonEC2ClientFactory amazonEC2ClientFactory;
private CreateSecurityGroupResult createSecurityGroup(AmazonEC2Client client, String groupName, String description) {
CreateSecurityGroupRequest createSecurityGroupRequest = new CreateSecurityGroupRequest().withGroupName(groupName).withDescription(description);
CreateSecurityGroupResult createSecurityGroupResult = client.createSecurityGroup(createSecurityGroupRequest);
return createSecurityGroupResult;
}
@Override
public CreateSecurityGroupResult createSecurityGroup(AWSCredentials credentials, String groupName, String description) {
return createSecurityGroup(amazonEC2ClientFactory.createAmazonEC2Client(credentials), groupName, description);
}
private DescribeSecurityGroupsResult describeSecurityGroups(AmazonEC2Client client) {
DescribeSecurityGroupsRequest describeSecurityGroupsRequest = new DescribeSecurityGroupsRequest();
DescribeSecurityGroupsResult describeSecurityGroupsResult = client.describeSecurityGroups(describeSecurityGroupsRequest);
return describeSecurityGroupsResult;
}
@Override
public DescribeSecurityGroupsResult describeSecurityGroups(AWSCredentials credentials) {
return describeSecurityGroups(amazonEC2ClientFactory.createAmazonEC2Client(credentials));
}
@Override
public List<SecurityGroup> listSecurityGroups(AWSCredentials credentials) {
return describeSecurityGroups(amazonEC2ClientFactory.createAmazonEC2Client(credentials)).getSecurityGroups();
}
}