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.



199
200
201
# File 'lib/enfapi.rb', line 199

def api
  @api
end

#headersObject

Returns the value of attribute headers.



199
200
201
# File 'lib/enfapi.rb', line 199

def headers
  @headers
end

Instance Method Details

#activate_domain(domain_network) ⇒ Object



340
341
342
343
344
# File 'lib/enfapi.rb', line 340

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



393
394
395
396
397
# File 'lib/enfapi.rb', line 393

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



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/enfapi.rb', line 201

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



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

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



285
286
287
288
289
290
# File 'lib/enfapi.rb', line 285

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



352
353
354
355
356
357
358
# File 'lib/enfapi.rb', line 352

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



346
347
348
349
350
# File 'lib/enfapi.rb', line 346

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



252
253
254
255
256
# File 'lib/enfapi.rb', line 252

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

#get(request_uri) ⇒ Object



234
235
236
237
238
# File 'lib/enfapi.rb', line 234

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

#get_domain(domain_id) ⇒ Object



279
280
281
282
283
# File 'lib/enfapi.rb', line 279

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



313
314
315
316
317
318
319
320
# File 'lib/enfapi.rb', line 313

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



378
379
380
381
382
# File 'lib/enfapi.rb', line 378

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



331
332
333
334
335
336
337
338
# File 'lib/enfapi.rb', line 331

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



322
323
324
325
326
327
328
329
# File 'lib/enfapi.rb', line 322

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



412
413
414
415
416
417
# File 'lib/enfapi.rb', line 412

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



406
407
408
409
410
# File 'lib/enfapi.rb', line 406

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



261
262
263
264
265
# File 'lib/enfapi.rb', line 261

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



399
400
401
402
403
404
# File 'lib/enfapi.rb', line 399

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

#list_domainsObject



273
274
275
276
277
# File 'lib/enfapi.rb', line 273

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



366
367
368
369
370
# File 'lib/enfapi.rb', line 366

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



267
268
269
270
271
# File 'lib/enfapi.rb', line 267

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



372
373
374
375
376
# File 'lib/enfapi.rb', line 372

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



360
361
362
363
364
# File 'lib/enfapi.rb', line 360

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



240
241
242
243
244
# File 'lib/enfapi.rb', line 240

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



246
247
248
249
250
# File 'lib/enfapi.rb', line 246

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



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

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



292
293
294
295
296
297
# File 'lib/enfapi.rb', line 292

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



384
385
386
387
388
389
390
391
# File 'lib/enfapi.rb', line 384

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



306
307
308
309
310
311
# File 'lib/enfapi.rb', line 306

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



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

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