Code Duplication    Length = 28-32 lines in 3 locations

files/default/lib/action/account/private_key/remove.rb 1 location

@@ 8-39 (lines=32) @@
5
module AMA
6
  module Chef
7
    module User
8
      class Action
9
        module Account
10
          module PrivateKey
11
            class Remove < Action
12
              attr_accessor :account
13
              attr_accessor :key
14
15
              # @param [AMA::Chef::User::Model::Account] account
16
              # @param [AMA::Chef::User::Model::PrivateKey] key
17
              def initialize(account, key)
18
                @account = account
19
                @key = key
20
              end
21
22
              def apply(resource_factory)
23
                account = @account
24
                key = @key
25
                name = "#{account.id}:#{key.owner}:#{key.id}"
26
                content = (key.content || '').to_s
27
                resource_factory.ssh_private_key name do
28
                  id key.id.to_s
29
                  user account.id.to_s
30
                  # TODO: remove when https://github.com/ama-team/cookbook-ssh-private-keys/issues/2
31
                  # is resolved
32
                  content content
33
                  action :remove
34
                end
35
              end
36
            end
37
          end
38
        end
39
      end
40
    end
41
  end
42
end

files/default/lib/action/account/private_key/add.rb 1 location

@@ 10-37 (lines=28) @@
7
module AMA
8
  module Chef
9
    module User
10
      class Action
11
        module Account
12
          module PrivateKey
13
            class Add < Action
14
              attr_accessor :account
15
              attr_accessor :key
16
17
              # @param [AMA::Chef::User::Model::Account] account
18
              # @param [AMA::Chef::User::Model::PrivateKey] key
19
              def initialize(account, key)
20
                @account = account
21
                @key = key
22
              end
23
24
              def apply(resource_factory)
25
                account = @account
26
                key = @key
27
                name = "#{account.id}:#{key.owner}:#{key.id}"
28
                resource_factory.ssh_private_key name do
29
                  id key.id.to_s
30
                  user account.id.to_s
31
                  content key.content.to_s
32
                  install_public_key key.install_public_key
33
                  passphrase key.passphrase unless key.passphrase.nil?
34
                  perform_validation key.validate
35
                end
36
              end
37
            end
38
          end
39
        end
40
      end

files/default/lib/action/account/public_key/add.rb 1 location

@@ 8-37 (lines=30) @@
5
module AMA
6
  module Chef
7
    module User
8
      class Action
9
        module Account
10
          module PublicKey
11
            class Add < Action
12
              attr_accessor :account
13
              attr_accessor :key
14
15
              # @param [AMA::Chef::User::Model::Account] account
16
              # @param [AMA::Chef::User::Model::PublicKey] public_key
17
              def initialize(account, public_key)
18
                @account = account
19
                @key = public_key
20
              end
21
22
              def apply(resource_factory)
23
                account = @account
24
                key = @key
25
                id = "#{account.id}:#{key.owner}:#{key.id}"
26
                resource_factory.ssh_authorize_key id do
27
                  user account.id.to_s
28
                  key key.content
29
                  keytype key.type.to_s
30
                  comment "#{key.owner}:#{key.id}"
31
                  validate_key key.validate
32
                end
33
              end
34
            end
35
          end
36
        end
37
      end
38
    end
39
  end
40
end