Class: Conjur::ServiceGateway

Inherits:
RestClient::Resource
  • Object
show all
Includes:
ActsAsAsset
Defined in:
lib/conjur/service_gateway.rb

Instance Method Summary collapse

Instance Method Details

#add_proxy(role) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/conjur/service_gateway.rb', line 11

def add_proxy(role)
  log do |logger|
    logger << "Adding proxy #{role} to service gateway #{id}"
  end
  invalidate do
    RestClient::Resource.new(self['proxies'].url, options).post(role: role) 
  end
end

#decrypt(data) ⇒ Object

Raises:

  • (ArgumentError)


51
52
53
54
# File 'lib/conjur/service_gateway.rb', line 51

def decrypt(data)
  raise ArgumentError.new("data must not be nil") unless data
  self["decrypt"].post(data, content_type: 'application/octet-stream').body
end

#encrypt(data) ⇒ Object

Raises:

  • (ArgumentError)


46
47
48
49
# File 'lib/conjur/service_gateway.rb', line 46

def encrypt(data)
  raise ArgumentError.new("data must not be nil") unless data
  self["encrypt"].post(data, content_type: 'application/octet-stream').body
end

#proxiesObject



5
6
7
8
9
# File 'lib/conjur/service_gateway.rb', line 5

def proxies
  self.attributes['proxies'].map do |roleid|
    Role.new(Conjur::Authz::API.host, self.options)[Conjur::API.parse_role_id(roleid).join('/')]
  end
end

#remove_proxy(role) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/conjur/service_gateway.rb', line 20

def remove_proxy(role)
  log do |logger|
    logger << "Removing proxy #{role} from service gateway #{id}"
  end
  invalidate do
    RestClient::Resource.new(self["proxies/#{fully_escape role}"].url, self.options).delete
  end
end

#remove_web_service(id) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/conjur/service_gateway.rb', line 29

def remove_web_service(id)
  log do |logger|
    logger << "Removing web service #{id} from service gateway #{id}"
  end
  invalidate do
    RestClient::Resource.new(self["web_services/#{fully_escape id}"].url, self.options).delete
  end
end

#web_servicesObject



38
39
40
41
42
43
44
# File 'lib/conjur/service_gateway.rb', line 38

def web_services
  self.attributes['web_services'].collect do |attrs|
    Conjur::WebService.new("#{Conjur::ServiceGateways::API.host}/web_services/#{path_escape attrs['id']}", options).tap do |d|
      d.attributes = attrs
    end
  end
end