def authorize(name=None, source_group_name=None, source_group_owner_id=None, ip_protocol=None, from_port=None, to_port=None, cidr_ip=None, group_id=None, source_group_group_id=None, region=None, key=None, keyid=None, profile=None, vpc_id=None, vpc_name=None, egress=False):
 conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
 group = _get_group(conn, name=name, vpc_id=vpc_id, vpc_name=vpc_name, group_id=group_id, region=region, key=key, keyid=keyid, profile=profile)
 if group:
  try:
   added = None
   if (not egress):
    added = conn.authorize_security_group(src_security_group_name=source_group_name, src_security_group_owner_id=source_group_owner_id, ip_protocol=ip_protocol, from_port=from_port, to_port=to_port, cidr_ip=cidr_ip, group_id=group.id, src_security_group_group_id=source_group_group_id)
   else:
    added = conn.authorize_security_group_egress(ip_protocol=ip_protocol, from_port=from_port, to_port=to_port, cidr_ip=cidr_ip, group_id=group.id, src_group_id=source_group_group_id)
   if added:
    log.info('Added rule to security group {0} with id {1}'.format(group.name, group.id))
    return True
   else:
    msg = 'Failed to add rule to security group {0} with id {1}.'.format(group.name, group.id)
    log.error(msg)
    return False
  except boto.exception.EC2ResponseError as e:
   msg = 'Failed to add rule to security group {0} with id {1}.'.format(group.name, group.id)
   log.error(msg)
   log.error(e)
   return False
 else:
  log.error('Failed to add rule to security group.')
  return False

def authorize ( name = None , source_group_name = None , source_group_owner_id = None , ip_protocol = None , from_port = None , to_port = None , cidr_ip = None , group_id = None , source_group_group_id = None , region = None , key = None , keyid = None , profile = None , vpc_id = None , vpc_name = None , egress = False ) : conn = _get_conn ( region = region , key = key , keyid = keyid , profile = profile ) group = _get_group ( conn , name = name , vpc_id = vpc_id , vpc_name = vpc_name , group_id = group_id , region = region , key = key , keyid = keyid , profile = profile ) if group : try : added = None if ( not egress ) : added = conn . authorize_security_group ( src_security_group_name = source_group_name , src_security_group_owner_id = source_group_owner_id , ip_protocol = ip_protocol , from_port = from_port , to_port = to_port , cidr_ip = cidr_ip , group_id = group . id , src_security_group_group_id = source_group_group_id ) else : added = conn . authorize_security_group_egress ( ip_protocol = ip_protocol , from_port = from_port , to_port = to_port , cidr_ip = cidr_ip , group_id = group . id , src_group_id = source_group_group_id ) if added : log . info ( 'Added rule to security group {0} with id {1}' . format ( group . name , group . id ) ) return True else : msg = 'Failed to add rule to security group {0} with id {1}.' . format ( group . name , group . id ) log . error ( msg ) return False except boto . exception . EC2ResponseError as e : msg = 'Failed to add rule to security group {0} with id {1}.' . format ( group . name , group . id ) log . error ( msg ) log . error ( e ) return False else : log . error ( 'Failed to add rule to security group.' ) return False
obtain an authorization token for the github api .