hetznercloud 5.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/lib/hcloud/action_collection.rb +1 -1
- data/lib/hcloud/concerns/deprecated_resource.rb +54 -0
- data/lib/hcloud/errors.rb +2 -0
- data/lib/hcloud/resource.rb +1 -0
- data/lib/hcloud/resources/action.rb +1 -26
- data/lib/hcloud/resources/datacenter.rb +2 -0
- data/lib/hcloud/resources/load_balancer_type.rb +3 -1
- data/lib/hcloud/version.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2cb259d9e173161e4ed87cdfbde11c7318e54b13c09a50ab9906ea453278534b
|
|
4
|
+
data.tar.gz: 70a47ad251eb36381d894140210d2cdabd4bba98e45a6530303e46604f030bb7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8413d51176613da3405efc6585f80c1ffd84dfecc3fd06fa95772d8b897efda9945519c3504951e63b0b22411bc66b91b50c08911e448c94ebb51be47c95ba64
|
|
7
|
+
data.tar.gz: e12dd9605bea860120a75ceb2ea1f0fad5c9539e9bb58f4d6567e4b89d3a336b6563a20edf210549509850c49df9e1f08ff0bfc453bf91b4982c9be9625ff822
|
data/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,26 @@
|
|
|
10
10
|
|
|
11
11
|
### Fixed
|
|
12
12
|
|
|
13
|
+
## HCloud v6.0.0 (2026-06-09)
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Add `deprecation` attribute to `HCloud::LoadBalancerType`
|
|
18
|
+
- Add `MustBeUnassigned` error class
|
|
19
|
+
- Add `DeprecatedApiEndpoint` error class
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Deprecate `HCloud::LoadBalancerType#deprecated`
|
|
24
|
+
- Deprecate `HCloud::Datacenter`
|
|
25
|
+
- Replace `GET /<resource>/{id}/actions/{action_id}` with `GET /actions/{action_id}`
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
|
|
29
|
+
- Remove `HCloud::Action.all`, `.first`, `.last`, `.count`, `.where`, `.sort`, `.each`, `.empty?`, `.any?`
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
13
33
|
## HCloud v5.1.0 (2026-03-03)
|
|
14
34
|
|
|
15
35
|
### Added
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module HCloud
|
|
4
|
+
# @!visibility private
|
|
5
|
+
module DeprecatedResource
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
included do
|
|
9
|
+
class_attribute :_deprecated, default: false
|
|
10
|
+
class_attribute :deprecated_since
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class_methods do # rubocop:disable Metrics/BlockLength
|
|
14
|
+
def deprecated(since: nil)
|
|
15
|
+
self._deprecated = true
|
|
16
|
+
self.deprecated_since = Date.parse(since) if since
|
|
17
|
+
|
|
18
|
+
[:find, :all, :create].each do |method|
|
|
19
|
+
define_singleton_method(method) do |*args, **kwargs, &block|
|
|
20
|
+
warn "[DEPRECATION] Resource \"#{name}\" is deprecated since #{deprecated_since.iso8601}." if deprecated?
|
|
21
|
+
|
|
22
|
+
super(*args, **kwargs, &block)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def deprecated?
|
|
28
|
+
_deprecated
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Wrap instance methods as they are defined (e.g. reload added by queryable)
|
|
32
|
+
def method_added(method_name)
|
|
33
|
+
super
|
|
34
|
+
|
|
35
|
+
return unless _deprecated
|
|
36
|
+
return unless [:reload, :update, :delete].include? method_name
|
|
37
|
+
|
|
38
|
+
return if @_wrapping_deprecated_instance
|
|
39
|
+
|
|
40
|
+
@_wrapping_deprecated_instance = true
|
|
41
|
+
|
|
42
|
+
original = instance_method(method_name)
|
|
43
|
+
|
|
44
|
+
define_method(method_name) do |*args, **kwargs, &block|
|
|
45
|
+
warn "[DEPRECATION] Resource \"#{self.class.name}\" is deprecated since #{self.class.deprecated_since.iso8601}." if self.class.deprecated?
|
|
46
|
+
|
|
47
|
+
original.bind_call(self, *args, **kwargs, &block)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
@_wrapping_deprecated_instance = false
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/hcloud/errors.rb
CHANGED
|
@@ -25,6 +25,7 @@ module HCloud
|
|
|
25
25
|
class ActionFailed < Error; end
|
|
26
26
|
class CloudResourceIPNotAllowed < Error; end
|
|
27
27
|
class Conflict < Error; end
|
|
28
|
+
class DeprecatedApiEndpoint < Error; end
|
|
28
29
|
class FirewallAlreadyApplied < Error; end
|
|
29
30
|
class FirewallAlreadyRemoved < Error; end
|
|
30
31
|
class FirewallResourceNotFound < Error; end
|
|
@@ -40,6 +41,7 @@ module HCloud
|
|
|
40
41
|
class LoadBalancerPublicInterfaceDisabled < Error; end
|
|
41
42
|
class Locked < Error; end
|
|
42
43
|
class Maintenance < Error; end
|
|
44
|
+
class MustBeUnassigned < Error; end
|
|
43
45
|
class NetworksOverlap < Error; end
|
|
44
46
|
class NoSpaceLeftInLocation < Error; end
|
|
45
47
|
class NoSubnetAvailable < Error; end
|
data/lib/hcloud/resource.rb
CHANGED
|
@@ -4,27 +4,6 @@ module HCloud
|
|
|
4
4
|
##
|
|
5
5
|
# Represents an action
|
|
6
6
|
#
|
|
7
|
-
# == List all actions
|
|
8
|
-
#
|
|
9
|
-
# HCloud::Action.all
|
|
10
|
-
# # => [#<HCloud::Action id: 1, ...>, ...]
|
|
11
|
-
#
|
|
12
|
-
# == Sort actions
|
|
13
|
-
#
|
|
14
|
-
# HCloud::Action.sort(command: :desc)
|
|
15
|
-
# # => [#<HCloud::Action id: 1, ...>, ...]
|
|
16
|
-
#
|
|
17
|
-
# HCloud::Action.sort(:id, command: :asc)
|
|
18
|
-
# # => [#<HCloud::Action id: 1, ...>, ...]
|
|
19
|
-
#
|
|
20
|
-
# == Search actions
|
|
21
|
-
#
|
|
22
|
-
# HCloud::Action.where(command: "my_action")
|
|
23
|
-
# # => #<HCloud::Action id: 1, ...>
|
|
24
|
-
#
|
|
25
|
-
# HCloud::Action.where(status: "success")
|
|
26
|
-
# # => #<HCloud::Action id: 1, ...>
|
|
27
|
-
#
|
|
28
7
|
# == Find action by ID
|
|
29
8
|
#
|
|
30
9
|
# HCloud::Action.find(1)
|
|
@@ -46,11 +25,7 @@ module HCloud
|
|
|
46
25
|
attribute :resources, :resource, array: true, default: -> { [] }
|
|
47
26
|
|
|
48
27
|
class << self
|
|
49
|
-
|
|
50
|
-
warn "[DEPRECATION] Starting on 1 October 2023, this endpoint will no longer be available. After that, it won't be possible anymore to list all actions across all resources. As an alternative, you can use the action endpoints of a specific resource to list all actions (e.g. of all servers or of all Load Balancers)."
|
|
51
|
-
|
|
52
|
-
super
|
|
53
|
-
end
|
|
28
|
+
undef_method :all, :first, :last, :count, :where, :sort, :each, :empty?, :any?
|
|
54
29
|
end
|
|
55
30
|
end
|
|
56
31
|
end
|
data/lib/hcloud/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hetznercloud
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 6.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Dejonckheere
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-06-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|
|
@@ -102,6 +102,7 @@ files:
|
|
|
102
102
|
- lib/hcloud/concerns/creatable.rb
|
|
103
103
|
- lib/hcloud/concerns/deletable.rb
|
|
104
104
|
- lib/hcloud/concerns/deprecated_attributes.rb
|
|
105
|
+
- lib/hcloud/concerns/deprecated_resource.rb
|
|
105
106
|
- lib/hcloud/concerns/dynamic_attributes.rb
|
|
106
107
|
- lib/hcloud/concerns/inspect_attributes.rb
|
|
107
108
|
- lib/hcloud/concerns/labelable.rb
|