droplet_kit 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +3 -0
- data/README.md +2 -2
- data/lib/droplet_kit.rb +2 -0
- data/lib/droplet_kit/mappings/tagged_droplets_resources_mapping.rb +2 -1
- data/lib/droplet_kit/mappings/tagged_images_resources_mapping.rb +16 -0
- data/lib/droplet_kit/mappings/tagged_resources_mapping.rb +3 -0
- data/lib/droplet_kit/models/tagged_droplets_resources.rb +1 -0
- data/lib/droplet_kit/models/tagged_images_resources.rb +6 -0
- data/lib/droplet_kit/models/tagged_resources.rb +3 -0
- data/lib/droplet_kit/version.rb +1 -1
- data/spec/fixtures/tags/all.json +8 -0
- data/spec/fixtures/tags/create.json +4 -0
- data/spec/fixtures/tags/find.json +9 -2
- data/spec/lib/droplet_kit/resources/tag_resource_spec.rb +14 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2ec217312a19e55394c76f6f02a4e59b59525f0767405ea2e42fd5f24f5e09b8
|
4
|
+
data.tar.gz: 7c0d074571a6531486ae81dd7fc8f30a020bf60bc824a266a8f2701813f4539c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e7c4295594d705170819ced2305c2f92e20c2d497db5782c9aad227a055d2b72f910da9c84993f911dc02547a39115406a59aa359dfae489d7f1b2cc156b6e9
|
7
|
+
data.tar.gz: 9148f78a78f2dbef212fd71166feaa97d5a33fe4c46678529cd70593d1130f7810e00d650a5d860c1fbc31dec4dac050221bb735e9bed95f6db0e750273db7eb
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -359,8 +359,8 @@ Actions supported:
|
|
359
359
|
* `client.tags.find(name: 'name')`
|
360
360
|
* `client.tags.create(DropletKit::Tag.new(name: 'name'))`
|
361
361
|
* `client.tags.delete(name: 'name')`
|
362
|
-
* `client.tags.tag_resources(name: 'name', resources: [{ resource_id => 'droplet_id', resource_type: 'droplet' }])`
|
363
|
-
* `client.tags.untag_resources(name 'name', resources: [{ resource_id => 'droplet_id', resource_type: 'droplet' }])`
|
362
|
+
* `client.tags.tag_resources(name: 'name', resources: [{ resource_id => 'droplet_id', resource_type: 'droplet' },{ resource_id => 'image_id', resource_type: 'image' }])`
|
363
|
+
* `client.tags.untag_resources(name 'name', resources: [{ resource_id => 'droplet_id', resource_type: 'droplet' },{ resource_id => 'image_id', resource_type: 'image' }])`
|
364
364
|
|
365
365
|
## Account resource
|
366
366
|
|
data/lib/droplet_kit.rb
CHANGED
@@ -27,6 +27,7 @@ module DropletKit
|
|
27
27
|
autoload :Tag, 'droplet_kit/models/tag'
|
28
28
|
autoload :TaggedResources, 'droplet_kit/models/tagged_resources'
|
29
29
|
autoload :TaggedDropletsResources, 'droplet_kit/models/tagged_droplets_resources'
|
30
|
+
autoload :TaggedImagesResources, 'droplet_kit/models/tagged_images_resources'
|
30
31
|
autoload :Volume, 'droplet_kit/models/volume'
|
31
32
|
autoload :LoadBalancer, 'droplet_kit/models/load_balancer'
|
32
33
|
autoload :StickySession, 'droplet_kit/models/sticky_session'
|
@@ -85,6 +86,7 @@ module DropletKit
|
|
85
86
|
autoload :TagMapping, 'droplet_kit/mappings/tag_mapping'
|
86
87
|
autoload :TaggedResourcesMapping, 'droplet_kit/mappings/tagged_resources_mapping'
|
87
88
|
autoload :TaggedDropletsResourcesMapping, 'droplet_kit/mappings/tagged_droplets_resources_mapping'
|
89
|
+
autoload :TaggedImagesResourcesMapping, 'droplet_kit/mappings/tagged_images_resources_mapping'
|
88
90
|
autoload :VolumeMapping, 'droplet_kit/mappings/volume_mapping'
|
89
91
|
autoload :LoadBalancerMapping, 'droplet_kit/mappings/load_balancer_mapping'
|
90
92
|
autoload :StickySessionMapping, 'droplet_kit/mappings/sticky_session_mapping'
|
@@ -5,10 +5,11 @@ module DropletKit
|
|
5
5
|
kartograph do
|
6
6
|
mapping TaggedDropletsResources
|
7
7
|
|
8
|
-
root_key plural: 'droplets', singular: '
|
8
|
+
root_key plural: 'droplets', singular: 'droplet', scopes: [:read]
|
9
9
|
|
10
10
|
scoped :read do
|
11
11
|
property :count
|
12
|
+
property :last_tagged_uri
|
12
13
|
property :last_tagged, include: DropletMapping
|
13
14
|
end
|
14
15
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module DropletKit
|
2
|
+
class TaggedImagesResourcesMapping
|
3
|
+
include Kartograph::DSL
|
4
|
+
|
5
|
+
kartograph do
|
6
|
+
mapping TaggedImagesResources
|
7
|
+
|
8
|
+
root_key plural: 'images', singular: 'image', scopes: [:read]
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :count
|
12
|
+
property :last_tagged_uri
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -8,7 +8,10 @@ module DropletKit
|
|
8
8
|
root_key plural: 'resources', singular: 'resource', scopes: [:read]
|
9
9
|
|
10
10
|
scoped :read do
|
11
|
+
property :count
|
12
|
+
property :last_tagged_uri
|
11
13
|
property :droplets, include: TaggedDropletsResourcesMapping
|
14
|
+
property :images, include: TaggedImagesResourcesMapping
|
12
15
|
end
|
13
16
|
end
|
14
17
|
end
|
data/lib/droplet_kit/version.rb
CHANGED
data/spec/fixtures/tags/all.json
CHANGED
@@ -3,18 +3,26 @@
|
|
3
3
|
{
|
4
4
|
"name": "testing-1",
|
5
5
|
"resources": {
|
6
|
+
"count": 0,
|
6
7
|
"droplets": {
|
7
8
|
"count": 0,
|
8
9
|
"last_tagged": null
|
10
|
+
},
|
11
|
+
"images": {
|
12
|
+
"count": 0
|
9
13
|
}
|
10
14
|
}
|
11
15
|
},
|
12
16
|
{
|
13
17
|
"name": "testing-2",
|
14
18
|
"resources": {
|
19
|
+
"count": 0,
|
15
20
|
"droplets": {
|
16
21
|
"count": 0,
|
17
22
|
"last_tagged": null
|
23
|
+
},
|
24
|
+
"images": {
|
25
|
+
"count": 0
|
18
26
|
}
|
19
27
|
}
|
20
28
|
}
|
@@ -2,8 +2,11 @@
|
|
2
2
|
"tag": {
|
3
3
|
"name": "testing-1",
|
4
4
|
"resources": {
|
5
|
+
"count": 2,
|
6
|
+
"last_tagged_uri": "https://api.digitalocean.com/v2/droplets/1",
|
5
7
|
"droplets": {
|
6
8
|
"count": 1,
|
9
|
+
"last_tagged_uri": "https://api.digitalocean.com/v2/droplets/1",
|
7
10
|
"last_tagged": {
|
8
11
|
"id": 1,
|
9
12
|
"name": "test.example.com",
|
@@ -82,10 +85,14 @@
|
|
82
85
|
|
83
86
|
],
|
84
87
|
"tags": [
|
85
|
-
"
|
86
|
-
"
|
88
|
+
"testing-1",
|
89
|
+
"testing-2"
|
87
90
|
]
|
88
91
|
}
|
92
|
+
},
|
93
|
+
"images": {
|
94
|
+
"count": 1,
|
95
|
+
"last_tagged_uri": "https://api.digitalocean.com/v2/images/146"
|
89
96
|
}
|
90
97
|
}
|
91
98
|
}
|
@@ -47,9 +47,15 @@ describe DropletKit::TagResource do
|
|
47
47
|
|
48
48
|
expect(tag).to be_kind_of(DropletKit::Tag)
|
49
49
|
expect(tag).to match_tag_fixture
|
50
|
+
expect(tag.resources.count).to eq(2)
|
50
51
|
expect(tag.resources.droplets.count).to eq(1)
|
51
52
|
expect(tag.resources.droplets.last_tagged).to be_kind_of(DropletKit::Droplet)
|
52
53
|
expect(tag.resources.droplets.last_tagged.id).to eq(1)
|
54
|
+
expect(tag.resources.droplets.last_tagged_uri).to eq('https://api.digitalocean.com/v2/droplets/1')
|
55
|
+
|
56
|
+
expect(tag.resources.images.count).to eq(1)
|
57
|
+
expect(tag.resources.images.attributes).to_not include(:last_tagged)
|
58
|
+
expect(tag.resources.images.last_tagged_uri).to eq('https://api.digitalocean.com/v2/images/146')
|
53
59
|
end
|
54
60
|
end
|
55
61
|
|
@@ -84,6 +90,10 @@ describe DropletKit::TagResource do
|
|
84
90
|
{
|
85
91
|
resource_id: '1',
|
86
92
|
resource_type: "droplet"
|
93
|
+
},
|
94
|
+
{
|
95
|
+
resource_id: '146',
|
96
|
+
resource_type: "images"
|
87
97
|
}
|
88
98
|
]
|
89
99
|
}
|
@@ -105,6 +115,10 @@ describe DropletKit::TagResource do
|
|
105
115
|
{
|
106
116
|
resource_id: '1',
|
107
117
|
resource_type: "droplet"
|
118
|
+
},
|
119
|
+
{
|
120
|
+
resource_id: '146',
|
121
|
+
resource_type: "images"
|
108
122
|
}
|
109
123
|
]
|
110
124
|
}
|
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.
|
4
|
+
version: 2.5.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-
|
11
|
+
date: 2018-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- lib/droplet_kit/mappings/sticky_session_mapping.rb
|
233
233
|
- lib/droplet_kit/mappings/tag_mapping.rb
|
234
234
|
- lib/droplet_kit/mappings/tagged_droplets_resources_mapping.rb
|
235
|
+
- lib/droplet_kit/mappings/tagged_images_resources_mapping.rb
|
235
236
|
- lib/droplet_kit/mappings/tagged_resources_mapping.rb
|
236
237
|
- lib/droplet_kit/mappings/volume_mapping.rb
|
237
238
|
- lib/droplet_kit/models/account.rb
|
@@ -265,6 +266,7 @@ files:
|
|
265
266
|
- lib/droplet_kit/models/sticky_session.rb
|
266
267
|
- lib/droplet_kit/models/tag.rb
|
267
268
|
- lib/droplet_kit/models/tagged_droplets_resources.rb
|
269
|
+
- lib/droplet_kit/models/tagged_images_resources.rb
|
268
270
|
- lib/droplet_kit/models/tagged_resources.rb
|
269
271
|
- lib/droplet_kit/models/volume.rb
|
270
272
|
- lib/droplet_kit/paginated_resource.rb
|
@@ -433,7 +435,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
433
435
|
version: '0'
|
434
436
|
requirements: []
|
435
437
|
rubyforge_project:
|
436
|
-
rubygems_version: 2.6
|
438
|
+
rubygems_version: 2.7.6
|
437
439
|
signing_key:
|
438
440
|
specification_version: 4
|
439
441
|
summary: Droplet Kit is the official Ruby library for DigitalOcean's API
|