foreman_datacenter 0.1.49 → 0.1.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +72 -2
- data/app/assets/javascripts/foreman_datacenter/device_interface_connections.js +17 -0
- data/app/controllers/foreman_datacenter/devices_controller.rb +5 -0
- data/app/helpers/foreman_datacenter/shared_helper.rb +10 -0
- data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +20 -1
- data/app/views/foreman_datacenter/devices/_aracks.html.erb +5 -0
- data/app/views/foreman_datacenter/devices/index.html.erb +1 -0
- data/app/views/foreman_datacenter/devices/show.html.erb +1 -1
- data/app/views/foreman_datacenter/racks/_device_position.html.erb +3 -0
- data/app/views/foreman_datacenter/racks/show.html.erb +1 -0
- data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +8 -6
- data/lib/foreman_datacenter/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f096d8e5995364d2ad1919c1fd50a41dcf71870f
|
4
|
+
data.tar.gz: 48a775014252e6ce5ca677fc92daa83e9bae43c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 290a279214d80f987edc40122003d1f2fa3446ef5cdf6130fa53212d01a1f0f35a937ab23b71aa9583d2c019d3525fadfd5d93f04d30e343383fd4eabaecff28
|
7
|
+
data.tar.gz: f6fba572bb44dc45c8be0c5b4f1b161586e357212bf0ba6b5b9f518300d514a5dff4e4f0c7456f38982927e603805d76cac98b1ed716cba6cb8854de2ad94f4d
|
data/README.md
CHANGED
@@ -16,10 +16,68 @@ Foreman Datacenter plugin documents following:
|
|
16
16
|
* **Power connections** - lists all connections of power cables
|
17
17
|
* **Interface connections** - lists all connections between interfaces
|
18
18
|
|
19
|
-
##
|
19
|
+
## Introduction Video presentation
|
20
|
+
|
21
|
+
* https://www.youtube.com/watch?v=HVmJ6UYPaz0
|
22
|
+
|
23
|
+
## Installation by package
|
20
24
|
|
21
25
|
See [Plugins Installation](https://theforeman.org/plugins/#2.Installation) for how to install Foreman plugins.
|
22
26
|
|
27
|
+
### Ubuntu/Debian instructions
|
28
|
+
```
|
29
|
+
apt-get install ruby-foreman-datacenter
|
30
|
+
```
|
31
|
+
|
32
|
+
### Redhat/Centos instructions
|
33
|
+
```
|
34
|
+
yum install ruby-foreman-datacenter
|
35
|
+
```
|
36
|
+
|
37
|
+
NOTE: on both platforms, after the plugin is installed you have to precompile assets!
|
38
|
+
```
|
39
|
+
foreman-rake assets:precompile
|
40
|
+
```
|
41
|
+
|
42
|
+
## Installation by gem
|
43
|
+
|
44
|
+
### Redhat/Centos instructions (confirmed on Katello 3.4/Foreman 1.15.6 and 1.16)
|
45
|
+
|
46
|
+
You may need to install additional Gems and feed db:
|
47
|
+
```
|
48
|
+
# Install some required gems for precompile assets
|
49
|
+
gem install --ignore-dependencies sprockets
|
50
|
+
gem install --ignore-dependencies sass
|
51
|
+
gem install --ignore-dependencies sass-listen
|
52
|
+
gem install --ignore-dependencies rb-fsevent
|
53
|
+
gem install --ignore-dependencies rb-inotify
|
54
|
+
gem install --ignore-dependencies ffi
|
55
|
+
|
56
|
+
# Add repo cause ffi needs ruby22-ruby-devel
|
57
|
+
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo << EOF
|
58
|
+
[centos-sclo-sclo-rh]
|
59
|
+
name=CentOS-7 - SCLo sclo ruby22
|
60
|
+
baseurl=http://mirror.centos.org/centos/7/sclo/x86_64/rh/
|
61
|
+
gpgcheck=1
|
62
|
+
enabled=1
|
63
|
+
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
|
64
|
+
EOF
|
65
|
+
|
66
|
+
# Install ruby22-ruby-devel for ruby gem ffi
|
67
|
+
yum install rh-ruby22-ruby-devel
|
68
|
+
gem install --ignore-dependencies ffi
|
69
|
+
|
70
|
+
# Precompile assets should work now
|
71
|
+
foreman-rake assets:precompile
|
72
|
+
|
73
|
+
# Now feed database
|
74
|
+
RAILS_ENV=production rake db:migrate
|
75
|
+
|
76
|
+
# If it fails
|
77
|
+
cd /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/foreman_datacenter-0.1.49/db/migrate
|
78
|
+
for F in `ls`;do sed -i ${F} -e 's/\[4.2\]//';done;
|
79
|
+
```
|
80
|
+
|
23
81
|
## Usage
|
24
82
|
|
25
83
|
### Create a device type
|
@@ -30,15 +88,27 @@ Here you can create a particular device type, for example a model of switch and
|
|
30
88
|
|
31
89
|
You can either just create a device - then you have to create first Manufacturer, Device Type, Device Role, Platform; or you can import device from Puppet facts (this feature is still in development phase) - you just click **Devices** -> **Import from host** and then will search your host and click **Import to device**. Then you will get a page with additional information about the machine to be filled like location, position in rack, etc. Once device is created, you can list it in **Devices** section and when you click on this device, you can fill in additional information, e.g. connect its interfaces to a switch, etc.
|
32
90
|
|
91
|
+
### Bugs
|
92
|
+
|
93
|
+
Sometimes you may encounter a problem that does not work dropdown select field(like this https://github.com/theforeman/foreman_datacenter/issues/12 or this https://github.com/theforeman/foreman_datacenter/issues/9)
|
94
|
+
|
95
|
+
Please make assets precompilation manually as following in foreman installation dir:
|
96
|
+
```
|
97
|
+
foreman-rake assets:precompile
|
98
|
+
```
|
99
|
+
|
100
|
+
We are working on this problem
|
101
|
+
|
33
102
|
## Contributing
|
34
103
|
|
35
104
|
Fork and send a Pull Request. Thanks!
|
36
105
|
|
37
106
|
## Copyright
|
38
107
|
|
39
|
-
Copyright (c) *cloudevelops,
|
108
|
+
Copyright (c) *cloudevelops, s.r.o.*, https://www.cloudinfrastack.com
|
40
109
|
|
41
110
|
Authors: *Pavel Ivanov* and *Eugene Loginov*
|
111
|
+
Contributors: *Michal Vesely*, *Michal Cila*, *Zdenek Janda*
|
42
112
|
|
43
113
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
44
114
|
|
@@ -14,3 +14,20 @@ function connectionsNewRackSelected(item) {
|
|
14
14
|
});
|
15
15
|
}
|
16
16
|
}
|
17
|
+
|
18
|
+
function connectionsNewSiteSelected(item) {
|
19
|
+
var $item = $(item);
|
20
|
+
var site = $item.val();
|
21
|
+
if (site === '') {
|
22
|
+
return false;
|
23
|
+
} else {
|
24
|
+
tfm.tools.showSpinner();
|
25
|
+
var url = $item.data('url');
|
26
|
+
var params = $.param({ site_id: site });
|
27
|
+
var $container = $('#dic-container');
|
28
|
+
$container.load(url, params, function () {
|
29
|
+
$container.find('select').select2({allowClear: true});
|
30
|
+
tfm.tools.hideSpinner();
|
31
|
+
});
|
32
|
+
}
|
33
|
+
}
|
@@ -90,6 +90,11 @@ module ForemanDatacenter
|
|
90
90
|
render partial: 'racks'
|
91
91
|
end
|
92
92
|
|
93
|
+
def site_racks
|
94
|
+
@site = Site.find(params[:site_id])
|
95
|
+
render partial: 'site_racks'
|
96
|
+
end
|
97
|
+
|
93
98
|
def for_rack
|
94
99
|
@rack = ForemanDatacenter::Rack.find(params[:rack_id])
|
95
100
|
render partial: 'for_rack'
|
@@ -25,5 +25,15 @@ module ForemanDatacenter
|
|
25
25
|
render partial: 'foreman_datacenter/shared/rack_device_select',
|
26
26
|
locals: { site: site, options: options }
|
27
27
|
end
|
28
|
+
|
29
|
+
def sites_for_connection_form(site_id)
|
30
|
+
collection = Site.select(:id, :name).all
|
31
|
+
select_tag :site_id,
|
32
|
+
options_from_collection_for_select(collection, 'id', 'name', site_id),
|
33
|
+
{ :include_blank => 'Choose a site',
|
34
|
+
:onchange => 'connectionsNewSiteSelected(this)',
|
35
|
+
:'data-url' => site_racks_devices_path,
|
36
|
+
:class => 'form-control' }
|
37
|
+
end
|
28
38
|
end
|
29
39
|
end
|
@@ -12,6 +12,13 @@
|
|
12
12
|
<div class="panel-heading text-center"><strong>A Side</strong></div>
|
13
13
|
|
14
14
|
<div class="panel-body">
|
15
|
+
<div class="clearfix">
|
16
|
+
<div class="form-group">
|
17
|
+
<label class="col-md-2 control-label required">Site</label>
|
18
|
+
<div class="col-md-4"><%= @device_interface_connection.first_rack.site.name %></div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
15
22
|
<div class="clearfix">
|
16
23
|
<div class="form-group">
|
17
24
|
<label class="col-md-2 control-label required">Rack</label>
|
@@ -47,9 +54,21 @@
|
|
47
54
|
<div class="panel-heading text-center"><strong>B Side</strong></div>
|
48
55
|
|
49
56
|
<div class="panel-body">
|
50
|
-
|
57
|
+
<div class="clearfix">
|
58
|
+
<div class="form-group">
|
59
|
+
<label class="col-md-2 control-label required">Site</label>
|
60
|
+
<div class="col-md-4">
|
61
|
+
<%= sites_for_connection_form @device_interface_connection.first_site.id %>
|
62
|
+
</div>
|
63
|
+
<span class="help-block help-inline">First, you need to select a site</span>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
<div id="dic-container">
|
68
|
+
<%= rack_device_select @device_interface_connection.first_site,
|
51
69
|
url: interfaces_device_interface_connections_path,
|
52
70
|
target: '#interfaces-container' %>
|
71
|
+
</div>
|
53
72
|
|
54
73
|
<div id="interfaces-container">
|
55
74
|
<%= interfaces_for_connection_form f, [] %>
|
@@ -336,7 +336,7 @@
|
|
336
336
|
</table>
|
337
337
|
<% end %>
|
338
338
|
<div class="panel-footer text-right">
|
339
|
-
|
339
|
+
<%= link_to 'Sync', sync_interfaces_with_host_device_path(@device),
|
340
340
|
class: 'btn btn-primary btn-xs' if @device.host %>
|
341
341
|
<%= link_to 'Add an interface', new_device_device_interface_path(@device),
|
342
342
|
class: 'btn btn-primary btn-xs' %>
|
@@ -78,6 +78,7 @@
|
|
78
78
|
<!-- Unpositioned Devices -->
|
79
79
|
<%= render "unpositioned_devices", rack: @rack if @rack.unpositioned_devices.count != 0 %>
|
80
80
|
<div><h6 class="text-right">* side is not defined</h6></div>
|
81
|
+
<div><h6 class="text-right">** size is not defined</h6></div>
|
81
82
|
</div>
|
82
83
|
|
83
84
|
</div>
|
@@ -1,10 +1,12 @@
|
|
1
|
-
<div
|
2
|
-
<div class="
|
3
|
-
<
|
4
|
-
|
5
|
-
|
1
|
+
<div id="racks-container">
|
2
|
+
<div class="clearfix">
|
3
|
+
<div class="form-group">
|
4
|
+
<label class="col-md-2 control-label required">Rack</label>
|
5
|
+
<div class="col-md-4">
|
6
|
+
<%= racks_list_for_site site %>
|
7
|
+
</div>
|
8
|
+
<span class="help-block help-inline">First, you need to select a rack</span>
|
6
9
|
</div>
|
7
|
-
<span class="help-block help-inline">First, you need to select a rack</span>
|
8
10
|
</div>
|
9
11
|
</div>
|
10
12
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_datacenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Ivanov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-05-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: deface
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- app/views/foreman_datacenter/device_types/new.html.erb
|
233
233
|
- app/views/foreman_datacenter/device_types/show.html.erb
|
234
234
|
- app/views/foreman_datacenter/device_types/welcome.html.erb
|
235
|
+
- app/views/foreman_datacenter/devices/_aracks.html.erb
|
235
236
|
- app/views/foreman_datacenter/devices/_console_port.html.erb
|
236
237
|
- app/views/foreman_datacenter/devices/_console_server_port.html.erb
|
237
238
|
- app/views/foreman_datacenter/devices/_device_bay.html.erb
|