Skip to content

Instantly share code, notes, and snippets.

@toracle
Last active September 7, 2017 15:39
Show Gist options
  • Save toracle/7f0848dfef77793e3e7915a24d2459d2 to your computer and use it in GitHub Desktop.
Save toracle/7f0848dfef77793e3e7915a24d2459d2 to your computer and use it in GitHub Desktop.
tutorial-opsworksbot-layer
from bothub_client.bot import BaseBot
from bothub_client.messages import Message
class Bot(BaseBot):
def on_layers(self, event, context):
data = self.get_user_data()
stack_id = data['stack_id']
client = self.get_boto_client(data)
response = client.describe_layers(StackId=stack_id)
layers = [(l['LayerId'], l['Name']) for l in response['Layers']]
message = Message(event)
message.set_text('Layer list:')
for layer in layers:
message.add_postback_button(layer[1], '/layer {}'.format(layer[0]))
self.send_message(message)
def on_layer(self, event, context, layer_id):
data = self.get_user_data()
client = self.get_boto_client(data)
response = client.describe_layers(LayerIds=[layer_id])
layer = response['Layers'][0]
instances = client.describe_instances(LayerId=layer_id)['Instances']
text_lines = ['Layer [{Name}]'.format(**layer), '']
for instance in instances:
text_lines.append('* {Hostname} is {Status}'.format(**instance))
message_text = '\n'.join(text_lines)
message = Message(event)
message.set_text(message_text)
message.add_postback_button('Layer list', '/layers')
message.add_postback_button('Deploy', '/deploy')
self.send_message(message)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment