foreman_gridscale 1.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.
- checksums.yaml +7 -0
- data/LICENSE +619 -0
- data/README.md +89 -0
- data/Rakefile +47 -0
- data/app/helpers/gridscale_images_helper.rb +128 -0
- data/app/models/concerns/fog_extensions/gridscale/server.rb +63 -0
- data/app/models/foreman_gridscale/concerns/host_managed_extensions.rb +16 -0
- data/app/models/foreman_gridscale/gridscale.rb +196 -0
- data/app/views/compute_resources/form/_gridscale.html.erb +4 -0
- data/app/views/compute_resources/show/_gridscale.html.erb +0 -0
- data/app/views/compute_resources_vms/form/gridscale/_base.html.erb +9 -0
- data/app/views/compute_resources_vms/form/gridscale/_network.html.erb +10 -0
- data/app/views/compute_resources_vms/index/_gridscale.html.erb +21 -0
- data/app/views/compute_resources_vms/show/_gridscale.html.erb +19 -0
- data/app/views/hosts/_nics.html.erb +0 -0
- data/config/routes.rb +3 -0
- data/lib/foreman_gridscale.rb +3 -0
- data/lib/foreman_gridscale/engine.rb +41 -0
- data/lib/foreman_gridscale/tasks/test.rake +45 -0
- data/lib/foreman_gridscale/version.rb +3 -0
- data/locale/Makefile +60 -0
- data/locale/en/foreman_gridscale.po +19 -0
- data/locale/foreman_gridscale.pot +19 -0
- data/locale/gemspec.rb +2 -0
- data/test/factories/foreman_gridscale_factories.rb +5 -0
- data/test/test_plugin_helper.rb +6 -0
- data/test/unit/foreman_gridscale_test.rb +11 -0
- metadata +117 -0
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= number_f f, :cores, :label => _("Cores") , :required =>true%>
|
2
|
+
<%= number_f f, :memory, :label => _("Memory in GB"), :required =>true%>
|
3
|
+
<%= number_f f, :storage, :label => _("Storage in GB") %>
|
4
|
+
<div id='template_selection'>
|
5
|
+
<%=select_template(f, compute_resource) %>
|
6
|
+
</div>
|
7
|
+
<div id='sshkey_selection'>
|
8
|
+
<%=select_sshkey(f, compute_resource) %>
|
9
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div id='network_selection'>
|
2
|
+
<%=select_network(f, compute_resource) %>
|
3
|
+
</div>
|
4
|
+
<%= checkbox_f f, :bootable, :label => _('Bootable'), :label_size => "col-md-2" %>
|
5
|
+
<div id='ipv4_selection'>
|
6
|
+
<%=select_ipv4(f, compute_resource) %>
|
7
|
+
</div>
|
8
|
+
<div id='ipv6_selection'>
|
9
|
+
<%=select_ipv6(f, compute_resource) %>
|
10
|
+
</div>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<thead>
|
2
|
+
<tr>
|
3
|
+
<th><%= _('Name') %></th>
|
4
|
+
<th><%= _('Object Uuid') %></th>
|
5
|
+
<th><%= _('Cores') %></th>
|
6
|
+
<th><%= _('Memory') %></th>
|
7
|
+
<th><%= _('Status') %></th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<% @vms.each do |vm| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= link_to_if_authorized vm.name, hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.identity).merge(:auth_object => @compute_resource, :authorizer => authorizer) %></td>
|
14
|
+
<td><%= vm.object_uuid %></td>
|
15
|
+
<td><%= vm.cores %></td>
|
16
|
+
<td><%= vm.memory %> GB</td>
|
17
|
+
<td><span <%= vm_power_class(vm.ready?) %>> <%= vm.ready? ? "Active" : "Inactive" %></span></td>
|
18
|
+
<td><%= action_buttons(vm_power_action(vm), display_delete_if_authorized((hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.object_uuid).merge(:auth_object => @compute_resource, :authorizer => authorizer)))) %></td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
</tbody>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% title @vm.name %>
|
2
|
+
|
3
|
+
<div class='col-md-12'>
|
4
|
+
<table class="table table-bordered table-striped">
|
5
|
+
<tr><th colspan="2">Properties</th></tr>
|
6
|
+
<%= prop :create_time, 'Created Time' %>
|
7
|
+
<%= prop :cores, 'CPU Cores' %>
|
8
|
+
<tr><td>Memory</td><td><%= @vm.memory %> GB</td></tr>
|
9
|
+
<%= prop :current_price, 'Current Price' %>
|
10
|
+
<%= prop :mac, 'MAC Adrress' %>
|
11
|
+
<%= prop :ipv4_address, 'IP 4' %>
|
12
|
+
<%= prop :ipv6_address, 'IP 6' %>
|
13
|
+
|
14
|
+
<tr>
|
15
|
+
<td>Console</td>
|
16
|
+
<td><a target="_blank" href="https://my.gridscale.io/js/UX/Helper/VNC/terminalModalStandalone.html?uuid=<%= @vm.object_uuid %>&path=api.gridscale.io">Open</a></td>
|
17
|
+
</tr>
|
18
|
+
</table>
|
19
|
+
</div>
|
File without changes
|
data/config/routes.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'fast_gettext'
|
2
|
+
require 'gettext_i18n_rails'
|
3
|
+
|
4
|
+
module ForemanGridscale
|
5
|
+
class Engine < ::Rails::Engine
|
6
|
+
engine_name 'foreman_gridscale'
|
7
|
+
|
8
|
+
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
9
|
+
|
10
|
+
initializer 'foreman_gridscale.register_gettext', :after => :load_config_initializers do
|
11
|
+
locale_dir = File.join(File.expand_path('../..', __dir__), 'locale')
|
12
|
+
locale_domain = 'foreman_gridscale'
|
13
|
+
|
14
|
+
Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
|
15
|
+
end
|
16
|
+
|
17
|
+
initializer 'foreman_gridscale.register_plugin', :before => :finisher_hook do
|
18
|
+
Foreman::Plugin.register :foreman_gridscale do
|
19
|
+
requires_foreman '>= 1.15'
|
20
|
+
compute_resource ForemanGridscale::Gridscale
|
21
|
+
parameter_filter ComputeResource, :api_token, :user_uuid
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
rake_tasks do
|
26
|
+
load "#{ForemanGridscale::Engine.root}/lib/foreman_gridscale/tasks/test.rake"
|
27
|
+
end
|
28
|
+
|
29
|
+
config.to_prepare do
|
30
|
+
require 'fog/gridscale'
|
31
|
+
require 'fog/compute/gridscale'
|
32
|
+
require 'fog/compute/gridscale/models/server'
|
33
|
+
|
34
|
+
|
35
|
+
Fog::Compute::Gridscale::Server.send :include,
|
36
|
+
FogExtensions::Gridscale::Server
|
37
|
+
::Host::Managed.send :include,
|
38
|
+
ForemanGridscale::Concerns::HostManagedExtensions
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.expand_path('../engine', File.dirname(__FILE__))
|
2
|
+
namespace :test do
|
3
|
+
desc 'Run the plugin unit test suite.'
|
4
|
+
task :gridscale => ['db:test:prepare'] do
|
5
|
+
test_task = Rake::TestTask.new('gridscale_test_task') do |t|
|
6
|
+
t.libs << ['test', "#{ForemanGridscale::Engine.root}/test"]
|
7
|
+
t.test_files = [
|
8
|
+
"#{ForemanGridscale::Engine.root}/test/**/*_test.rb"
|
9
|
+
]
|
10
|
+
t.verbose = true
|
11
|
+
t.warning = false
|
12
|
+
end
|
13
|
+
|
14
|
+
Rake::Task[test_task.name].invoke
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
namespace :gridscale do
|
19
|
+
task :rubocop do
|
20
|
+
begin
|
21
|
+
require 'rubocop/rake_task'
|
22
|
+
RuboCop::RakeTask.new(:rubocop_gridscale) do |task|
|
23
|
+
task.patterns = ["#{ForemanGridscale::Engine.root}/app/**/*.rb",
|
24
|
+
"#{ForemanGridscale::Engine.root}/lib/**/*.rb",
|
25
|
+
"#{ForemanGridscale::Engine.root}/test/**/*.rb"]
|
26
|
+
end
|
27
|
+
rescue StandardError
|
28
|
+
puts 'Rubocop not loaded.'
|
29
|
+
end
|
30
|
+
|
31
|
+
Rake::Task['rubocop_gridscale'].invoke
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Rake::Task[:test].enhance do
|
36
|
+
Rake::Task['test:gridscale'].invoke
|
37
|
+
end
|
38
|
+
|
39
|
+
load 'tasks/jenkins.rake'
|
40
|
+
if Rake::Task.task_defined?(:'jenkins:unit')
|
41
|
+
Rake::Task['jenkins:unit'].enhance do
|
42
|
+
Rake::Task['test:gridscale'].invoke
|
43
|
+
Rake::Task['gridscale:rubocop'].invoke
|
44
|
+
end
|
45
|
+
end
|
data/locale/Makefile
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# Makefile for PO merging and MO generation. More info in the README.
|
3
|
+
#
|
4
|
+
# make all-mo (default) - generate MO files
|
5
|
+
# make check - check translations using translate-tool
|
6
|
+
# make tx-update - download and merge translations from Transifex
|
7
|
+
# make clean - clean everything
|
8
|
+
#
|
9
|
+
DOMAIN = foreman_gridscale
|
10
|
+
VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
|
11
|
+
POTFILE = $(DOMAIN).pot
|
12
|
+
MOFILE = $(DOMAIN).mo
|
13
|
+
POFILES = $(shell find . -name '$(DOMAIN).po')
|
14
|
+
MOFILES = $(patsubst %.po,%.mo,$(POFILES))
|
15
|
+
POXFILES = $(patsubst %.po,%.pox,$(POFILES))
|
16
|
+
EDITFILES = $(patsubst %.po,%.edit.po,$(POFILES))
|
17
|
+
|
18
|
+
%.mo: %.po
|
19
|
+
mkdir -p $(shell dirname $@)/LC_MESSAGES
|
20
|
+
msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
|
21
|
+
|
22
|
+
# Generate MO files from PO files
|
23
|
+
all-mo: $(MOFILES)
|
24
|
+
|
25
|
+
# Check for malformed strings
|
26
|
+
%.pox: %.po
|
27
|
+
msgfmt -c $<
|
28
|
+
pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
|
29
|
+
-t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
|
30
|
+
cat $@
|
31
|
+
! grep -q msgid $@
|
32
|
+
|
33
|
+
%.edit.po:
|
34
|
+
touch $@
|
35
|
+
|
36
|
+
check: $(POXFILES)
|
37
|
+
|
38
|
+
# Unify duplicate translations
|
39
|
+
uniq-po:
|
40
|
+
for f in $(shell find ./ -name "*.po") ; do \
|
41
|
+
msguniq $$f -o $$f ; \
|
42
|
+
done
|
43
|
+
|
44
|
+
tx-pull: $(EDITFILES)
|
45
|
+
tx pull -f
|
46
|
+
for f in $(EDITFILES) ; do \
|
47
|
+
sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
|
48
|
+
done
|
49
|
+
|
50
|
+
tx-update: tx-pull
|
51
|
+
@echo
|
52
|
+
@echo Run rake plugin:gettext[$(DOMAIN)] from the Foreman installation, then make -C locale mo-files to finish
|
53
|
+
@echo
|
54
|
+
|
55
|
+
mo-files: $(MOFILES)
|
56
|
+
git add $(POFILES) $(POTFILE) ../locale/*/LC_MESSAGES
|
57
|
+
git commit -m "i18n - pulling from tx"
|
58
|
+
@echo
|
59
|
+
@echo Changes commited!
|
60
|
+
@echo
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# foreman_gridscale
|
2
|
+
#
|
3
|
+
# This file is distributed under the same license as foreman_gridscale.
|
4
|
+
#
|
5
|
+
#, fuzzy
|
6
|
+
msgid ""
|
7
|
+
msgstr ""
|
8
|
+
"Project-Id-Version: version 0.0.1\n"
|
9
|
+
"Report-Msgid-Bugs-To: \n"
|
10
|
+
"POT-Creation-Date: 2014-08-20 08:46+0100\n"
|
11
|
+
"PO-Revision-Date: 2014-08-20 08:54+0100\n"
|
12
|
+
"Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
|
13
|
+
"Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
|
14
|
+
"Language: \n"
|
15
|
+
"MIME-Version: 1.0\n"
|
16
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
17
|
+
"Content-Transfer-Encoding: 8bit\n"
|
18
|
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# foreman_gridscale
|
2
|
+
#
|
3
|
+
# This file is distributed under the same license as foreman_gridscale.
|
4
|
+
#
|
5
|
+
#, fuzzy
|
6
|
+
msgid ""
|
7
|
+
msgstr ""
|
8
|
+
"Project-Id-Version: version 0.0.1\n"
|
9
|
+
"Report-Msgid-Bugs-To: \n"
|
10
|
+
"POT-Creation-Date: 2014-08-20 08:46+0100\n"
|
11
|
+
"PO-Revision-Date: 2014-08-20 08:46+0100\n"
|
12
|
+
"Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
|
13
|
+
"Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
|
14
|
+
"Language: \n"
|
15
|
+
"MIME-Version: 1.0\n"
|
16
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
17
|
+
"Content-Transfer-Encoding: 8bit\n"
|
18
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
19
|
+
|
data/locale/gemspec.rb
ADDED
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: foreman_gridscale
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Aldemuro Haris
|
8
|
+
- Wouter Wijsman
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-12-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rubocop
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.61'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0.61'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rdoc
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '6.1'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '6.1'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: fog-gridscale
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.1'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.1'
|
56
|
+
description: gridscale provider for Foreman
|
57
|
+
email:
|
58
|
+
- aldemuro@gridscale.io
|
59
|
+
- wouter@gridscale.io
|
60
|
+
executables: []
|
61
|
+
extensions: []
|
62
|
+
extra_rdoc_files: []
|
63
|
+
files:
|
64
|
+
- LICENSE
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- app/helpers/gridscale_images_helper.rb
|
68
|
+
- app/models/concerns/fog_extensions/gridscale/server.rb
|
69
|
+
- app/models/foreman_gridscale/concerns/host_managed_extensions.rb
|
70
|
+
- app/models/foreman_gridscale/gridscale.rb
|
71
|
+
- app/views/compute_resources/form/_gridscale.html.erb
|
72
|
+
- app/views/compute_resources/show/_gridscale.html.erb
|
73
|
+
- app/views/compute_resources_vms/form/gridscale/_base.html.erb
|
74
|
+
- app/views/compute_resources_vms/form/gridscale/_network.html.erb
|
75
|
+
- app/views/compute_resources_vms/index/_gridscale.html.erb
|
76
|
+
- app/views/compute_resources_vms/show/_gridscale.html.erb
|
77
|
+
- app/views/hosts/_nics.html.erb
|
78
|
+
- config/routes.rb
|
79
|
+
- lib/foreman_gridscale.rb
|
80
|
+
- lib/foreman_gridscale/engine.rb
|
81
|
+
- lib/foreman_gridscale/tasks/test.rake
|
82
|
+
- lib/foreman_gridscale/version.rb
|
83
|
+
- locale/Makefile
|
84
|
+
- locale/en/foreman_gridscale.po
|
85
|
+
- locale/foreman_gridscale.pot
|
86
|
+
- locale/gemspec.rb
|
87
|
+
- test/factories/foreman_gridscale_factories.rb
|
88
|
+
- test/test_plugin_helper.rb
|
89
|
+
- test/unit/foreman_gridscale_test.rb
|
90
|
+
homepage: https://bitbucket.org/gridscale/foreman-gridscale/
|
91
|
+
licenses:
|
92
|
+
- GPL-3.0
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 2.5.2.3
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
113
|
+
summary: Provision and manage gridscale instances from Foreman
|
114
|
+
test_files:
|
115
|
+
- test/unit/foreman_gridscale_test.rb
|
116
|
+
- test/factories/foreman_gridscale_factories.rb
|
117
|
+
- test/test_plugin_helper.rb
|