Skip to content

Commit 3d61bdb

Browse files
authored
Merge pull request #5 from alsigna:dev-http
dev-http
2 parents 83b58a9 + c793984 commit 3d61bdb

File tree

12 files changed

+605
-505
lines changed

12 files changed

+605
-505
lines changed

README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,19 @@ docker build -t netbox-plugin .
121121
122122
>Why FTP? Originally scp was used to transfer files, but based on experience, FTP is much faster.
123123
124+
>HTTP was added in 0.0.3, But FTP_USERNAME in configuration still required as it used as folder name for IOS upload
125+
124126
```shell
125127
cd ftp
126128
docker build -t ftp_for_netbox .
127129
cd ../../
128130
```
131+
or
132+
```shell
133+
cd http
134+
docker build -t http_for_netbox .
135+
cd ../../
136+
```
129137
## 3. Change docker-compose.yml
130138

131139
```dockerfile
@@ -175,6 +183,16 @@ cd ../../
175183
- USERS=software-images|ftp_password
176184
# Your external (host) IP address, not contaner's IP
177185
- ADDRESS=192.168.0.1
186+
187+
# simple http server
188+
http:
189+
image: http_for_netbox
190+
ports:
191+
- "80:80"
192+
volumes:
193+
# Mount folder with IOS images. FTP has RO only.
194+
- ./netbox-software-manager/software-images:/usr/share/nginx/html:z,ro
195+
178196
```
179197

180198
## 4. Change NetBox configuration.py
@@ -193,7 +211,11 @@ PLUGINS_CONFIG = {
193211
'FTP_USERNAME': 'software-images',
194212
'FTP_PASSWORD': 'ftp_password',
195213
'FTP_SERVER': '192.168.0.1',
196-
214+
# HTTP server name with patch to images
215+
"HTTP_SERVER": "http://192.168.0./",
216+
# Default transport method, can be also changed while scheduling task, [tfp|http]
217+
"DEFAULT_TRANSFER_METHOD": "ftp",
218+
197219
# Log file
198220
'UPGRADE_LOG_FILE': '/var/log/upgrade.log',
199221
# Queue name. Check step 1. Should be the same

http/default.conf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
server {
2+
listen 80;
3+
server_name localhost;
4+
5+
location / {
6+
root /usr/share/nginx/html;
7+
autoindex on;
8+
}
9+
}

http/dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM nginx
2+
3+
ADD default.conf /etc/nginx/conf.d/
4+
5+
# VOLUME ["/usr/share/nginx/html"]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name="netbox-plugin-software-manager",
8-
version="0.0.2",
8+
version="0.0.3",
99
description="Software Manager for Cisco IOS/IOS-XE devices",
1010
long_description=long_description,
1111
long_description_content_type="text/markdown",

software_manager/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class SoftwareManager(PluginConfig):
55
name = "software_manager"
66
verbose_name = "Software Manager"
77
description = "Software Manager for Cisco IOS/IOS-XE devices"
8-
version = "0.0.2"
8+
version = "0.0.3"
99
author = "Alexander Ignatov"
1010
author_email = "ignatov.alx@gmail.com"
1111
required_settings = []

software_manager/choices.py

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,62 @@
22

33

44
class TaskTypeChoices(ChoiceSet):
5-
TYPE_UPLOAD = 'upload'
6-
TYPE_UPGRADE = 'upgrade'
5+
TYPE_UPLOAD = "upload"
6+
TYPE_UPGRADE = "upgrade"
77

88
CHOICES = (
9-
(TYPE_UPLOAD, 'upload'),
10-
(TYPE_UPGRADE, 'upgrade'),
9+
(TYPE_UPLOAD, "upload"),
10+
(TYPE_UPGRADE, "upgrade"),
11+
)
12+
13+
14+
class TaskTransferMethod(ChoiceSet):
15+
METHOD_FTP = "ftp"
16+
METHOD_HTTP = "http"
17+
18+
CHOICES = (
19+
(METHOD_FTP, "ftp"),
20+
(METHOD_HTTP, "http"),
1121
)
1222

1323

1424
class TaskStatusChoices(ChoiceSet):
15-
STATUS_UNKNOWN = 'unknown'
16-
STATUS_SCHEDULED = 'scheduled'
17-
STATUS_FAILED = 'failed'
18-
STATUS_RUNNING = 'running'
19-
STATUS_SUCCEEDED = 'succeeded'
20-
STATUS_SKIPPED = 'skipped'
25+
STATUS_UNKNOWN = "unknown"
26+
STATUS_SCHEDULED = "scheduled"
27+
STATUS_FAILED = "failed"
28+
STATUS_RUNNING = "running"
29+
STATUS_SUCCEEDED = "succeeded"
30+
STATUS_SKIPPED = "skipped"
2131

2232
CHOICES = (
23-
(STATUS_UNKNOWN, 'unknown'),
24-
(STATUS_SCHEDULED, 'scheduled'),
25-
(STATUS_FAILED, 'failed'),
26-
(STATUS_RUNNING, 'running'),
27-
(STATUS_SUCCEEDED, 'succeeded'),
28-
(STATUS_SKIPPED, 'skipped'),
33+
(STATUS_UNKNOWN, "unknown"),
34+
(STATUS_SCHEDULED, "scheduled"),
35+
(STATUS_FAILED, "failed"),
36+
(STATUS_RUNNING, "running"),
37+
(STATUS_SUCCEEDED, "succeeded"),
38+
(STATUS_SKIPPED, "skipped"),
2939
)
3040

3141

3242
class TaskFailReasonChoices(ChoiceSet):
33-
FAIL_UNKNOWN = 'fail-unknown'
34-
FAIL_CHECK = 'fail-check'
35-
FAIL_LOGIN = 'fail-login'
36-
FAIL_CONFIG = 'fail-config'
37-
FAIL_CONNECT = 'fail-connect'
38-
FAIL_GENERAL = 'fail-general'
39-
FAIL_ADD = 'fail-add'
40-
FAIL_UPGRADE = 'fail-upgrade'
41-
FAIL_UPLOAD = 'fail-upload'
43+
FAIL_UNKNOWN = "fail-unknown"
44+
FAIL_CHECK = "fail-check"
45+
FAIL_LOGIN = "fail-login"
46+
FAIL_CONFIG = "fail-config"
47+
FAIL_CONNECT = "fail-connect"
48+
FAIL_GENERAL = "fail-general"
49+
FAIL_ADD = "fail-add"
50+
FAIL_UPGRADE = "fail-upgrade"
51+
FAIL_UPLOAD = "fail-upload"
4252

4353
CHOICES = (
44-
(FAIL_UNKNOWN, 'fail-unknown'),
45-
(FAIL_CHECK, 'fail-check'),
46-
(FAIL_LOGIN, 'fail-login'),
47-
(FAIL_CONFIG, 'fail-config'),
48-
(FAIL_CONNECT, 'fail-connect'),
49-
(FAIL_GENERAL, 'fail-general'),
50-
(FAIL_ADD, 'fail-add'),
51-
(FAIL_UPGRADE, 'fail-upgrade'),
52-
(FAIL_UPLOAD, 'fail-upload'),
54+
(FAIL_UNKNOWN, "fail-unknown"),
55+
(FAIL_CHECK, "fail-check"),
56+
(FAIL_LOGIN, "fail-login"),
57+
(FAIL_CONFIG, "fail-config"),
58+
(FAIL_CONNECT, "fail-connect"),
59+
(FAIL_GENERAL, "fail-general"),
60+
(FAIL_ADD, "fail-add"),
61+
(FAIL_UPGRADE, "fail-upgrade"),
62+
(FAIL_UPLOAD, "fail-upload"),
5363
)

0 commit comments

Comments
 (0)