def a_floatingip_to_server(self, server_id, security_group_id=None, action='add', check_accessible=False): floatingip = create_floatingip_to_server( self.qsvc, server_id, security_group_id=security_group_id, action=action) if check_accessible: ip_addr = floatingip['floating_ip_address'] is_reachable = utils.ipaddr_is_reachable( ip_addr, 30, 2) else: is_reachable = None return (floatingip, is_reachable)
def add_floatingip_to_server(cli_mgr, server_id, public_id=None, security_group_id=None, **kwargs): public_network_id = public_id or cli_mgr.qsvc('net-external-list')[0] action = kwargs.pop('action', 'add') check_interval = kwargs.pop('check_interval', None) duration = kwargs.pop('check_duration', 30) sleep_for = kwargs.pop('sleep_for', 1) show_progress = kwargs.pop('show_progress', True) floatingip = cli_mgr.qsvc('create-floatingip-for-server', public_network_id['id'], server_id) if security_group_id: cli_mgr.qsvc('update-port-security-group', floatingip['port_id'], security_group_id, action=action) if check_interval: server_public_ipaddr = floatingip['floating_ip_address'] # pause for control-plane to propagate floating-ip to resources time.sleep(_g_float(check_interval)) is_reachable = utils.ipaddr_is_reachable( server_public_ipaddr, duration, sleep_for, show_progress=show_progress) else: is_reachable = None return (floatingip, is_reachable)