foreman_netbox 1.1.1 → 2.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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -6
  3. data/app/interactors/foreman_netbox/delete_host/delete_device.rb +1 -1
  4. data/app/interactors/foreman_netbox/delete_host/delete_virtual_machine.rb +1 -1
  5. data/app/interactors/foreman_netbox/delete_host/organizer.rb +1 -1
  6. data/app/interactors/foreman_netbox/sync_host/organizer.rb +1 -1
  7. data/app/interactors/foreman_netbox/sync_host/sync_device/create.rb +1 -1
  8. data/app/interactors/foreman_netbox/sync_host/sync_device/find.rb +3 -5
  9. data/app/interactors/foreman_netbox/sync_host/sync_device/organizer.rb +10 -10
  10. data/app/interactors/foreman_netbox/sync_host/sync_device/save_netbox_url.rb +1 -1
  11. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_role/create.rb +1 -1
  12. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_role/find.rb +1 -1
  13. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_role/organizer.rb +1 -1
  14. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/create.rb +1 -1
  15. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/find.rb +1 -1
  16. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/organizer.rb +3 -3
  17. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/sync_manufacturer/create.rb +1 -1
  18. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/sync_manufacturer/find.rb +4 -5
  19. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/sync_manufacturer/organizer.rb +1 -1
  20. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/create.rb +1 -1
  21. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/find.rb +2 -2
  22. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/organizer.rb +4 -4
  23. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/create.rb +2 -2
  24. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/delete.rb +3 -1
  25. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/find.rb +2 -2
  26. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/organizer.rb +3 -3
  27. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_site/create.rb +1 -1
  28. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_site/find.rb +1 -1
  29. data/app/interactors/foreman_netbox/sync_host/sync_device/sync_site/organizer.rb +2 -2
  30. data/app/interactors/foreman_netbox/sync_host/sync_tags/create.rb +1 -1
  31. data/app/interactors/foreman_netbox/sync_host/sync_tags/find.rb +1 -1
  32. data/app/interactors/foreman_netbox/sync_host/sync_tags/organizer.rb +2 -2
  33. data/app/interactors/foreman_netbox/sync_host/sync_tenant/create.rb +1 -1
  34. data/app/interactors/foreman_netbox/sync_host/sync_tenant/find.rb +1 -1
  35. data/app/interactors/foreman_netbox/sync_host/sync_tenant/organizer.rb +2 -2
  36. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/create.rb +1 -1
  37. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/find.rb +2 -4
  38. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/organizer.rb +8 -8
  39. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/save_netbox_url.rb +1 -1
  40. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/create.rb +1 -1
  41. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/find.rb +1 -1
  42. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/organizer.rb +3 -3
  43. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/sync_cluster_type/create.rb +1 -1
  44. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/sync_cluster_type/find.rb +1 -1
  45. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/sync_cluster_type/organizer.rb +1 -1
  46. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/create.rb +8 -8
  47. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/find.rb +2 -2
  48. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/organizer.rb +4 -4
  49. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/create.rb +2 -2
  50. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/delete.rb +3 -3
  51. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/find.rb +2 -2
  52. data/app/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/organizer.rb +3 -3
  53. data/app/lib/foreman_netbox/api.rb +11 -2
  54. data/app/models/orchestration/netbox.rb +2 -4
  55. data/app/services/foreman_netbox/cached_netbox_parameters.rb +11 -11
  56. data/app/services/foreman_netbox/netbox_parameters.rb +29 -29
  57. data/app/services/foreman_netbox/netbox_parameters_comparator.rb +14 -8
  58. data/db/migrate/20230303095650_fix_netbox_settings_category_to_dsl.rb +0 -2
  59. data/lib/foreman_netbox/engine.rb +47 -40
  60. data/lib/foreman_netbox/version.rb +1 -1
  61. data/lib/tasks/foreman_netbox_tasks.rake +0 -50
  62. data/test/fixtures/netbox_device_raw_data.json +1 -1
  63. data/test/integration/foreman_netbox/sync_k8s_physical_host_test.rb +8 -8
  64. data/test/integration/foreman_netbox/sync_rhel_physical_host_test.rb +8 -8
  65. data/test/integration/foreman_netbox/sync_rhel_virtual_host_test.rb +8 -8
  66. data/test/interactors/foreman_netbox/sync_host/organizer_test.rb +9 -9
  67. data/test/interactors/foreman_netbox/sync_host/sync_device/create_test.rb +2 -2
  68. data/test/interactors/foreman_netbox/sync_host/sync_device/save_netbox_url_test.rb +2 -2
  69. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_role/create_test.rb +1 -1
  70. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_role/find_test.rb +4 -4
  71. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/create_test.rb +1 -1
  72. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/find_test.rb +4 -4
  73. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/sync_manufacturer/create_test.rb +1 -1
  74. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/sync_manufacturer/find_test.rb +6 -6
  75. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_device_type/update_test.rb +2 -2
  76. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/create_test.rb +3 -3
  77. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/delete_test.rb +2 -2
  78. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/find_test.rb +4 -4
  79. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/create_test.rb +5 -5
  80. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/delete_test.rb +7 -7
  81. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/find_test.rb +3 -3
  82. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/sync_ip_addresses/update_test.rb +5 -5
  83. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_interfaces/update_test.rb +10 -10
  84. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_site/create_test.rb +1 -1
  85. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_site/find_test.rb +3 -3
  86. data/test/interactors/foreman_netbox/sync_host/sync_device/sync_site/update_test.rb +3 -3
  87. data/test/interactors/foreman_netbox/sync_host/sync_device/update_test.rb +11 -11
  88. data/test/interactors/foreman_netbox/sync_host/sync_tenant/create_test.rb +1 -1
  89. data/test/interactors/foreman_netbox/sync_host/sync_tenant/find_test.rb +3 -3
  90. data/test/interactors/foreman_netbox/sync_host/sync_tenant/update_test.rb +2 -2
  91. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/create_test.rb +2 -2
  92. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/save_netbox_url_test.rb +2 -2
  93. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/create_test.rb +1 -1
  94. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/find_test.rb +2 -2
  95. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/sync_cluster_type/find_test.rb +4 -4
  96. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_cluster/update_test.rb +2 -2
  97. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/create_test.rb +3 -3
  98. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/delete_test.rb +2 -2
  99. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/find_test.rb +4 -4
  100. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/create_test.rb +5 -5
  101. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/delete_test.rb +7 -7
  102. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/find_test.rb +3 -3
  103. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/sync_ip_addresses/update_test.rb +7 -7
  104. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/sync_interfaces/update_test.rb +9 -9
  105. data/test/interactors/foreman_netbox/sync_host/sync_virtual_machine/update_test.rb +10 -10
  106. data/test/models/foreman_netbox/netbox_facet_test.rb +1 -1
  107. data/test/models/foreman_netbox/nics/base_test.rb +1 -1
  108. data/test/services/foreman_netbox/netbox_attributes_test.rb +16 -16
  109. data/test/services/foreman_netbox/netbox_parameters_comparator_test.rb +31 -31
  110. data/test/test_plugin_helper.rb +1 -1
  111. data/test/unit/foreman_netbox/api_test.rb +52 -0
  112. metadata +88 -165
@@ -16,7 +16,7 @@ module ForemanNetbox
16
16
  let(:expected) do
17
17
  {
18
18
  name: 'Tenant Name',
19
- slug: 'tenant-name'
19
+ slug: 'tenant-name',
20
20
  }
21
21
  end
22
22
 
@@ -33,7 +33,7 @@ module ForemanNetbox
33
33
  let(:expected) do
34
34
  {
35
35
  name: 'device_name',
36
- serial: 'abc123'
36
+ serial: 'abc123',
37
37
  }
38
38
  end
39
39
 
@@ -62,7 +62,7 @@ module ForemanNetbox
62
62
  let(:expected) do
63
63
  {
64
64
  model: 'Product Name',
65
- slug: 'product-name'
65
+ slug: 'product-name',
66
66
  }
67
67
  end
68
68
 
@@ -74,7 +74,7 @@ module ForemanNetbox
74
74
  let(:expected) do
75
75
  {
76
76
  model: 'Unknown',
77
- slug: 'unknown'
77
+ slug: 'unknown',
78
78
  }
79
79
  end
80
80
 
@@ -120,7 +120,7 @@ module ForemanNetbox
120
120
  let(:expected) do
121
121
  {
122
122
  name: 'Site Name',
123
- slug: 'site-name'
123
+ slug: 'site-name',
124
124
  }
125
125
  end
126
126
 
@@ -137,7 +137,7 @@ module ForemanNetbox
137
137
  :nic_base,
138
138
  identifier: expected.first[:name],
139
139
  mac: expected.first[:mac_address]
140
- )
140
+ ),
141
141
  ]
142
142
  )
143
143
  end
@@ -147,8 +147,8 @@ module ForemanNetbox
147
147
  name: 'eth1',
148
148
  mac_address: 'FE:13:C6:44:29:24',
149
149
  type: {
150
- value: 'virtual'
151
- }
150
+ value: 'virtual',
151
+ },
152
152
  ]
153
153
  end
154
154
 
@@ -178,7 +178,7 @@ module ForemanNetbox
178
178
  :subnet_ipv6,
179
179
  cidr: expected.second[:address].split('/').second
180
180
  )
181
- )
181
+ ),
182
182
  ]
183
183
  )
184
184
  end
@@ -188,15 +188,15 @@ module ForemanNetbox
188
188
  {
189
189
  address: '10.0.0.1/24',
190
190
  interface: {
191
- name: 'eth1'
192
- }
191
+ name: 'eth1',
192
+ },
193
193
  },
194
194
  {
195
195
  address: '1500:0:2d0:201::1/64',
196
196
  interface: {
197
- name: 'eth2'
198
- }
199
- }
197
+ name: 'eth2',
198
+ },
199
+ },
200
200
  ]
201
201
  end
202
202
 
@@ -213,7 +213,7 @@ module ForemanNetbox
213
213
  memory_mb: expected[:memory],
214
214
  volumes: [
215
215
  OpenStruct.new(size_gb: expected[:disk] / 2),
216
- OpenStruct.new(size_gb: expected[:disk] / 2)
216
+ OpenStruct.new(size_gb: expected[:disk] / 2),
217
217
  ]
218
218
  )
219
219
  )
@@ -225,7 +225,7 @@ module ForemanNetbox
225
225
  name: 'virtual_machine_name',
226
226
  vcpus: 2,
227
227
  memory: 128,
228
- disk: 20
228
+ disk: 20,
229
229
  }
230
230
  end
231
231
 
@@ -10,8 +10,8 @@ module ForemanNetbox
10
10
  let(:my_hash) do
11
11
  {
12
12
  device: {
13
- name: 'My device'
14
- }
13
+ name: 'My device',
14
+ },
15
15
  }
16
16
  end
17
17
  let(:old_hash) { my_hash }
@@ -25,82 +25,82 @@ module ForemanNetbox
25
25
  let(:old_hash) do
26
26
  {
27
27
  device: {
28
- name: 'Old name'
28
+ name: 'Old name',
29
29
  },
30
30
  device_role: {
31
- name: 'SERVER'
31
+ name: 'SERVER',
32
32
  },
33
33
  manufacturer: {
34
- name: 'Manufacturer'
34
+ name: 'Manufacturer',
35
35
  },
36
36
  interfaces: [
37
37
  {
38
38
  name: 'eth0',
39
39
  type: {
40
- value: 'virtual'
41
- }
40
+ value: 'virtual',
41
+ },
42
42
  },
43
43
  {
44
44
  name: 'eth1',
45
45
  type: {
46
- value: 'virtual'
47
- }
46
+ value: 'virtual',
47
+ },
48
48
  },
49
49
  {
50
50
  name: 'eth2',
51
51
  type: {
52
- value: 'virtual'
53
- }
52
+ value: 'virtual',
53
+ },
54
54
  },
55
55
  {
56
56
  name: 'eth4',
57
57
  mac_address: '00:50:56:84:6D:84',
58
58
  type: {
59
- value: 'virtual'
60
- }
61
- }
62
- ]
59
+ value: 'virtual',
60
+ },
61
+ },
62
+ ],
63
63
  }
64
64
  end
65
65
 
66
66
  let(:new_hash) do
67
67
  {
68
68
  device: {
69
- name: 'New name'
69
+ name: 'New name',
70
70
  },
71
71
  device_type: {
72
- model: 'Model name'
72
+ model: 'Model name',
73
73
  },
74
74
  manufacturer: {
75
- name: 'Manufacturer'
75
+ name: 'Manufacturer',
76
76
  },
77
77
  interfaces: [
78
78
  {
79
79
  name: 'eth0',
80
80
  type: {
81
- value: 'virtual'
82
- }
81
+ value: 'virtual',
82
+ },
83
83
  },
84
84
  {
85
85
  name: 'eth1',
86
86
  type: {
87
- value: 'new_type'
88
- }
87
+ value: 'new_type',
88
+ },
89
89
  },
90
90
  {
91
91
  name: 'eth3',
92
92
  type: {
93
- value: 'virtual'
94
- }
93
+ value: 'virtual',
94
+ },
95
95
  },
96
96
  {
97
97
  name: 'eth4',
98
98
  mac_address: '00:50:56:84:6D:84',
99
99
  type: {
100
- value: 'virtual'
101
- }
102
- }
103
- ]
100
+ value: 'virtual',
101
+ },
102
+ },
103
+ ],
104
104
  }
105
105
  end
106
106
 
@@ -111,12 +111,12 @@ module ForemanNetbox
111
111
  device: {
112
112
  name: {
113
113
  old: old_hash.dig(:device, :name), new: new_hash.dig(:device, :name)
114
- }
114
+ },
115
115
  },
116
116
  interfaces: {
117
117
  added: new_hash[:interfaces].select { |i| %w[eth1 eth3].include?(i[:name]) },
118
- removed: old_hash[:interfaces].select { |i| %w[eth1 eth2].include?(i[:name]) }
119
- }
118
+ removed: old_hash[:interfaces].select { |i| %w[eth1 eth2].include?(i[:name]) },
119
+ },
120
120
  }
121
121
  end
122
122
 
@@ -27,6 +27,6 @@ end
27
27
 
28
28
  def default_tags
29
29
  ForemanNetbox::SyncHost::SyncTags::Organizer::DEFAULT_TAGS.map.with_index(1) do |tag, id|
30
- ForemanNetbox::API.client::Extras::Tag.new(id: id, name: tag[:name], slug: tag[:slug])
30
+ ForemanNetbox::Api.client::Extras::Tag.new(id: id, name: tag[:name], slug: tag[:slug])
31
31
  end
32
32
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_plugin_helper'
4
+
5
+ module ForemanNetbox
6
+ class ApiTest < ActiveSupport::TestCase
7
+ describe '.netbox_api_url' do
8
+ subject { described_class.netbox_api_url }
9
+
10
+ let(:netbox1_url) { 'https://netbox1.com' }
11
+ let(:netbox1_api_url) { "#{netbox1_url}/api" }
12
+ let(:netbox2_api_url) { 'https://netbox1.com/api' }
13
+
14
+ context 'when only the netbox_url setting is set' do
15
+ setup do
16
+ Setting[:netbox_url] = netbox1_url
17
+ end
18
+
19
+ it 'returns the URL to the Netbox API' do
20
+ assert_equal netbox1_api_url, subject
21
+ end
22
+ end
23
+
24
+ context 'when only the netbox_api_url setting is set' do
25
+ setup do
26
+ Setting[:netbox_api_url] = netbox2_api_url
27
+ end
28
+
29
+ it 'returns the URL to the Netbox API' do
30
+ assert_equal netbox2_api_url, subject
31
+ end
32
+ end
33
+
34
+ context 'when both netbox_url and netbox_api_url setting are set' do
35
+ setup do
36
+ Setting[:netbox_url] = netbox1_api_url
37
+ Setting[:netbox_api_url] = netbox2_api_url
38
+ end
39
+
40
+ it 'returns the URL to the Netbox API from netbox_api_url setting' do
41
+ assert_equal netbox2_api_url, subject
42
+ end
43
+ end
44
+
45
+ context 'when neither setting netbox_url nor netbox_api_url is set' do
46
+ it 'raises exception' do
47
+ assert_raises(Foreman::Exception) { subject }
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end