Last active
September 7, 2017 15:11
-
-
Save toracle/eacdce7a9ce82c3ba9b4496192fdeade to your computer and use it in GitHub Desktop.
tutorial-opsworksbot-stack
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from bothub_client.bot import BaseBot | |
from bothub_client.messages import Message | |
class Bot(BaseBot): | |
def on_stacks(self, event, context): | |
data = self.get_user_data() | |
client = self.get_boto_client(data) | |
response = client.describe_stacks() | |
stacks = [(s['StackId'], s['Name']) for s in response['Stacks']] | |
message = Message(event) | |
message.set_text('Select one stack:') | |
for stack in stacks: | |
message.add_postback_button(stack[1], '/use_stack {} {}'.format(stack[0], stack[1])) | |
self.send_message(message) | |
def on_use_stack(self, event, context, stack_id, stack_name): | |
data = self.get_user_data() | |
data['stack_id'] = stack_id | |
self.set_user_data(data) | |
message = Message(event) | |
message.set_text('Use stack {} now'.format(stack_name)) | |
message.add_postback_button('Layer list', '/layers') | |
message.add_postback_button('Deploy', '/deploy') | |
self.send_message(message) | |
def get_boto_client(self, data): | |
credentials = data['credentials'] | |
kwargs = { | |
'aws_access_key_id': credentials['aws_access_key_id'], | |
'aws_secret_access_key': credentials['aws_secret_access_key'], | |
'region_name': 'us-east-1' | |
} | |
client = boto3.client('opsworks', **kwargs) | |
return client |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment