Class: SDM::ControlPanel

Inherits:
Object
  • Object
show all
Extended by:
Gem::Deprecate
Defined in:
lib/svc.rb

Overview

ControlPanel contains all administrative controls.

Instance Method Summary collapse

Constructor Details

#initialize(host, insecure, parent) ⇒ ControlPanel

Returns a new instance of ControlPanel.



507
508
509
510
511
512
513
514
515
516
517
518
519
# File 'lib/svc.rb', line 507

def initialize(host, insecure, parent)
  begin
    if insecure
      @stub = V1::ControlPanel::Stub.new(host, :this_channel_is_insecure)
    else
      cred = GRPC::Core::ChannelCredentials.new()
      @stub = V1::ControlPanel::Stub.new(host, cred)
    end
  rescue => exception
    raise Plumbing::convert_error_to_porcelain(exception)
  end
  @parent = parent
end

Instance Method Details

#get_sshca_public_key(deadline: nil) ⇒ Object

GetSSHCAPublicKey retrieves the SSH CA public key.



522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'lib/svc.rb', line 522

def get_sshca_public_key(
  deadline: nil
)
  req = V1::ControlPanelGetSSHCAPublicKeyRequest.new()

  tries = 0
  plumbing_response = nil
  loop do
    begin
      plumbing_response = @stub.get_sshca_public_key(req, metadata: @parent.("ControlPanel.GetSSHCAPublicKey", req), deadline: deadline)
    rescue => exception
      if (@parent.shouldRetry(tries, exception))
        tries + +@parent.jitterSleep(tries)
        next
      end
      raise Plumbing::convert_error_to_porcelain(exception)
    end
    break
  end

  resp = ControlPanelGetSSHCAPublicKeyResponse.new()
  resp.meta = Plumbing::(plumbing_response.meta)
  resp.public_key = (plumbing_response.public_key)
  resp.rate_limit = Plumbing::(plumbing_response.rate_limit)
  resp
end

#verify_jwt(token, deadline: nil) ⇒ Object

VerifyJWT reports whether the given JWT token (x-sdm-token) is valid.



550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
# File 'lib/svc.rb', line 550

def verify_jwt(
  token,
  deadline: nil
)
  req = V1::ControlPanelVerifyJWTRequest.new()

  req.token = (token)
  tries = 0
  plumbing_response = nil
  loop do
    begin
      plumbing_response = @stub.verify_jwt(req, metadata: @parent.("ControlPanel.VerifyJWT", req), deadline: deadline)
    rescue => exception
      if (@parent.shouldRetry(tries, exception))
        tries + +@parent.jitterSleep(tries)
        next
      end
      raise Plumbing::convert_error_to_porcelain(exception)
    end
    break
  end

  resp = ControlPanelVerifyJWTResponse.new()
  resp.meta = Plumbing::(plumbing_response.meta)
  resp.rate_limit = Plumbing::(plumbing_response.rate_limit)
  resp.valid = (plumbing_response.valid)
  resp
end