foreman_gridscale 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ <%= text_f f, :user_uuid, :label => _("User-UUID")%>
2
+ <%= password_f f, :api_token, :label => _("API-Token") %>
3
+ <%= text_f f, :url, :size => "col-md-8" %>
4
+
@@ -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,3 @@
1
+ Rails.application.routes.draw do
2
+ get 'new_action', to: 'foreman_gridscale/hosts#new_action'
3
+ end
@@ -0,0 +1,3 @@
1
+ require 'foreman_gridscale/engine'
2
+ module ForemanGridscale
3
+ end
@@ -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
@@ -0,0 +1,3 @@
1
+ module ForemanGridscale
2
+ VERSION = '1.0.0'.freeze
3
+ 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
@@ -0,0 +1,2 @@
1
+ # Matches foreman_gridscale.gemspec
2
+ _('TODO: Description of ForemanGridscale.')
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :host do
3
+ name 'foreman_gridscale'
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # This calls the main test_helper in Foreman-core
2
+ require 'test_helper'
3
+
4
+ # Add plugin to FactoryBot's paths
5
+ FactoryBot.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
+ FactoryBot.reload
@@ -0,0 +1,11 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ForemanGridscaleTest < ActiveSupport::TestCase
4
+ setup do
5
+ User.current = User.find_by_login 'admin'
6
+ end
7
+
8
+ test 'the truth' do
9
+ assert true
10
+ end
11
+ end
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