netbox-client-ruby 0.2.3 → 0.3.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/Dockerfile +0 -1
- data/Gemfile.lock +1 -1
- data/README.md +6 -0
- data/VERSION +1 -1
- data/lib/netbox_client_ruby/api.rb +5 -0
- data/lib/netbox_client_ruby/api/ipam/prefix.rb +4 -15
- data/lib/netbox_client_ruby/api/ipam/vlan.rb +4 -13
- data/lib/netbox_client_ruby/api/virtualization.rb +37 -0
- data/lib/netbox_client_ruby/api/virtualization/cluster.rb +22 -0
- data/lib/netbox_client_ruby/api/virtualization/cluster_group.rb +14 -0
- data/lib/netbox_client_ruby/api/virtualization/cluster_groups.rb +21 -0
- data/lib/netbox_client_ruby/api/virtualization/cluster_type.rb +14 -0
- data/lib/netbox_client_ruby/api/virtualization/cluster_types.rb +21 -0
- data/lib/netbox_client_ruby/api/virtualization/clusters.rb +21 -0
- data/lib/netbox_client_ruby/api/virtualization/interface.rb +16 -0
- data/lib/netbox_client_ruby/api/virtualization/interfaces.rb +21 -0
- data/lib/netbox_client_ruby/api/virtualization/virtual_machine.rb +38 -0
- data/lib/netbox_client_ruby/api/virtualization/virtual_machines.rb +21 -0
- data/netbox.env +2 -1
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 168709e9be66cbac5368b2bf2c9d88998e5d1287
|
4
|
+
data.tar.gz: ab817551670cc44a4e7e9aeb6e08f1fa72ff5a56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4332e0689c12f7f86903ef0afd7a6ac91f0c205cb34579c4d76b6ef2d57cb7bb6a1537c2997111a3698ca5a6df561359a4cae7748ba57f85b3c85a9c741bc8
|
7
|
+
data.tar.gz: ad322b6a0b4cb1e6e54156f386b6cfd4e0634231ebef45adcb96300c72d16701e855b68a6856954d187fa1a362e3be02eca6a4a715faa177e98c1febe2ee9944
|
data/Dockerfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -155,6 +155,12 @@ Not all objects which the Netbox API exposes are currently implemented. Implemen
|
|
155
155
|
* Tenancy:
|
156
156
|
* Tenant
|
157
157
|
* Tenant Groups
|
158
|
+
* Virtualization:
|
159
|
+
* Cluster Types
|
160
|
+
* Cluster Groups
|
161
|
+
* Clusters
|
162
|
+
* Virtual Machines
|
163
|
+
* Interfaces
|
158
164
|
|
159
165
|
If you can't find the object you need, also check
|
160
166
|
[the source code](https://github.com/ninech/netbox-client-ruby/tree/master/lib/netbox_client_ruby/api)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -2,6 +2,7 @@ require 'netbox_client_ruby/api/dcim'
|
|
2
2
|
require 'netbox_client_ruby/api/ipam'
|
3
3
|
require 'netbox_client_ruby/api/secrets'
|
4
4
|
require 'netbox_client_ruby/api/tenancy'
|
5
|
+
require 'netbox_client_ruby/api/virtualization'
|
5
6
|
require 'netbox_client_ruby/communication'
|
6
7
|
|
7
8
|
module NetboxClientRuby
|
@@ -20,4 +21,8 @@ module NetboxClientRuby
|
|
20
21
|
def self.tenancy
|
21
22
|
NetboxClientRuby::Tenancy
|
22
23
|
end
|
24
|
+
|
25
|
+
def self.virtualization
|
26
|
+
NetboxClientRuby::Virtualization
|
27
|
+
end
|
23
28
|
end
|
@@ -21,7 +21,7 @@ module NetboxClientRuby
|
|
21
21
|
vrf: proc { |raw_data| Vrf.new raw_data['id'] },
|
22
22
|
tenant: proc { |raw_data| Tenancy::Tenant.new raw_data['id'] },
|
23
23
|
vlan: proc { |raw_data| Vlan.new raw_data['id'] },
|
24
|
-
status: proc { |raw_data| PrefixStatus.new raw_data
|
24
|
+
status: proc { |raw_data| PrefixStatus.new raw_data },
|
25
25
|
role: proc { |raw_data| Role.new raw_data['id'] },
|
26
26
|
prefix: proc { |raw_data| IPAddress.parse raw_data }
|
27
27
|
)
|
@@ -31,20 +31,9 @@ module NetboxClientRuby
|
|
31
31
|
class PrefixStatus
|
32
32
|
attr_reader :value, :label
|
33
33
|
|
34
|
-
def initialize(
|
35
|
-
@value =
|
36
|
-
@label =
|
37
|
-
when 0 then
|
38
|
-
'Container'.freeze
|
39
|
-
when 1 then
|
40
|
-
'Active'.freeze
|
41
|
-
when 2 then
|
42
|
-
'Reserved'.freeze
|
43
|
-
when 3 then
|
44
|
-
'Deprecated'.freeze
|
45
|
-
else
|
46
|
-
'UNDEFINED'.freeze
|
47
|
-
end
|
34
|
+
def initialize(raw_data)
|
35
|
+
@value = raw_data['value']
|
36
|
+
@label = raw_data['label']
|
48
37
|
end
|
49
38
|
end
|
50
39
|
end
|
@@ -16,7 +16,7 @@ module NetboxClientRuby
|
|
16
16
|
object_fields(
|
17
17
|
tenant: proc { |raw_data| Tenancy::Tenant.new raw_data['id'] },
|
18
18
|
role: proc { |raw_data| Role.new raw_data['id'] },
|
19
|
-
status: proc { |raw_data| VlanStatus.new raw_data
|
19
|
+
status: proc { |raw_data| VlanStatus.new raw_data },
|
20
20
|
group: proc { |raw_data| VlanGroup.new raw_data['id'] },
|
21
21
|
site: proc { |raw_data| DCIM::Site.new raw_data['id'] },
|
22
22
|
)
|
@@ -26,18 +26,9 @@ module NetboxClientRuby
|
|
26
26
|
class VlanStatus
|
27
27
|
attr_reader :value, :label
|
28
28
|
|
29
|
-
def initialize(
|
30
|
-
@value =
|
31
|
-
@label =
|
32
|
-
when 1 then
|
33
|
-
'Active'.freeze
|
34
|
-
when 2 then
|
35
|
-
'Reserved'.freeze
|
36
|
-
when 3 then
|
37
|
-
'Deprecated'.freeze
|
38
|
-
else
|
39
|
-
'UNDEFINED'.freeze
|
40
|
-
end
|
29
|
+
def initialize(raw_data)
|
30
|
+
@value = raw_data['value']
|
31
|
+
@label = raw_data['label']
|
41
32
|
end
|
42
33
|
end
|
43
34
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'netbox_client_ruby/api/virtualization/cluster_group'
|
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'
|
12
|
+
|
13
|
+
module NetboxClientRuby
|
14
|
+
module Virtualization
|
15
|
+
{
|
16
|
+
cluster_groups: ClusterGroups,
|
17
|
+
cluster_types: ClusterTypes,
|
18
|
+
clusters: Clusters,
|
19
|
+
virtual_machines: VirtualMachines,
|
20
|
+
interfaces: Interfaces,
|
21
|
+
}.each_pair do |method_name, class_name|
|
22
|
+
define_method(method_name) { class_name.new }
|
23
|
+
module_function(method_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
{
|
27
|
+
cluster_group: ClusterGroup,
|
28
|
+
cluster_type: ClusterType,
|
29
|
+
cluster: Cluster,
|
30
|
+
virtual_machine: VirtualMachine,
|
31
|
+
interface: Interface,
|
32
|
+
}.each_pair do |method_name, class_name|
|
33
|
+
define_method(method_name) { |id| class_name.new id }
|
34
|
+
module_function(method_name)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'netbox_client_ruby/entity'
|
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'
|
5
|
+
|
6
|
+
module NetboxClientRuby
|
7
|
+
module Virtualization
|
8
|
+
class Cluster
|
9
|
+
include Entity
|
10
|
+
|
11
|
+
id id: :id
|
12
|
+
deletable true
|
13
|
+
path 'virtualization/clusters/:id.json'
|
14
|
+
creation_path 'virtualization/clusters/'
|
15
|
+
object_fields(
|
16
|
+
group: proc { |raw_data| ClusterGroup.new raw_data['id'] },
|
17
|
+
site: proc { |raw_data| Site.new raw_data['id'] },
|
18
|
+
type: proc { |raw_data| ClusterType.new raw_data['id'] },
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'netbox_client_ruby/entity'
|
2
|
+
|
3
|
+
module NetboxClientRuby
|
4
|
+
module Virtualization
|
5
|
+
class ClusterGroup
|
6
|
+
include Entity
|
7
|
+
|
8
|
+
id id: :id
|
9
|
+
deletable true
|
10
|
+
path 'virtualization/cluster-groups/:id.json'
|
11
|
+
creation_path 'virtualization/cluster-groups/'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'netbox_client_ruby/entities'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/cluster_group'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class ClusterGroups
|
7
|
+
include Entities
|
8
|
+
|
9
|
+
path 'virtualization/cluster-groups.json'
|
10
|
+
data_key 'results'
|
11
|
+
count_key 'count'
|
12
|
+
entity_creator :entity_creator
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def entity_creator(raw_entity)
|
17
|
+
ClusterGroup.new raw_entity['id']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'netbox_client_ruby/entity'
|
2
|
+
|
3
|
+
module NetboxClientRuby
|
4
|
+
module Virtualization
|
5
|
+
class ClusterType
|
6
|
+
include Entity
|
7
|
+
|
8
|
+
id id: :id
|
9
|
+
deletable true
|
10
|
+
path 'virtualization/cluster-types/:id.json'
|
11
|
+
creation_path 'virtualization/cluster-types/'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'netbox_client_ruby/entities'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/cluster_type'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class ClusterTypes
|
7
|
+
include Entities
|
8
|
+
|
9
|
+
path 'virtualization/cluster-types.json'
|
10
|
+
data_key 'results'
|
11
|
+
count_key 'count'
|
12
|
+
entity_creator :entity_creator
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def entity_creator(raw_entity)
|
17
|
+
ClusterType.new raw_entity['id']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'netbox_client_ruby/entities'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/cluster'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class Clusters
|
7
|
+
include Entities
|
8
|
+
|
9
|
+
path 'virtualization/clusters.json'
|
10
|
+
data_key 'results'
|
11
|
+
count_key 'count'
|
12
|
+
entity_creator :entity_creator
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def entity_creator(raw_entity)
|
17
|
+
Cluster.new raw_entity['id']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'netbox_client_ruby/entity'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/virtual_machine'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class Interface
|
7
|
+
include Entity
|
8
|
+
|
9
|
+
id id: :id
|
10
|
+
deletable true
|
11
|
+
path 'virtualization/interfaces/:id.json'
|
12
|
+
creation_path 'virtualization/interfaces/'
|
13
|
+
object_fields virtual_machine: proc { |raw_data| VirtualMachine.new raw_data['id'] }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'netbox_client_ruby/entities'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/interface'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class Interfaces
|
7
|
+
include Entities
|
8
|
+
|
9
|
+
path 'virtualization/interfaces.json'
|
10
|
+
data_key 'results'
|
11
|
+
count_key 'count'
|
12
|
+
entity_creator :entity_creator
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def entity_creator(raw_entity)
|
17
|
+
Interface.new raw_entity['id']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'netbox_client_ruby/entity'
|
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'
|
7
|
+
|
8
|
+
module NetboxClientRuby
|
9
|
+
module Virtualization
|
10
|
+
class VirtualMachine
|
11
|
+
include Entity
|
12
|
+
|
13
|
+
id id: :id
|
14
|
+
deletable true
|
15
|
+
path 'virtualization/virtual-machines/:id.json'
|
16
|
+
creation_path 'virtualization/virtual-machines/'
|
17
|
+
object_fields(
|
18
|
+
cluster: proc { |raw_data| Cluster.new raw_data['id'] },
|
19
|
+
platform: proc { |raw_data| DCIM::Platform.new raw_data['id'] },
|
20
|
+
primary_ip: proc { |raw_data| IPAM::IpAddress.new raw_data['id'] },
|
21
|
+
primary_ip4: proc { |raw_data| IPAM::IpAddress.new raw_data['id'] },
|
22
|
+
primary_ip6: proc { |raw_data| IPAM::IpAddress.new raw_data['id'] },
|
23
|
+
role: proc { |raw_data| DCIM::DeviceRole.new raw_data['id'] },
|
24
|
+
status: proc { |raw_data| ClusterStatus.new raw_data },
|
25
|
+
tenant: proc { |raw_data| Tenancy::Tenant.new raw_data['id'] },
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
class ClusterStatus
|
30
|
+
attr_reader :value, :label
|
31
|
+
|
32
|
+
def initialize(raw_data)
|
33
|
+
@value = raw_data['value']
|
34
|
+
@label = raw_data['label']
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'netbox_client_ruby/entities'
|
2
|
+
require 'netbox_client_ruby/api/virtualization/virtual_machine'
|
3
|
+
|
4
|
+
module NetboxClientRuby
|
5
|
+
module Virtualization
|
6
|
+
class VirtualMachines
|
7
|
+
include Entities
|
8
|
+
|
9
|
+
path 'virtualization/virtual-machines.json'
|
10
|
+
data_key 'results'
|
11
|
+
count_key 'count'
|
12
|
+
entity_creator :entity_creator
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def entity_creator(raw_entity)
|
17
|
+
VirtualMachine.new raw_entity['id']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/netbox.env
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
SUPERUSER_NAME=admin
|
2
2
|
SUPERUSER_EMAIL=admin@example.com
|
3
3
|
SUPERUSER_PASSWORD=admin
|
4
|
-
|
4
|
+
SUPERUSER_API_TOKEN=0123456789abcdef0123456789abcdef01234567
|
5
|
+
ALLOWED_HOSTS=localhost netboxclientruby.docker nginx.netboxclientruby.docker nginx
|
5
6
|
DB_NAME=netbox
|
6
7
|
DB_USER=netbox
|
7
8
|
DB_PASSWORD=netbox
|
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.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Mäder
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-configurable
|
@@ -263,6 +263,17 @@ files:
|
|
263
263
|
- lib/netbox_client_ruby/api/tenancy/tenant_group.rb
|
264
264
|
- lib/netbox_client_ruby/api/tenancy/tenant_groups.rb
|
265
265
|
- lib/netbox_client_ruby/api/tenancy/tenants.rb
|
266
|
+
- lib/netbox_client_ruby/api/virtualization.rb
|
267
|
+
- lib/netbox_client_ruby/api/virtualization/cluster.rb
|
268
|
+
- lib/netbox_client_ruby/api/virtualization/cluster_group.rb
|
269
|
+
- lib/netbox_client_ruby/api/virtualization/cluster_groups.rb
|
270
|
+
- lib/netbox_client_ruby/api/virtualization/cluster_type.rb
|
271
|
+
- lib/netbox_client_ruby/api/virtualization/cluster_types.rb
|
272
|
+
- lib/netbox_client_ruby/api/virtualization/clusters.rb
|
273
|
+
- lib/netbox_client_ruby/api/virtualization/interface.rb
|
274
|
+
- lib/netbox_client_ruby/api/virtualization/interfaces.rb
|
275
|
+
- lib/netbox_client_ruby/api/virtualization/virtual_machine.rb
|
276
|
+
- lib/netbox_client_ruby/api/virtualization/virtual_machines.rb
|
266
277
|
- lib/netbox_client_ruby/communication.rb
|
267
278
|
- lib/netbox_client_ruby/connection.rb
|
268
279
|
- lib/netbox_client_ruby/entities.rb
|