netbox-client-ruby 0.10.0 → 0.10.2
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/.github/workflows/rspec.yml +6 -4
- data/.gitignore +6 -1
- data/Appraisals +17 -0
- data/Gemfile +15 -3
- data/Rakefile +2 -0
- data/bin/setup +1 -4
- data/gemfiles/faraday0.gemfile +12 -2
- data/gemfiles/faraday1.gemfile +11 -1
- data/gemfiles/faraday2.gemfile +11 -1
- data/lib/netbox-client-ruby.rb +2 -0
- data/lib/netbox_client_ruby/api/circuits/circuit.rb +1 -4
- data/lib/netbox_client_ruby/api/circuits/circuit_termination.rb +1 -4
- data/lib/netbox_client_ruby/api/circuits/circuit_terminations.rb +2 -3
- data/lib/netbox_client_ruby/api/circuits/circuit_type.rb +1 -1
- data/lib/netbox_client_ruby/api/circuits/circuit_types.rb +2 -3
- data/lib/netbox_client_ruby/api/circuits/circuits.rb +2 -3
- data/lib/netbox_client_ruby/api/circuits/provider.rb +1 -1
- data/lib/netbox_client_ruby/api/circuits/providers.rb +2 -3
- data/lib/netbox_client_ruby/api/circuits.rb +1 -9
- data/lib/netbox_client_ruby/api/dcim/console_connection.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/console_connections.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/console_port.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/console_ports.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/console_server_port.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/console_server_ports.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/device.rb +1 -9
- data/lib/netbox_client_ruby/api/dcim/device_role.rb +1 -1
- data/lib/netbox_client_ruby/api/dcim/device_roles.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/device_type.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/device_types.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/devices.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/interface.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/interface_connection.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/interface_connections.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/interfaces.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/inventory_item.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/inventory_items.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/manufacturer.rb +1 -1
- data/lib/netbox_client_ruby/api/dcim/manufacturers.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/platform.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/platforms.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/power_connection.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/power_connections.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/power_outlet.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/power_outlets.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/power_port.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/power_ports.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/rack.rb +1 -1
- data/lib/netbox_client_ruby/api/dcim/rack_group.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/rack_groups.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/rack_reservation.rb +1 -3
- data/lib/netbox_client_ruby/api/dcim/rack_reservations.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/rack_role.rb +1 -1
- data/lib/netbox_client_ruby/api/dcim/rack_roles.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/racks.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/region.rb +1 -1
- data/lib/netbox_client_ruby/api/dcim/regions.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/site.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/sites.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim/virtual_chassis.rb +1 -2
- data/lib/netbox_client_ruby/api/dcim/virtual_chassis_list.rb +2 -3
- data/lib/netbox_client_ruby/api/dcim.rb +1 -43
- data/lib/netbox_client_ruby/api/extras/config_context.rb +1 -1
- data/lib/netbox_client_ruby/api/extras/config_contexts.rb +2 -3
- data/lib/netbox_client_ruby/api/extras/journal_entries.rb +2 -3
- data/lib/netbox_client_ruby/api/extras/journal_entry.rb +1 -1
- data/lib/netbox_client_ruby/api/extras/tag.rb +1 -1
- data/lib/netbox_client_ruby/api/extras/tags.rb +2 -3
- data/lib/netbox_client_ruby/api/extras.rb +1 -6
- data/lib/netbox_client_ruby/api/ipam/aggregate.rb +1 -2
- data/lib/netbox_client_ruby/api/ipam/aggregates.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/ip_address.rb +3 -11
- data/lib/netbox_client_ruby/api/ipam/ip_addresses.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/ip_range.rb +1 -5
- data/lib/netbox_client_ruby/api/ipam/ip_ranges.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/prefix.rb +1 -8
- data/lib/netbox_client_ruby/api/ipam/prefixes.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/rir.rb +1 -1
- data/lib/netbox_client_ruby/api/ipam/rirs.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/role.rb +1 -1
- data/lib/netbox_client_ruby/api/ipam/roles.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/service.rb +1 -2
- data/lib/netbox_client_ruby/api/ipam/services.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/vlan.rb +1 -5
- data/lib/netbox_client_ruby/api/ipam/vlan_group.rb +1 -2
- data/lib/netbox_client_ruby/api/ipam/vlan_groups.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/vlans.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam/vrf.rb +1 -2
- data/lib/netbox_client_ruby/api/ipam/vrfs.rb +2 -3
- data/lib/netbox_client_ruby/api/ipam.rb +1 -21
- data/lib/netbox_client_ruby/api/secrets/rsa_key_pair.rb +1 -3
- data/lib/netbox_client_ruby/api/secrets/secret.rb +1 -3
- data/lib/netbox_client_ruby/api/secrets/secret_role.rb +1 -3
- data/lib/netbox_client_ruby/api/secrets/secret_roles.rb +2 -3
- data/lib/netbox_client_ruby/api/secrets/secrets.rb +2 -3
- data/lib/netbox_client_ruby/api/secrets/session_key.rb +1 -4
- data/lib/netbox_client_ruby/api/secrets.rb +1 -5
- data/lib/netbox_client_ruby/api/tenancy/tenant.rb +1 -2
- data/lib/netbox_client_ruby/api/tenancy/tenant_group.rb +1 -1
- data/lib/netbox_client_ruby/api/tenancy/tenant_groups.rb +2 -3
- data/lib/netbox_client_ruby/api/tenancy/tenants.rb +2 -3
- data/lib/netbox_client_ruby/api/tenancy.rb +1 -5
- data/lib/netbox_client_ruby/api/virtualization/cluster.rb +1 -4
- data/lib/netbox_client_ruby/api/virtualization/cluster_group.rb +1 -1
- data/lib/netbox_client_ruby/api/virtualization/cluster_groups.rb +2 -3
- data/lib/netbox_client_ruby/api/virtualization/cluster_type.rb +1 -1
- data/lib/netbox_client_ruby/api/virtualization/cluster_types.rb +2 -3
- data/lib/netbox_client_ruby/api/virtualization/clusters.rb +2 -3
- data/lib/netbox_client_ruby/api/virtualization/interface.rb +1 -2
- data/lib/netbox_client_ruby/api/virtualization/interfaces.rb +2 -3
- data/lib/netbox_client_ruby/api/virtualization/virtual_machine.rb +1 -6
- data/lib/netbox_client_ruby/api/virtualization/virtual_machines.rb +2 -3
- data/lib/netbox_client_ruby/api/virtualization.rb +1 -11
- data/lib/netbox_client_ruby/communication.rb +3 -4
- data/lib/netbox_client_ruby/connection.rb +1 -19
- data/lib/netbox_client_ruby/entities.rb +1 -2
- data/lib/netbox_client_ruby/entity.rb +9 -10
- data/lib/netbox_client_ruby/error.rb +2 -0
- data/lib/netbox_client_ruby.rb +67 -2
- data/netbox-client-ruby.gemspec +3 -13
- metadata +9 -84
- data/Gemfile.lock +0 -115
- data/VERSION +0 -1
- data/gemfiles/faraday0.gemfile.lock +0 -94
- data/gemfiles/faraday1.gemfile.lock +0 -93
- data/gemfiles/faraday2.gemfile.lock +0 -101
- data/lib/netbox_client_ruby/api.rb +0 -38
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/secrets/secret'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Secrets
|
|
6
5
|
class Secrets
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'secrets/secrets
|
|
8
|
+
path 'secrets/secrets/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/secrets/secret_roles'
|
|
3
|
-
require 'netbox_client_ruby/api/secrets/secrets'
|
|
4
|
-
require 'netbox_client_ruby/api/secrets/session_key'
|
|
5
|
-
require 'netbox_client_ruby/communication'
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
3
|
module NetboxClientRuby
|
|
8
4
|
module Secrets
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/tenancy/tenant_group'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Tenancy
|
|
6
5
|
class TenantGroups
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'tenancy/tenant-groups
|
|
8
|
+
path 'tenancy/tenant-groups/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/tenancy/tenant'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Tenancy
|
|
6
5
|
class Tenants
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'tenancy/tenants
|
|
8
|
+
path 'tenancy/tenants/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/tenancy/tenants'
|
|
3
|
-
require 'netbox_client_ruby/api/tenancy/tenant_group'
|
|
4
|
-
require 'netbox_client_ruby/api/tenancy/tenant_groups'
|
|
5
|
-
require 'netbox_client_ruby/communication'
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
3
|
module NetboxClientRuby
|
|
8
4
|
module Tenancy
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/cluster_group'
|
|
3
|
-
require 'netbox_client_ruby/api/virtualization/cluster_type'
|
|
4
|
-
require 'netbox_client_ruby/api/dcim/site'
|
|
1
|
+
# frozen_string_literal: true
|
|
5
2
|
|
|
6
3
|
module NetboxClientRuby
|
|
7
4
|
module Virtualization
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/cluster_group'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Virtualization
|
|
6
5
|
class ClusterGroups
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'virtualization/cluster-groups
|
|
8
|
+
path 'virtualization/cluster-groups/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/cluster_type'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Virtualization
|
|
6
5
|
class ClusterTypes
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'virtualization/cluster-types
|
|
8
|
+
path 'virtualization/cluster-types/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/cluster'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Virtualization
|
|
6
5
|
class Clusters
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'virtualization/clusters
|
|
8
|
+
path 'virtualization/clusters/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/interface'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Virtualization
|
|
6
5
|
class Interfaces
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'virtualization/interfaces
|
|
8
|
+
path 'virtualization/interfaces/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/dcim/device_role'
|
|
3
|
-
require 'netbox_client_ruby/api/dcim/platform'
|
|
4
|
-
require 'netbox_client_ruby/api/ipam/ip_address'
|
|
5
|
-
require 'netbox_client_ruby/api/tenancy/tenant'
|
|
6
|
-
require 'netbox_client_ruby/api/virtualization/cluster'
|
|
1
|
+
# frozen_string_literal: true
|
|
7
2
|
|
|
8
3
|
module NetboxClientRuby
|
|
9
4
|
module Virtualization
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/virtual_machine'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Virtualization
|
|
6
5
|
class VirtualMachines
|
|
7
6
|
include Entities
|
|
8
7
|
|
|
9
|
-
path 'virtualization/virtual-machines
|
|
8
|
+
path 'virtualization/virtual-machines/'
|
|
10
9
|
data_key 'results'
|
|
11
10
|
count_key 'count'
|
|
12
11
|
entity_creator :entity_creator
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/api/virtualization/cluster_groups'
|
|
3
|
-
require 'netbox_client_ruby/api/virtualization/cluster_type'
|
|
4
|
-
require 'netbox_client_ruby/api/virtualization/cluster_types'
|
|
5
|
-
require 'netbox_client_ruby/api/virtualization/cluster'
|
|
6
|
-
require 'netbox_client_ruby/api/virtualization/clusters'
|
|
7
|
-
require 'netbox_client_ruby/api/virtualization/interface'
|
|
8
|
-
require 'netbox_client_ruby/api/virtualization/interfaces'
|
|
9
|
-
require 'netbox_client_ruby/api/virtualization/virtual_machine'
|
|
10
|
-
require 'netbox_client_ruby/api/virtualization/virtual_machines'
|
|
11
|
-
require 'netbox_client_ruby/communication'
|
|
1
|
+
# frozen_string_literal: true
|
|
12
2
|
|
|
13
3
|
module NetboxClientRuby
|
|
14
4
|
module Virtualization
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/connection'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Communication
|
|
@@ -23,8 +22,8 @@ module NetboxClientRuby
|
|
|
23
22
|
variable_name = sanitize_variable_name(k)
|
|
24
23
|
variable_name = "_#{variable_name}" if objectified_instance.methods.map(&:to_s).include?(variable_name)
|
|
25
24
|
|
|
26
|
-
objectified_instance.instance_variable_set("@#{variable_name}", v)
|
|
27
|
-
objectified_class.send(:define_method, variable_name, proc { instance_variable_get("@#{variable_name}") })
|
|
25
|
+
objectified_instance.instance_variable_set(:"@#{variable_name}", v)
|
|
26
|
+
objectified_class.send(:define_method, variable_name, proc { instance_variable_get(:"@#{variable_name}") })
|
|
28
27
|
end
|
|
29
28
|
objectified_instance
|
|
30
29
|
end
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'faraday/detailed_logger'
|
|
3
|
-
require 'netbox_client_ruby/error'
|
|
4
|
-
|
|
5
|
-
if Faraday::VERSION < '2'
|
|
6
|
-
begin
|
|
7
|
-
require 'faraday_middleware'
|
|
8
|
-
rescue LoadError => e
|
|
9
|
-
message = <<~MSG
|
|
10
|
-
For the current version of Faraday (#{Faraday::VERSION}), "faraday_middleware"
|
|
11
|
-
is a required peer dependency of "netbox-client-ruby". Please install
|
|
12
|
-
"faraday_middleware" separately OR upgrade to Faraday 2, in which case,
|
|
13
|
-
"faraday_middleware" is not needed to work with "netbox-client-ruby".
|
|
14
|
-
|
|
15
|
-
#{e.message}
|
|
16
|
-
MSG
|
|
17
|
-
raise NetboxClientRuby::Error, message
|
|
18
|
-
end
|
|
19
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
20
2
|
|
|
21
3
|
module NetboxClientRuby
|
|
22
4
|
class Connection
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
require 'netbox_client_ruby/error'
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
module NetboxClientRuby
|
|
5
4
|
module Entity
|
|
@@ -38,7 +37,7 @@ module NetboxClientRuby
|
|
|
38
37
|
end
|
|
39
38
|
|
|
40
39
|
@id_fields.keys.each do |field|
|
|
41
|
-
define_method(field) { instance_variable_get "@#{field}" }
|
|
40
|
+
define_method(field) { instance_variable_get :"@#{field}" }
|
|
42
41
|
end
|
|
43
42
|
|
|
44
43
|
@id_fields
|
|
@@ -108,13 +107,13 @@ module NetboxClientRuby
|
|
|
108
107
|
return self if given_values.nil?
|
|
109
108
|
|
|
110
109
|
if id_fields.count == 1 && !given_values.is_a?(Hash)
|
|
111
|
-
instance_variable_set("@#{id_fields.keys.first}", given_values)
|
|
110
|
+
instance_variable_set(:"@#{id_fields.keys.first}", given_values)
|
|
112
111
|
return self
|
|
113
112
|
end
|
|
114
113
|
|
|
115
114
|
given_values.each do |field, value|
|
|
116
115
|
if id_fields.key? field.to_s
|
|
117
|
-
instance_variable_set "@#{field}", value
|
|
116
|
+
instance_variable_set :"@#{field}", value
|
|
118
117
|
else
|
|
119
118
|
# via method_missing, because it checks for readonly fields, etc.
|
|
120
119
|
method_missing("#{field}=", value)
|
|
@@ -164,7 +163,7 @@ module NetboxClientRuby
|
|
|
164
163
|
s_attribute = attribute.to_s
|
|
165
164
|
next if readonly_fields.include? s_attribute
|
|
166
165
|
|
|
167
|
-
sym_attr_writer = "#{attribute}="
|
|
166
|
+
sym_attr_writer = :"#{attribute}="
|
|
168
167
|
if methods.include?(sym_attr_writer)
|
|
169
168
|
public_send(sym_attr_writer, values)
|
|
170
169
|
else
|
|
@@ -197,7 +196,7 @@ module NetboxClientRuby
|
|
|
197
196
|
|
|
198
197
|
if name.end_with?('=')
|
|
199
198
|
is_readonly_field = readonly_fields.include?(name[0..-2])
|
|
200
|
-
is_instance_variable = instance_variables.include?("@#{name[0..-2]}"
|
|
199
|
+
is_instance_variable = instance_variables.include?(:"@#{name[0..-2]}")
|
|
201
200
|
not_this_classes_business = is_readonly_field || is_instance_variable
|
|
202
201
|
|
|
203
202
|
return super if not_this_classes_business
|
|
@@ -305,7 +304,7 @@ module NetboxClientRuby
|
|
|
305
304
|
end
|
|
306
305
|
|
|
307
306
|
def replace_path_variables_in(path)
|
|
308
|
-
interpreted_path = path.
|
|
307
|
+
interpreted_path = path.dup
|
|
309
308
|
path.scan(/:([a-zA-Z_][a-zA-Z0-9_]+[!?=]?)/) do |match, *|
|
|
310
309
|
path_variable_value = send(match)
|
|
311
310
|
return interpreted_path.gsub! ":#{match}", path_variable_value.to_s unless path_variable_value.nil?
|
|
@@ -328,12 +327,12 @@ module NetboxClientRuby
|
|
|
328
327
|
raise LocalError, "Can't find the id field '#{id_field}' in the received data."
|
|
329
328
|
end
|
|
330
329
|
|
|
331
|
-
instance_variable_set("@#{id_attr}", data[id_field])
|
|
330
|
+
instance_variable_set(:"@#{id_attr}", data[id_field])
|
|
332
331
|
end
|
|
333
332
|
end
|
|
334
333
|
|
|
335
334
|
def ids_set?
|
|
336
|
-
id_fields.map { |id_attr, _| instance_variable_get("@#{id_attr}") }.all?
|
|
335
|
+
id_fields.map { |id_attr, _| instance_variable_get(:"@#{id_attr}") }.all?
|
|
337
336
|
end
|
|
338
337
|
end
|
|
339
338
|
end
|
data/lib/netbox_client_ruby.rb
CHANGED
|
@@ -1,6 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'dry-configurable'
|
|
2
|
-
require '
|
|
3
|
-
require '
|
|
4
|
+
require 'ipaddress'
|
|
5
|
+
require 'openssl'
|
|
6
|
+
|
|
7
|
+
require 'faraday'
|
|
8
|
+
require 'faraday/detailed_logger'
|
|
9
|
+
|
|
10
|
+
if Faraday::VERSION < '2'
|
|
11
|
+
begin
|
|
12
|
+
require 'faraday_middleware'
|
|
13
|
+
rescue LoadError => e
|
|
14
|
+
message = <<~MSG
|
|
15
|
+
For the current version of Faraday (#{Faraday::VERSION}), "faraday_middleware"
|
|
16
|
+
is a required peer dependency of "netbox-client-ruby". Please install
|
|
17
|
+
"faraday_middleware" separately OR upgrade to Faraday 2, in which case,
|
|
18
|
+
"faraday_middleware" is not needed to work with "netbox-client-ruby".
|
|
19
|
+
|
|
20
|
+
#{e.message}
|
|
21
|
+
MSG
|
|
22
|
+
raise NetboxClientRuby::Error, message
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
require 'zeitwerk'
|
|
27
|
+
|
|
28
|
+
# load zeitwerk
|
|
29
|
+
Zeitwerk::Loader.for_gem.tap do |loader|
|
|
30
|
+
loader.ignore("#{__dir__}/netbox-client-ruby.rb")
|
|
31
|
+
loader.collapse("#{__dir__}/netbox_client_ruby/api")
|
|
32
|
+
loader.inflector.inflect('dcim' => 'DCIM')
|
|
33
|
+
loader.inflector.inflect('ipam' => 'IPAM')
|
|
34
|
+
loader.inflector.inflect('rsa_key_pair' => 'RSAKeyPair')
|
|
35
|
+
# loader.log!
|
|
36
|
+
loader.setup
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# load gem errors
|
|
40
|
+
require_relative 'netbox_client_ruby/error'
|
|
4
41
|
|
|
5
42
|
module NetboxClientRuby
|
|
6
43
|
extend Dry::Configurable
|
|
@@ -29,4 +66,32 @@ module NetboxClientRuby
|
|
|
29
66
|
setting :logger
|
|
30
67
|
setting :request_options, default: { open_timeout: 1, timeout: 5 }
|
|
31
68
|
end
|
|
69
|
+
|
|
70
|
+
def self.circuits
|
|
71
|
+
NetboxClientRuby::Circuits
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def self.dcim
|
|
75
|
+
NetboxClientRuby::DCIM
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def self.extras
|
|
79
|
+
NetboxClientRuby::Extras
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def self.ipam
|
|
83
|
+
NetboxClientRuby::IPAM
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def self.secrets
|
|
87
|
+
NetboxClientRuby::Secrets
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.tenancy
|
|
91
|
+
NetboxClientRuby::Tenancy
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def self.virtualization
|
|
95
|
+
NetboxClientRuby::Virtualization
|
|
96
|
+
end
|
|
32
97
|
end
|
data/netbox-client-ruby.gemspec
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
Gem::Specification.new do |spec|
|
|
5
4
|
spec.name = 'netbox-client-ruby'
|
|
6
|
-
spec.version =
|
|
5
|
+
spec.version = `git describe --tags --match="v[0-9]*" --abbrev=0`.strip.delete_prefix("v")
|
|
7
6
|
|
|
8
7
|
spec.summary = 'A read/write client for Netbox v2.'
|
|
9
8
|
spec.homepage = 'https://github.com/ninech/netbox-client-ruby'
|
|
@@ -19,9 +18,6 @@ Gem::Specification.new do |spec|
|
|
|
19
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
20
19
|
f.match(%r{^(test|spec|features)/})
|
|
21
20
|
end
|
|
22
|
-
spec.bindir = 'exe'
|
|
23
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
|
-
spec.require_paths = ['lib']
|
|
25
21
|
|
|
26
22
|
spec.required_ruby_version = '>= 2.7.0'
|
|
27
23
|
|
|
@@ -30,11 +26,5 @@ Gem::Specification.new do |spec|
|
|
|
30
26
|
spec.add_runtime_dependency 'faraday-detailed_logger', '~> 2.1'
|
|
31
27
|
spec.add_runtime_dependency 'ipaddress', '~> 0.8', '>= 0.8.3'
|
|
32
28
|
spec.add_runtime_dependency 'openssl', '>= 2.0.5'
|
|
33
|
-
|
|
34
|
-
spec.add_development_dependency 'bundler', '~> 2.1'
|
|
35
|
-
spec.add_development_dependency 'pry', '~> 0.10'
|
|
36
|
-
spec.add_development_dependency 'rake', '~> 13'
|
|
37
|
-
spec.add_development_dependency 'rspec', '~> 3.5'
|
|
38
|
-
spec.add_development_dependency 'rubocop', '~> 0.48'
|
|
39
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 1.15'
|
|
29
|
+
spec.add_runtime_dependency 'zeitwerk', '~> 2.6.0'
|
|
40
30
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: netbox-client-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.10.
|
|
4
|
+
version: 0.10.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Christian Mäder
|
|
8
8
|
autorequire:
|
|
9
|
-
bindir:
|
|
9
|
+
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-10-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-configurable
|
|
@@ -93,89 +93,19 @@ dependencies:
|
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
94
|
version: 2.0.5
|
|
95
95
|
- !ruby/object:Gem::Dependency
|
|
96
|
-
name:
|
|
96
|
+
name: zeitwerk
|
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
|
98
98
|
requirements:
|
|
99
99
|
- - "~>"
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
|
-
version:
|
|
102
|
-
type: :
|
|
103
|
-
prerelease: false
|
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
requirements:
|
|
106
|
-
- - "~>"
|
|
107
|
-
- !ruby/object:Gem::Version
|
|
108
|
-
version: '2.1'
|
|
109
|
-
- !ruby/object:Gem::Dependency
|
|
110
|
-
name: pry
|
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
|
112
|
-
requirements:
|
|
113
|
-
- - "~>"
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: '0.10'
|
|
116
|
-
type: :development
|
|
117
|
-
prerelease: false
|
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - "~>"
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: '0.10'
|
|
123
|
-
- !ruby/object:Gem::Dependency
|
|
124
|
-
name: rake
|
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
|
126
|
-
requirements:
|
|
127
|
-
- - "~>"
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: '13'
|
|
130
|
-
type: :development
|
|
131
|
-
prerelease: false
|
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
133
|
-
requirements:
|
|
134
|
-
- - "~>"
|
|
135
|
-
- !ruby/object:Gem::Version
|
|
136
|
-
version: '13'
|
|
137
|
-
- !ruby/object:Gem::Dependency
|
|
138
|
-
name: rspec
|
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
|
140
|
-
requirements:
|
|
141
|
-
- - "~>"
|
|
142
|
-
- !ruby/object:Gem::Version
|
|
143
|
-
version: '3.5'
|
|
144
|
-
type: :development
|
|
145
|
-
prerelease: false
|
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
147
|
-
requirements:
|
|
148
|
-
- - "~>"
|
|
149
|
-
- !ruby/object:Gem::Version
|
|
150
|
-
version: '3.5'
|
|
151
|
-
- !ruby/object:Gem::Dependency
|
|
152
|
-
name: rubocop
|
|
153
|
-
requirement: !ruby/object:Gem::Requirement
|
|
154
|
-
requirements:
|
|
155
|
-
- - "~>"
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: '0.48'
|
|
158
|
-
type: :development
|
|
159
|
-
prerelease: false
|
|
160
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
161
|
-
requirements:
|
|
162
|
-
- - "~>"
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
version: '0.48'
|
|
165
|
-
- !ruby/object:Gem::Dependency
|
|
166
|
-
name: rubocop-rspec
|
|
167
|
-
requirement: !ruby/object:Gem::Requirement
|
|
168
|
-
requirements:
|
|
169
|
-
- - "~>"
|
|
170
|
-
- !ruby/object:Gem::Version
|
|
171
|
-
version: '1.15'
|
|
172
|
-
type: :development
|
|
101
|
+
version: 2.6.0
|
|
102
|
+
type: :runtime
|
|
173
103
|
prerelease: false
|
|
174
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
175
105
|
requirements:
|
|
176
106
|
- - "~>"
|
|
177
107
|
- !ruby/object:Gem::Version
|
|
178
|
-
version:
|
|
108
|
+
version: 2.6.0
|
|
179
109
|
description:
|
|
180
110
|
email:
|
|
181
111
|
- christian.maeder@nine.ch
|
|
@@ -189,13 +119,12 @@ files:
|
|
|
189
119
|
- ".github/workflows/rspec.yml"
|
|
190
120
|
- ".gitignore"
|
|
191
121
|
- ".rspec"
|
|
122
|
+
- Appraisals
|
|
192
123
|
- Dockerfile
|
|
193
124
|
- Gemfile
|
|
194
|
-
- Gemfile.lock
|
|
195
125
|
- LICENSE.txt
|
|
196
126
|
- README.md
|
|
197
127
|
- Rakefile
|
|
198
|
-
- VERSION
|
|
199
128
|
- bin/console
|
|
200
129
|
- bin/setup
|
|
201
130
|
- docker-compose.test.yml
|
|
@@ -204,14 +133,10 @@ files:
|
|
|
204
133
|
- docker/start.test.sh
|
|
205
134
|
- dump.sql
|
|
206
135
|
- gemfiles/faraday0.gemfile
|
|
207
|
-
- gemfiles/faraday0.gemfile.lock
|
|
208
136
|
- gemfiles/faraday1.gemfile
|
|
209
|
-
- gemfiles/faraday1.gemfile.lock
|
|
210
137
|
- gemfiles/faraday2.gemfile
|
|
211
|
-
- gemfiles/faraday2.gemfile.lock
|
|
212
138
|
- lib/netbox-client-ruby.rb
|
|
213
139
|
- lib/netbox_client_ruby.rb
|
|
214
|
-
- lib/netbox_client_ruby/api.rb
|
|
215
140
|
- lib/netbox_client_ruby/api/circuits.rb
|
|
216
141
|
- lib/netbox_client_ruby/api/circuits/circuit.rb
|
|
217
142
|
- lib/netbox_client_ruby/api/circuits/circuit_termination.rb
|
|
@@ -344,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
344
269
|
- !ruby/object:Gem::Version
|
|
345
270
|
version: '0'
|
|
346
271
|
requirements: []
|
|
347
|
-
rubygems_version: 3.4.
|
|
272
|
+
rubygems_version: 3.4.19
|
|
348
273
|
signing_key:
|
|
349
274
|
specification_version: 4
|
|
350
275
|
summary: A read/write client for Netbox v2.
|