Class: EnfApi::API

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/enfapi.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#apiObject

Returns the value of attribute api.



302
303
304
# File 'lib/enfapi.rb', line 302

def api
  @api
end

#headersObject

Returns the value of attribute headers.



302
303
304
# File 'lib/enfapi.rb', line 302

def headers
  @headers
end

Instance Method Details

#activate_domain(domain_network) ⇒ Object



443
444
445
446
447
# File 'lib/enfapi.rb', line 443

def activate_domain(domain_network)
  @api["/api/xcr/v2/domains/#{domain_network}/status"].put( '', @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#activate_enfnw(subnet) ⇒ Object



496
497
498
499
500
# File 'lib/enfapi.rb', line 496

def activate_enfnw(subnet)
  @api["/api/xcr/v2/enfnws/#{subnet}"].put( '', @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#authenticate(host, user, password) ⇒ Object



304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
# File 'lib/enfapi.rb', line 304

def authenticate(host, user, password)
  # format url
  host = "https://#{host}" unless host =~ /^(http|https):\/\//

  # chomp trailing '/'
  host = host.chomp("/")

  # Initalize rest client
  @api = RestClient::Resource.new(host)

  # Create request json
  hash = { :username => user, :token => password }
  json = to_json( hash )

  # call api
  @api["/api/xcr/v2/xauth"].post( json, {content_type: :json, accept: :json}) { |response, request, result|
    case response.code
    when 200
      # get resp from json
      resp = from_json(response.body)

      # set request headers for subsequent api calls
      token = resp[:data][0][:token]
      @headers = {content_type: :json, accept: :json, "Authorization" => "Bearer #{token}"}

      # return resp
      resp
    else
      raise EnfApi::ERROR, "Login Failed! Invalid user or password!"
    end
  }
end

#cancel_invite(email) ⇒ Object



521
522
523
524
525
# File 'lib/enfapi.rb', line 521

def cancel_invite(email)
  @api["/api/xcr/v2/invites/#{email}"].delete( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#create_domain(domain_hash) ⇒ Object



388
389
390
391
392
393
# File 'lib/enfapi.rb', line 388

def create_domain(domain_hash)
  json = to_json( domain_hash )
  @api["/api/xcr/v2/domains"].post( json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#create_nw(nw_hash) ⇒ Object



455
456
457
458
459
460
461
# File 'lib/enfapi.rb', line 455

def create_nw(nw_hash)
  json = to_json(nw_hash)
  domain_id = nw_hash[:domain_id]
  @api["/api/xcr/v2/domains/#{domain_id}/nws"].post(json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#deactivate_domain(domain_network) ⇒ Object



449
450
451
452
453
# File 'lib/enfapi.rb', line 449

def deactivate_domain(domain_network)
  @api["/api/xcr/v2/domains/#{domain_network}/status"].delete( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#delete(request_uri) ⇒ Object



355
356
357
358
359
# File 'lib/enfapi.rb', line 355

def delete(request_uri)
  @api[request_uri].delete(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get(request_uri) ⇒ Object



337
338
339
340
341
# File 'lib/enfapi.rb', line 337

def get(request_uri)
  @api[request_uri].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get_domain(domain_id) ⇒ Object



382
383
384
385
386
# File 'lib/enfapi.rb', line 382

def get_domain(domain_id)
  @api["/api/xcr/v2/domains/#{domain_id}"].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get_domain_rate_limits(domain_network, filter = nil) ⇒ Object



416
417
418
419
420
421
422
423
# File 'lib/enfapi.rb', line 416

def get_domain_rate_limits(domain_network, filter = nil)
  api_url = "/api/xcr/v2/domains/#{domain_network}/ep_rate_limits"
  api_url = "#{api_url}/#{filter}" if filter

  @api[api_url].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get_endpoint(ipv6) ⇒ Object



481
482
483
484
485
# File 'lib/enfapi.rb', line 481

def get_endpoint(ipv6)
  @api["/api/xcr/v2/cxns/#{ipv6}"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get_ep_rate_limits(ipv6, filter = nil) ⇒ Object



434
435
436
437
438
439
440
441
# File 'lib/enfapi.rb', line 434

def get_ep_rate_limits(ipv6, filter = nil)
  api_url = "/api/xcr/v2/cxns/#{ipv6}/ep_rate_limits"
  api_url = "#{api_url}/#{filter}" if filter

  @api[api_url].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#get_network_rate_limits(network, filter = nil) ⇒ Object



425
426
427
428
429
430
431
432
# File 'lib/enfapi.rb', line 425

def get_network_rate_limits(network, filter = nil)
  api_url = "/api/xcr/v2/nws/#{network}/ep_rate_limits"
  api_url = "#{api_url}/#{filter}" if filter

  @api[api_url].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#invite(domain_network, hash) ⇒ Object



514
515
516
517
518
519
# File 'lib/enfapi.rb', line 514

def invite(domain_network, hash)
  json = to_json( hash )
  @api["/api/xcr/v2/domains/#{domain_network}/invites"].post( json, @headers) { |response, request, result|
    process_api_response response, request, result
  }
end

#list_domain_invites(domain_network) ⇒ Object



508
509
510
511
512
# File 'lib/enfapi.rb', line 508

def list_domain_invites(domain_network)
  @api["/api/xcr/v2/domains/#{domain_network}/invites"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_domain_nws(domain_id) ⇒ Object

NOT READY API. MOVE ABOVE THIS LINE AFTER RSPEC OR INTO OWN CLASS



364
365
366
367
368
# File 'lib/enfapi.rb', line 364

def list_domain_nws(domain_id)
  @api["/api/xcr/v2/domains/#{domain_id}/nws"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_domain_users(domain_network) ⇒ Object



502
503
504
505
506
# File 'lib/enfapi.rb', line 502

def list_domain_users(domain_network)
  @api["/api/xcr/v2/domains/#{domain_network}/users"].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_domainsObject



376
377
378
379
380
# File 'lib/enfapi.rb', line 376

def list_domains
  @api["/api/xcr/v2/domains"].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_endpoint_events(ipv6) ⇒ Object



469
470
471
472
473
# File 'lib/enfapi.rb', line 469

def list_endpoint_events(ipv6)
  @api["/api/xcr/v2/cxns/#{ipv6}/events"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_enfnwsObject



370
371
372
373
374
# File 'lib/enfapi.rb', line 370

def list_enfnws
  @api["/api/xcr/v2/enfnws"].get( @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_network_events(network_cidr) ⇒ Object



475
476
477
478
479
# File 'lib/enfapi.rb', line 475

def list_network_events(network_cidr)
  @api["/api/xcr/v2/nws/#{network_cidr}/events"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#list_nw_connections(domain_id, network_cidr, file = nil) ⇒ Object



463
464
465
466
467
# File 'lib/enfapi.rb', line 463

def list_nw_connections(domain_id, network_cidr, file = nil)
  @api["/api/xcr/v2/domains/#{domain_id}/nws/#{network_cidr}/cxns"].get(@headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#post(request_uri, request_body = '') ⇒ Object



343
344
345
346
347
# File 'lib/enfapi.rb', line 343

def post(request_uri, request_body = '')
  @api[request_uri].post(request_body, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#put(request_uri, request_body = '') ⇒ Object



349
350
351
352
353
# File 'lib/enfapi.rb', line 349

def put(request_uri, request_body = '')
  @api[request_uri].put(request_body, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#resend_invite(email) ⇒ Object



527
528
529
530
531
# File 'lib/enfapi.rb', line 527

def resend_invite(email)
  @api["/api/xcr/v2/invites/#{email}"].put( "{}", @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#update_domain_rate_limits(domain_network, limit, limits_hash) ⇒ Object



395
396
397
398
399
400
# File 'lib/enfapi.rb', line 395

def update_domain_rate_limits(domain_network, limit, limits_hash)
  json = to_json( limits_hash )
  @api["/api/xcr/v2/domains/#{domain_network}/ep_rate_limits/#{limit}"].put( json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#update_endpoint(ipv6, name) ⇒ Object



487
488
489
490
491
492
493
494
# File 'lib/enfapi.rb', line 487

def update_endpoint(ipv6, name)
  hash = { :ipv6 => ipv6, :name => name }
  json = to_json( hash )

  @api["/api/xcr/v2/cxns/#{ipv6}"].put( json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#update_ep_rate_limits(ipv6, limit, limits_hash) ⇒ Object



409
410
411
412
413
414
# File 'lib/enfapi.rb', line 409

def update_ep_rate_limits(ipv6, limit, limits_hash)
  json = to_json( limits_hash )
  @api["/api/xcr/v2/cxns/#{ipv6}/ep_rate_limits/#{limit}"].put( json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#update_network_rate_limits(network, limit, limits_hash) ⇒ Object



402
403
404
405
406
407
# File 'lib/enfapi.rb', line 402

def update_network_rate_limits(network, limit, limits_hash)
  json = to_json( limits_hash )
  @api["/api/xcr/v2/nws/#{network}/ep_rate_limits/#{limit}"].put( json, @headers) {|response, request, result|
    process_api_response response, request, result
  }
end

#update_user_status(user_id, status) ⇒ Object



533
534
535
536
537
538
# File 'lib/enfapi.rb', line 533

def update_user_status(user_id, status)
  json = to_json( status )
  @api["/api/xcr/v2/users/#{user_id}/status"].put( json, @headers) { |response, request, result|
    process_api_response response, request, result
  }
end