Exemplo n.º 1
0
def test_session_region_env():
    session = Session()
    assert session.get_region() is None

    os.environ['AWS_REGION'] = 'us-least-7'
    session.set_region()
    assert session.region_name == 'us-least-7'
    assert session.get_region() == 'us-least-7'
    os.environ.pop('AWS_REGION')
Exemplo n.º 2
0
class EventsBus:
    '''Class to manage EventBridge Events'''

    def __init__(self, region_name=None, role_arn=None):
        self.accounts = []
        self.event_bus = 'event-bus/default'
        self.events = Session(region_name, role_arn).get_client('events')

    def add_accounts(self, ou=None):
        '''add accounts to the broadcast list'''
        # get the accounts for an ou if ou is defined

    def create_event(self, account, source, detail):
        '''Create an event that cen be written to an event-bus'''

        # account and target can be used to build a resource string
        region = self.events.get_region()
        resource_arn = ':'.join('arn', 'aws', 'events', region, account, self.event_bus)

        event = Events()
        event.add_resources(resource_arn)
        event.create_event(account)

    def set_event_bus(self, bus_name='default'):
        '''describes and event bus'''
        self.event_bus = '/'.join(['event-bus', bus_name])

    def send_event(self, event):
        self.events.put_events(Entries=[event])

    def broadcast_event(self):
        '''Send an event to multiple event buses'''
        for account in self.accounts:
            self.end_event(self.create_event(account))
Exemplo n.º 3
0
def test_get_region():
    session = Session()
    session.set_region(region_name='us-least-6')
    assert session.region_name == 'us-least-6'
    assert session.get_region() == 'us-least-6'