foreman_cpp_cloudstack 0.1.5

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
+ <tr>
2
+ <td><%= _("URL") %></td>
3
+ <td><%= @compute_resource.url %></td>
4
+ </tr>
@@ -0,0 +1,9 @@
1
+ <%= select_f f, :flavor_id, compute_resource.flavors, :id, :name, {}, :label => _('Service Offering') %>
2
+ <%= select_f f, :image_id, compute_resource.images, :uuid, :name, {}, :label => _('Image') %>
3
+ <%= select_f f, :disk_offering_id, compute_resource.disk_offerings, :id, :name, {}, :label => _('Disk Offering') %>
4
+ <% new = f.object && f.object.id.blank? %>
5
+
6
+ <div id='subnet_selection'>
7
+ <%# select_f f, :zone_id, compute_resource.zones, :id, :name, {}, :label => _('Zone') %>
8
+ <%= select_f f, :network_ids, compute_resource.networks, :id, :network_id, {}, :label => _('Subnet') %>
9
+ </div>
@@ -0,0 +1,20 @@
1
+ <table class="table table-bordered" data-table='inline'>
2
+ <thead>
3
+ <tr>
4
+ <th><%= _('Name') %></th>
5
+ <th><%= _('Type') %></th>
6
+ <th><%= _('State') %></th>
7
+ <th></th>
8
+ </tr>
9
+ </thead>
10
+ <% @vms.each do |vm| %>
11
+ <tr>
12
+ <td><%= link_to_if_authorized vm.name, hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.identity) %></td>
13
+ <td><%= vm.flavor_with_object %></td>
14
+ <td> <span <%= vm_power_class(vm.ready?) %>> <%= vm_state(vm) %></span> </td>
15
+ <td>
16
+ <%= action_buttons(*available_actions(vm)) %>
17
+ </td>
18
+ </tr>
19
+ <% end %>
20
+ </table>
@@ -0,0 +1,18 @@
1
+ <% title @vm.name %>
2
+ <div class='col-md-12'>
3
+ <table class="table table-bordered table-striped">
4
+ <tr><th colspan="2">Properties</th></tr>
5
+
6
+ <%= prop :availability_zone %>
7
+ <% @vm.all_addresses.each do |address| %>
8
+ <tr>
9
+ <td><%= address["pool"] %> network</td>
10
+ <td><%= address["ip"] %> (floating), <%= address["fixed_ip"] %> (fixed ip) </td>
11
+ </tr>
12
+ <% end %>
13
+ <%= prop :state %>
14
+ <%= prop :created_at %>
15
+ <%= prop :flavor_with_object, "Flavor" %>
16
+ <%= prop :security_groups, "Security Groups" %>
17
+ </table>
18
+ </div>
@@ -0,0 +1,3 @@
1
+ <%= text_f f, :username, :value => @image.username || "root", :help_inline => _("The user that is used to ssh into the instance, normally cloud-user, ec2-user, ubuntu, root etc") %>
2
+ <%= image_field(f) %>
3
+ <%= checkbox_f f, :user_data, :help_inline => _("Does this image support user data input (e.g. via cloud-init)?") %>
@@ -0,0 +1,3 @@
1
+ require 'foreman_cpp_cloudstack/engine'
2
+ module ForemanCPPCloudstack
3
+ end
@@ -0,0 +1,40 @@
1
+ require 'fast_gettext'
2
+ require 'gettext_i18n_rails'
3
+ require 'fog'
4
+ require 'fog/cloudstack'
5
+ require 'fog/cloudstack/models/compute/server'
6
+
7
+ module ForemanCPPCloudstack
8
+ #Inherit from the Rails module of the parent app (Foreman), not the plugin.
9
+ #Thus, inherits from ::Rails::Engine and not from Rails::Engine
10
+ class Engine < ::Rails::Engine
11
+ engine_name 'foreman_cpp_cloudstack'
12
+
13
+ config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
14
+
15
+ initializer 'foreman_cpp_cloudstack.register_gettext', :after => :load_config_initializers do |app|
16
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
17
+ locale_domain = 'foreman_cpp_cloudstack'
18
+
19
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
20
+ end
21
+
22
+ initializer 'foreman_cpp_cloudstack.register_plugin', :after => :finisher_hook do |app|
23
+ Foreman::Plugin.register :foreman_cpp_cloudstack do
24
+ requires_foreman '>= 1.7'
25
+ compute_resource ForemanCPPCloudstack::Cloudstack
26
+ end
27
+
28
+ end
29
+
30
+ config.to_prepare do
31
+ begin
32
+ Fog::Compute::Cloudstack::Server.send(:include, ::FogExtensions::Cloudstack::Server)
33
+ Host::Managed.send(:include, ForemanCPPCloudstack::Compute)
34
+ rescue => e
35
+ puts "#{ForemanCPPCloudstack}: skipping engine hook (#{e.to_s})"
36
+ end
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module ForemanCPPCloudstack
2
+ VERSION = "0.1.5"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :foreman_cpp_cloudstack do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,6 @@
1
+ #
2
+ # Makefile for PO merging and MO generation. For more info see
3
+ # Locale/README in the Foreman Core.
4
+ #
5
+ include ../.foreman_app/locale/Makefile
6
+ DOMAIN = foreman_cpp_cloudstack
@@ -0,0 +1,29 @@
1
+ #!/bin/bash
2
+ curl -s -H "Accept:application/json" -X POST \
3
+ -k -u admin:changeme \
4
+ -d "host[name]=test$(date +%s%N)" \
5
+ -d "host[hostgroup_id]=1" \
6
+ -d "host[environment_id]=1" \
7
+ -d "host[managed]=true" \
8
+ -d "host[type]=Host::Managed" \
9
+ -d "capabilities=image" \
10
+ -d "host[domain_id]=1" \
11
+ -d "host[compute_resource_id]=1" \
12
+ -d "host[compute_attributes][network_ids]=b952b73c-3df7-42b3-b763-c165d532055f" \
13
+ -d "host[interfaces_attributes][new_interfaces][_destroy]=false" \
14
+ -d "host[interfaces_attributes][new_interfaces][type]=Nic::Managed" \
15
+ -d "host[interfaces_attributes][new_interfaces][provider]=IPMI" \
16
+ -d "host[compute_attributes][flavor_id]=f13c5944-01a1-42a2-a667-01ec2d240959" \
17
+ -d "host[architecture_id]=1" \
18
+ -d "host[operatingsystem_id]=1" \
19
+ -d "provision_method=image" \
20
+ -d "host[compute_attributes][image_id]=ef867ba8-418b-11e4-9e73-080027700f81" \
21
+ -d "host[build]=1" \
22
+ -d "host[enabled]=1" \
23
+ -d "host[overwrite]=false" \
24
+ -d "host[comment]= {\"tags\":{\"lob\":\"${lob}\"}}" \
25
+ "http://localhost:3000/api/hosts"
26
+
27
+ #-d "host[progress_report_id]=f91dde83-dda7-43ae-8034-e589560d59ff" \
28
+ #-d "host[puppet_ca_proxy_id]=2"
29
+ #-d "host[puppet_proxy_id]=1" \
@@ -0,0 +1,29 @@
1
+ #!/bin/bash
2
+ curl -s -H "Accept:application/json" -X POST \
3
+ -k -u admin:changeme \
4
+ -d "host[name]=test$(date +%s%N)" \
5
+ -d "host[hostgroup_id]=1" \
6
+ -d "host[environment_id]=1" \
7
+ -d "host[managed]=true" \
8
+ -d "host[type]=Host::Managed" \
9
+ -d "capabilities=image" \
10
+ -d "host[domain_id]=1" \
11
+ -d "host[compute_resource_id]=1" \
12
+ -d "host[compute_attributes][subnet_id]=b952b73c-3df7-42b3-b763-c165d532055f" \
13
+ -d "host[interfaces_attributes][new_interfaces][_destroy]=false" \
14
+ -d "host[interfaces_attributes][new_interfaces][type]=Nic::Managed" \
15
+ -d "host[interfaces_attributes][new_interfaces][provider]=IPMI" \
16
+ -d "host[compute_attributes][flavor_id]=f13c5944-01a1-42a2-a667-01ec2d240959" \
17
+ -d "host[architecture_id]=1" \
18
+ -d "host[operatingsystem_id]=1" \
19
+ -d "provision_method=image" \
20
+ -d "host[compute_attributes][image_id]=ef867ba8-418b-11e4-9e73-080027700f81" \
21
+ -d "host[build]=1" \
22
+ -d "host[enabled]=1" \
23
+ -d "host[overwrite]=false" \
24
+ -d "host[comment]= {\"tags\":{\"lob\":\"${lob}\"}}" \
25
+ "http://localhost:3000/api/hosts"
26
+
27
+ #-d "host[progress_report_id]=f91dde83-dda7-43ae-8034-e589560d59ff" \
28
+ #-d "host[puppet_ca_proxy_id]=2"
29
+ #-d "host[puppet_proxy_id]=1" \
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class ForemanCPPCloudstackTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, ForemanCPPCloudstack
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_cpp_cloudstack
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
5
+ platform: ruby
6
+ authors:
7
+ - bytemine GmbH, Daniel Rauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: fog
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Provision and manage a Cloudstack Server from Foreman.
42
+ email:
43
+ - info@bytemine.net
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - LICENSE
49
+ - README.md
50
+ - Rakefile
51
+ - app/models/concerns/fog_extensions/cloudstack/flavor.rb
52
+ - app/models/concerns/fog_extensions/cloudstack/server.rb
53
+ - app/models/concerns/foreman_cpp_cloudstack/compute.rb
54
+ - app/models/foreman_cpp_cloudstack/cloudstack.rb
55
+ - app/views/api/v1/compute_resources/cloudstack.json.rabl
56
+ - app/views/api/v2/compute_resources/cloudstack.json.rabl
57
+ - app/views/compute_resources/form/_cloudstack.html.erb
58
+ - app/views/compute_resources/show/_cloudstack.html.erb
59
+ - app/views/compute_resources_vms/form/_cloudstack.html.erb
60
+ - app/views/compute_resources_vms/index/_cloudstack.html.erb
61
+ - app/views/compute_resources_vms/show/_cloudstack.html.erb
62
+ - app/views/images/form/_cloudstack.html.erb
63
+ - lib/foreman_cpp_cloudstack.rb
64
+ - lib/foreman_cpp_cloudstack/engine.rb
65
+ - lib/foreman_cpp_cloudstack/version.rb
66
+ - lib/tasks/foreman_cpp_cloudstack_tasks.rake
67
+ - locale/Makefile
68
+ - test/buildhost.sh
69
+ - test/buildhostds.sh
70
+ - test/foreman_cpp_cloudstack_test.rb
71
+ - test/test_helper.rb
72
+ homepage: http://github.com/bytemine/foreman-cloudstack
73
+ licenses:
74
+ - GPL-3
75
+ metadata: {}
76
+ post_install_message:
77
+ rdoc_options: []
78
+ require_paths:
79
+ - lib
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ requirements: []
91
+ rubyforge_project:
92
+ rubygems_version: 2.2.2
93
+ signing_key:
94
+ specification_version: 4
95
+ summary: Provision and manage a Cloudstack Server from Foreman
96
+ test_files:
97
+ - test/buildhost.sh
98
+ - test/buildhostds.sh
99
+ - test/test_helper.rb
100
+ - test/foreman_cpp_cloudstack_test.rb