droplet_kit 2.2.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 442cc90ece9663325b28ad919d8534f11e360cca
4
- data.tar.gz: 3ce822e7463025a31c09e33a082cf6c44415e5d5
3
+ metadata.gz: 2ecbe9de2e2f4c7fc8678c9c3e997208d79b3b8f
4
+ data.tar.gz: 6a9e211e1303f9c226d3d039789308c047340bcd
5
5
  SHA512:
6
- metadata.gz: 510661c3de70a0159cdb232e79be27e4b756c4d77ff4250e3a85a941175cd12b45fec8ee170237b97ac0499060b60fdd181764e63e5dd6fa1faed5703d8b91d8
7
- data.tar.gz: 4a8ecdecc3fd11b0adb96331a22c6bff6a5128a22991c896b3a317592712c2cc1cf0ff43b95199137e4559c293f8cc4feb3c9dfd0cbc7974fcecb40a3eb0f961
6
+ metadata.gz: 3a762b334cf6b65390ad5551ebae8286499f82aa49e996e16772609046904261e2c52c1dbe2b9926f244cd88f694053cba74e1805ec007ceb83d250bd4e3c460
7
+ data.tar.gz: d43a3564498375614861eb2416de54e3182879130efd71a7321ae04205f01e7e9e92a73088cb4a9d044149ee8ba0bd49b57c2e08292c6a0c751c673d18d16128
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ### Version 2.3.0
2
+ * Added support for Let's Encrypt certificates.
3
+
1
4
  ### Version 2.2.2
2
5
  * Fix tag / untag resources request body
3
6
 
data/README.md CHANGED
@@ -49,7 +49,7 @@ When you'd like to save objects, it's your responsibility to instantiate the obj
49
49
 
50
50
  ```ruby
51
51
  client = DropletKit::Client.new(access_token: 'YOUR_TOKEN')
52
- droplet = DropletKit::Droplet.new(name: 'mysite.com', region: 'nyc2', image: 'ubuntu-14-04-x64', size: '512mb')
52
+ droplet = DropletKit::Droplet.new(name: 'mysite.com', region: 'nyc2', image: 'ubuntu-14-04-x64', size: 's-1vcpu-1gb')
53
53
  created = client.droplets.create(droplet)
54
54
  # => DropletKit::Droplet(id: 1231, name: 'something.com', ...)
55
55
  ```
@@ -134,7 +134,7 @@ Actions supported:
134
134
  * `client.droplet_actions.rename(droplet_id: droplet.id, name: 'New-Droplet-Name')`
135
135
  * `client.droplet_actions.rebuild(droplet_id: droplet.id, image: 'image_id')`
136
136
  * `client.droplet_actions.restore(droplet_id: droplet.id, image: 'image_id')`
137
- * `client.droplet_actions.resize(droplet_id: droplet.id, size: '1gb')`
137
+ * `client.droplet_actions.resize(droplet_id: droplet.id, size: 's-1vcpu-1gb')`
138
138
  * `client.droplet_actions.find(droplet_id: droplet.id, id: action.id)`
139
139
  * `client.droplet_actions.action_for_id(droplet_id: droplet.id, type: 'event_name', param: 'value')`
140
140
  * `client.droplet_actions.action_for_tag(tag_name: 'tag_name', type: 'event_name', param: 'value')`
@@ -312,7 +312,7 @@ When you want to create a droplet using your stored SSH key.
312
312
  ```ruby
313
313
  client = DropletKit::Client.new(access_token: 'YOUR_TOKEN')
314
314
  my_ssh_keys = client.ssh_keys.all.collect {|key| key.fingerprint}
315
- droplet = DropletKit::Droplet.new(name: 'mysite.com', region: 'nyc2', image: 'ubuntu-14-04-x64', size: '512mb', ssh_keys: my_ssh_keys)
315
+ droplet = DropletKit::Droplet.new(name: 'mysite.com', region: 'nyc2', image: 'ubuntu-14-04-x64', size: 's-1vcpu-1gb', ssh_keys: my_ssh_keys)
316
316
  created = client.droplets.create(droplet)
317
317
  # => DropletKit::Droplet(id: 1231, name: 'something.com', ...)
318
318
  ```
@@ -9,16 +9,21 @@ module DropletKit
9
9
  scoped :read do
10
10
  property :id
11
11
  property :name
12
+ property :dns_names
12
13
  property :not_after
13
14
  property :sha1_fingerprint
14
15
  property :created_at
16
+ property :state
17
+ property :type
15
18
  end
16
19
 
17
20
  scoped :create do
18
21
  property :name
22
+ property :dns_names
19
23
  property :private_key
20
24
  property :leaf_certificate
21
25
  property :certificate_chain
26
+ property :type
22
27
  end
23
28
  end
24
29
  end
@@ -2,11 +2,14 @@ module DropletKit
2
2
  class Certificate < BaseModel
3
3
  attribute :id
4
4
  attribute :name
5
+ attribute :dns_names
5
6
  attribute :not_after
6
7
  attribute :sha1_fingerprint
7
8
  attribute :created_at
8
9
  attribute :private_key
9
10
  attribute :leaf_certificate
10
11
  attribute :certificate_chain
12
+ attribute :type
13
+ attribute :state
11
14
  end
12
15
  end
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "2.2.2"
2
+ VERSION = "2.3.0"
3
3
  end
@@ -2,10 +2,13 @@
2
2
  "certificates": [
3
3
  {
4
4
  "id": "892071a0-bb95-49bc-8021-3afd67a210bf",
5
+ "dns_names": [],
5
6
  "name": "web-cert-01",
6
7
  "not_after": "2017-02-22T00:23:00Z",
7
8
  "sha1_fingerprint": "dfcc9f57d86bf58e321c2c6c31c7a971be244ac7",
8
- "created_at": "2017-02-08T16:02:37Z"
9
+ "created_at": "2017-02-08T16:02:37Z",
10
+ "state": "verified",
11
+ "type": "custom"
9
12
  }
10
13
  ],
11
14
  "links": {
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "certificate": {
3
3
  "id": "892071a0-bb95-49bc-8021-3afd67a210bf",
4
+ "dns_names": [],
4
5
  "name": "web-cert-01",
5
6
  "not_after": "2017-02-22T00:23:00Z",
6
7
  "sha1_fingerprint": "dfcc9f57d86bf58e321c2c6c31c7a971be244ac7",
7
- "created_at": "2017-02-08T16:02:37Z"
8
+ "created_at": "2017-02-08T16:02:37Z",
9
+ "state": "verified",
10
+ "type": "custom"
8
11
  }
9
12
  }
@@ -0,0 +1,12 @@
1
+ {
2
+ "certificate": {
3
+ "id": "2ewewe-bb95-49bc-8021-3afd67a210bf",
4
+ "name": "lets-encrypt-cert",
5
+ "dns_names": ["somedomain.com", "api.somedomain.com"],
6
+ "not_after": "",
7
+ "sha1_fingerprint": "",
8
+ "created_at": "2017-02-08T16:02:37Z",
9
+ "state": "pending",
10
+ "type": "lets_encrypt"
11
+ }
12
+ }
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'pry'
2
3
 
3
4
  RSpec.describe DropletKit::CertificateResource do
4
5
  include_context 'resources'
@@ -12,9 +13,12 @@ RSpec.describe DropletKit::CertificateResource do
12
13
  match do |certificate|
13
14
  expect(certificate.id).to eq('892071a0-bb95-49bc-8021-3afd67a210bf')
14
15
  expect(certificate.name).to eq('web-cert-01')
16
+ expect(certificate.dns_names).to be_empty
15
17
  expect(certificate.not_after).to eq('2017-02-22T00:23:00Z')
16
18
  expect(certificate.sha1_fingerprint).to eq('dfcc9f57d86bf58e321c2c6c31c7a971be244ac7')
17
19
  expect(certificate.created_at).to eq('2017-02-08T16:02:37Z')
20
+ expect(certificate.state).to eq('verified')
21
+ expect(certificate.type).to eq('custom')
18
22
  end
19
23
  end
20
24
 
@@ -23,9 +27,12 @@ RSpec.describe DropletKit::CertificateResource do
23
27
  DropletKit::Certificate.new(
24
28
  id: '892071a0-bb95-49bc-8021-3afd67a210bf',
25
29
  name: 'web-cert-01',
30
+ dns_names: ["somedomain.com"],
26
31
  not_after: '2017-02-22T00:23:00Z',
27
32
  sha1_fingerprint: 'dfcc9f57d86bf58e321c2c6c31c7a971be244ac7',
28
- created_at: '2017-02-08T16:02:37Z'
33
+ created_at: '2017-02-08T16:02:37Z',
34
+ status: "verified",
35
+ type: "custom",
29
36
  )
30
37
  end
31
38
 
@@ -73,6 +80,29 @@ RSpec.describe DropletKit::CertificateResource do
73
80
  expect(resource.create(certificate)).to match_certificate_fixture
74
81
  end
75
82
 
83
+ context 'lets encrypt certificate' do
84
+ let(:lets_encrypt_certificate) do
85
+ DropletKit::Certificate.new(
86
+ name: 'lets-encrypt-cert',
87
+ dns_names: ['somedomain.com', 'api.somedomain.com'],
88
+ type: 'lets_encrypt'
89
+ )
90
+ end
91
+
92
+ it 'returns created lets encrpyt certificate' do
93
+ json_body = DropletKit::CertificateMapping.representation_for(:create, lets_encrypt_certificate)
94
+ stub_do_api(path, :post).with(body: json_body).to_return(body: api_fixture('certificates/lets_encrypt'), status: 201)
95
+ parsed_json = JSON.parse(json_body)
96
+
97
+ certificate = resource.create(lets_encrypt_certificate)
98
+
99
+ expect(certificate.name).to eq(parsed_json['name'])
100
+ expect(certificate.type).to eq(parsed_json['type'])
101
+ expect(certificate.dns_names).to match_array(parsed_json['dns_names'])
102
+ expect(certificate.state).to eq('pending')
103
+ end
104
+ end
105
+
76
106
  it_behaves_like 'an action that handles invalid parameters' do
77
107
  let(:action) { 'create' }
78
108
  let(:arguments) { DropletKit::Certificate.new }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droplet_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Ross
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-22 00:00:00.000000000 Z
11
+ date: 2018-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -294,6 +294,7 @@ files:
294
294
  - spec/fixtures/actions/find.json
295
295
  - spec/fixtures/certificates/all.json
296
296
  - spec/fixtures/certificates/find.json
297
+ - spec/fixtures/certificates/lets_encrypt.json
297
298
  - spec/fixtures/domain_records/all.json
298
299
  - spec/fixtures/domain_records/create.json
299
300
  - spec/fixtures/domain_records/find.json
@@ -424,7 +425,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
424
425
  version: '0'
425
426
  requirements: []
426
427
  rubyforge_project:
427
- rubygems_version: 2.6.12
428
+ rubygems_version: 2.6.8
428
429
  signing_key:
429
430
  specification_version: 4
430
431
  summary: Droplet Kit is the official Ruby library for DigitalOcean's API
@@ -434,6 +435,7 @@ test_files:
434
435
  - spec/fixtures/actions/find.json
435
436
  - spec/fixtures/certificates/all.json
436
437
  - spec/fixtures/certificates/find.json
438
+ - spec/fixtures/certificates/lets_encrypt.json
437
439
  - spec/fixtures/domain_records/all.json
438
440
  - spec/fixtures/domain_records/create.json
439
441
  - spec/fixtures/domain_records/find.json