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.
@@ -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