foreman_docker 1.4.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +39 -0
- data/README.md +0 -2
- data/app/controllers/api/v2/containers_controller.rb +2 -2
- data/app/controllers/containers/steps_controller.rb +5 -5
- data/app/controllers/containers_controller.rb +1 -1
- data/app/controllers/image_search_controller.rb +28 -8
- data/app/helpers/containers_helper.rb +13 -20
- data/app/models/docker_container_wizard_states/environment.rb +3 -0
- data/app/models/docker_container_wizard_states/preliminary.rb +6 -4
- data/app/models/docker_registry.rb +8 -4
- data/app/models/exposed_port.rb +1 -0
- data/app/models/foreman_docker/dns.rb +2 -0
- data/app/models/foreman_docker/docker.rb +2 -0
- data/app/models/service/containers.rb +2 -2
- data/app/views/api/v2/registries/main.json.rabl +1 -1
- data/app/views/containers/_list.html.erb +1 -1
- data/db/migrate/20141010173220_create_docker_images.rb +1 -1
- data/db/migrate/20141024163003_create_docker_registries.rb +0 -2
- data/db/migrate/20141209182008_remove_docker_tables.rb +1 -1
- data/db/migrate/20141222113313_create_wizard_states.rb +3 -5
- data/lib/foreman_docker/engine.rb +4 -2
- data/lib/foreman_docker/version.rb +1 -1
- data/test/functionals/api/v2/containers_controller_test.rb +1 -1
- data/test/integration/container_steps_test.rb +2 -2
- data/test/integration/container_test.rb +1 -1
- data/test/units/containers_service_test.rb +1 -1
- data/test/units/registry_api_test.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b3ac12c5dafea1291f34a213907a4ccf7393f88
|
4
|
+
data.tar.gz: b90f1bece1343dab61b41b40d2f96e48aea61ccc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77e84e4899f3fff9d53e71d0c11b20fde50b824abfdd7691a5ffc44dd6c85f7798c808cf2675bfe434de5adc6a13438c4679e334a4742deb26bb9a4a402f3b38
|
7
|
+
data.tar.gz: 98f5a41476938823d8a3fd24f8aea148dfb96de47b471d27cbca2dfd7c36c9f5b696c88bb0a67ef23fdb5ec1030d7454a5ebe0a9aec7be3a044009d0c15d807a
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
AllCops:
|
2
|
+
RunRailsCops: true # always run the rails cops
|
3
|
+
|
4
|
+
# Don't enforce documentation
|
5
|
+
Style/Documentation:
|
6
|
+
Enabled: false
|
7
|
+
|
8
|
+
# Need to support ruby 1.8
|
9
|
+
Style/HashSyntax:
|
10
|
+
EnforcedStyle: hash_rockets
|
11
|
+
|
12
|
+
# Force before_filter until upgrade to Rails 4
|
13
|
+
Rails/ActionFilter:
|
14
|
+
EnforcedStyle: filter
|
15
|
+
|
16
|
+
Metrics/LineLength:
|
17
|
+
Max: 100
|
18
|
+
|
19
|
+
Metrics/MethodLength:
|
20
|
+
Max: 20
|
21
|
+
|
22
|
+
StringLiterals:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Metrics/ClassLength:
|
26
|
+
Max: 200
|
27
|
+
|
28
|
+
Metrics/AbcSize:
|
29
|
+
Enabled: false # should we turn this on?
|
30
|
+
|
31
|
+
Style/MethodCalledOnDoEndBlock:
|
32
|
+
Enabled: true
|
33
|
+
|
34
|
+
Style/DotPosition:
|
35
|
+
EnforcedStyle: 'leading'
|
36
|
+
|
37
|
+
Rails/Date:
|
38
|
+
Exclude:
|
39
|
+
- foreman_docker.gemspec
|
data/README.md
CHANGED
@@ -34,8 +34,6 @@
|
|
34
34
|
* Events stream ([#8037](http://projects.theforeman.org/issues/8037))
|
35
35
|
* Tight integration between Docker hosts [Atomic](http://www.projectatomic.io/) and [CoreOS](http://coreos.com/) and containers ([#7653](http://projects.theforeman.org/issues/7653), [#7652](http://projects.theforeman.org/issues/7652))
|
36
36
|
* Quickstart images - pre-supplied images and configuration ([#7869](http://projects.theforeman.org/issues/7869))
|
37
|
-
* Environment variables support ([#8226](http://projects.theforeman.org/issues/8226))
|
38
|
-
* Support to expose ports during creation or at runtime ([#7864](http://projects.theforeman.org/issues/7864))
|
39
37
|
* Links to other containers ([#7866](http://projects.theforeman.org/issues/7866))
|
40
38
|
* API ([#7874](http://projects.theforeman.org/issues/7874))
|
41
39
|
* [Hammer CLI](http://github.com/theforeman/hammer-cli-foreman) support ([#8227](http://projects.theforeman.org/issues/8227))
|
@@ -20,7 +20,7 @@ module Api
|
|
20
20
|
if params[:compute_resource_id].present?
|
21
21
|
scoped = Container.where(:compute_resource_id => params[:compute_resource_id])
|
22
22
|
else
|
23
|
-
scoped = Container.
|
23
|
+
scoped = Container.where(nil)
|
24
24
|
end
|
25
25
|
@containers = scoped.search_for(params[:search], :order => params[:order])
|
26
26
|
.paginate(:page => params[:page])
|
@@ -108,7 +108,7 @@ module Api
|
|
108
108
|
render :json => { :logs => Docker::Container.get(@container.uuid)
|
109
109
|
.logs(:stdout => (params[:stdout] || true),
|
110
110
|
:stderr => (params[:stderr] || false),
|
111
|
-
:tail => (params[:tail]
|
111
|
+
:tail => (params[:tail] || 100)) }
|
112
112
|
end
|
113
113
|
|
114
114
|
api :PUT, '/containers/:id/power', N_('Run power operation on a container')
|
@@ -41,8 +41,8 @@ module Containers
|
|
41
41
|
|
42
42
|
def set_form
|
43
43
|
instance_variable_set(
|
44
|
-
|
45
|
-
|
44
|
+
"@docker_container_wizard_states_#{step}",
|
45
|
+
@state.send(:"#{step}") || @state.send(:"build_#{step}"))
|
46
46
|
end
|
47
47
|
|
48
48
|
def create_container(start = true)
|
@@ -58,9 +58,9 @@ module Containers
|
|
58
58
|
else
|
59
59
|
@docker_container_wizard_states_environment = @state.environment
|
60
60
|
process_error(
|
61
|
-
|
62
|
-
|
63
|
-
|
61
|
+
:error_msg => service.errors.full_messages.join(','),
|
62
|
+
:object => @state.environment,
|
63
|
+
:render => 'environment')
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -96,7 +96,7 @@ class ContainersController < ::ApplicationController
|
|
96
96
|
def container_deletion
|
97
97
|
# Unmanaged container - only present in Compute Resource
|
98
98
|
if params[:compute_resource_id].present?
|
99
|
-
@deleted_identifier
|
99
|
+
@deleted_identifier = params[:id]
|
100
100
|
destroy_compute_resource_vm(params[:compute_resource_id], params[:id])
|
101
101
|
else # Managed container
|
102
102
|
find_container
|
@@ -1,18 +1,30 @@
|
|
1
1
|
class ImageSearchController < ::ApplicationController
|
2
2
|
before_filter :find_resource
|
3
3
|
|
4
|
+
# this is incredibly odd. for some reason, rails sees the
|
5
|
+
# requests ImageSearchControllerTest makes as requests from another host
|
6
|
+
# thus, violating CSRF.
|
7
|
+
protect_from_forgery :only => :nothing if Rails.env.test?
|
8
|
+
|
4
9
|
def auto_complete_repository_name
|
5
10
|
catch_network_errors do
|
6
|
-
|
7
|
-
|
11
|
+
text = if use_hub?
|
12
|
+
hub_image_exists?(params[:search])
|
13
|
+
else
|
14
|
+
registry_image_exists?(params[:search])
|
15
|
+
end
|
16
|
+
render :text => text.to_s
|
8
17
|
end
|
9
18
|
end
|
10
19
|
|
11
20
|
def auto_complete_image_tag
|
12
21
|
catch_network_errors do
|
13
22
|
# This is the format jQuery UI autocomplete expects
|
14
|
-
tags = use_hub?
|
15
|
-
|
23
|
+
tags = if use_hub?
|
24
|
+
hub_auto_complete_image_tags(params[:search])
|
25
|
+
else
|
26
|
+
registry_auto_complete_image_tags(params[:search])
|
27
|
+
end
|
16
28
|
respond_to do |format|
|
17
29
|
format.js do
|
18
30
|
tags.map! { |tag| { :label => CGI.escapeHTML(tag), :value => CGI.escapeHTML(tag) } }
|
@@ -24,8 +36,12 @@ class ImageSearchController < ::ApplicationController
|
|
24
36
|
|
25
37
|
def search_repository
|
26
38
|
catch_network_errors do
|
27
|
-
repositories = use_hub?
|
28
|
-
|
39
|
+
repositories = if use_hub?
|
40
|
+
hub_search_image(params[:search])
|
41
|
+
else
|
42
|
+
registry_search_image(params[:search])
|
43
|
+
end
|
44
|
+
|
29
45
|
respond_to do |format|
|
30
46
|
format.js do
|
31
47
|
render :partial => 'repository_search_results',
|
@@ -75,8 +91,12 @@ class ImageSearchController < ::ApplicationController
|
|
75
91
|
result = ::Service::RegistryApi.new(:url => @registry.url,
|
76
92
|
:user => @registry.username,
|
77
93
|
:password => @registry.password).search(term)
|
78
|
-
registry_name = term.split('/').size > 1
|
79
|
-
|
94
|
+
registry_name = if term.split('/').size > 1
|
95
|
+
term
|
96
|
+
else
|
97
|
+
"library/#{term}"
|
98
|
+
end
|
99
|
+
|
80
100
|
result['results'].any? { |r| r['name'] == registry_name }
|
81
101
|
end
|
82
102
|
|
@@ -30,18 +30,18 @@ module ContainersHelper
|
|
30
30
|
def container_title_actions(container)
|
31
31
|
@compute_resource = container.compute_resource
|
32
32
|
title_actions(
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
33
|
+
button_group(
|
34
|
+
link_to(_('Commit'), '#commit-modal', :'data-toggle' => 'modal')
|
35
|
+
),
|
36
|
+
button_group(container_power_action(container.in_fog)),
|
37
|
+
button_group(
|
38
|
+
display_delete_if_authorized(
|
39
|
+
hash_for_container_path(:id => container.id)
|
40
|
+
.merge(:auth_object => container,
|
41
|
+
:auth_action => 'destroy',
|
42
|
+
:authorizer => authorizer),
|
43
|
+
:confirm => _("Delete %s?") % container.name)
|
44
|
+
)
|
45
45
|
)
|
46
46
|
end
|
47
47
|
|
@@ -69,7 +69,7 @@ module ContainersHelper
|
|
69
69
|
|
70
70
|
def power_on_off_message(vm)
|
71
71
|
_("Are you sure you want to power %{act} %{vm}?") % { :act => action_string(vm).downcase.strip,
|
72
|
-
:vm => vm
|
72
|
+
:vm => vm }
|
73
73
|
end
|
74
74
|
|
75
75
|
def auto_complete_docker_search(name, val, options = {})
|
@@ -77,13 +77,6 @@ module ContainersHelper
|
|
77
77
|
text_field_tag(name, val, options)
|
78
78
|
end
|
79
79
|
|
80
|
-
# Compatibility fixes - to be removed once 1.7 compatibility is no longer required
|
81
|
-
if SETTINGS[:version].to_s.to_f <= 1.7
|
82
|
-
def trunc_with_tooltip(text, length = 32)
|
83
|
-
trunc(text, length)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
80
|
def processes(container)
|
88
81
|
ForemanDocker::Docker.get_container(container).top
|
89
82
|
end
|
@@ -2,6 +2,9 @@ module DockerContainerWizardStates
|
|
2
2
|
class Environment < ActiveRecord::Base
|
3
3
|
self.table_name_prefix = 'docker_container_wizard_states_'
|
4
4
|
belongs_to :wizard_state, :class_name => DockerContainerWizardState
|
5
|
+
|
6
|
+
attr_accessible :tty, :docker_container_wizard_state_id,
|
7
|
+
:attach_stdin, :attach_stdout, :attach_stderr
|
5
8
|
# Fix me:
|
6
9
|
# Validations are off on this association as there's a bug in ::Parameter
|
7
10
|
# that forces validation of reference_id. This will fail on new records as
|
@@ -2,6 +2,8 @@ module DockerContainerWizardStates
|
|
2
2
|
class Preliminary < ActiveRecord::Base
|
3
3
|
include Taxonomix
|
4
4
|
|
5
|
+
attr_accessible :wizard_state, :compute_resource_id
|
6
|
+
|
5
7
|
self.table_name_prefix = 'docker_container_wizard_states_'
|
6
8
|
belongs_to :wizard_state, :class_name => DockerContainerWizardState,
|
7
9
|
:foreign_key => :docker_container_wizard_state_id
|
@@ -10,14 +12,14 @@ module DockerContainerWizardStates
|
|
10
12
|
|
11
13
|
def used_location_ids
|
12
14
|
Location.joins(:taxable_taxonomies).where(
|
13
|
-
|
14
|
-
|
15
|
+
'taxable_taxonomies.taxable_type' => 'DockerContainerWizardStates::Preliminary',
|
16
|
+
'taxable_taxonomies.taxable_id' => id).pluck("#{Taxonomy.table_name}.id")
|
15
17
|
end
|
16
18
|
|
17
19
|
def used_organization_ids
|
18
20
|
Organization.joins(:taxable_taxonomies).where(
|
19
|
-
|
20
|
-
|
21
|
+
'taxable_taxonomies.taxable_type' => 'DockerContainerWizardStates::Preliminary',
|
22
|
+
'taxable_taxonomies.taxable_id' => id).pluck("#{Taxonomy.table_name}.id")
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
@@ -3,9 +3,13 @@ class DockerRegistry < ActiveRecord::Base
|
|
3
3
|
include Taxonomix
|
4
4
|
include Encryptable
|
5
5
|
|
6
|
+
attr_accessible :name, :url, :username, :password, :locations, :organizations
|
7
|
+
|
6
8
|
has_many :containers, :foreign_key => "registry_id", :dependent => :destroy
|
7
9
|
encrypts :password
|
8
10
|
|
11
|
+
attr_accessible :name, :url, :username, :password, :locations, :organizations
|
12
|
+
|
9
13
|
validates_lengths_from_database
|
10
14
|
validates :name, :presence => true, :uniqueness => true
|
11
15
|
validates :url, :presence => true, :uniqueness => true
|
@@ -15,14 +19,14 @@ class DockerRegistry < ActiveRecord::Base
|
|
15
19
|
|
16
20
|
def used_location_ids
|
17
21
|
Location.joins(:taxable_taxonomies).where(
|
18
|
-
|
19
|
-
|
22
|
+
'taxable_taxonomies.taxable_type' => 'DockerRegistry',
|
23
|
+
'taxable_taxonomies.taxable_id' => id).pluck("#{Taxonomy.table_name}.id")
|
20
24
|
end
|
21
25
|
|
22
26
|
def used_organization_ids
|
23
27
|
Organization.joins(:taxable_taxonomies).where(
|
24
|
-
|
25
|
-
|
28
|
+
'taxable_taxonomies.taxable_type' => 'DockerRegistry',
|
29
|
+
'taxable_taxonomies.taxable_id' => id).pluck("#{Taxonomy.table_name}.id")
|
26
30
|
end
|
27
31
|
|
28
32
|
def prefixed_url(image_name)
|
data/app/models/exposed_port.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
class ExposedPort < Parameter
|
2
|
+
attr_accessible :priority
|
2
3
|
# The Parameter class from which ExposedPort class inherits,validates for the
|
3
4
|
# presence of an associated domain, operating system, host or host group. We
|
4
5
|
# will have to reset those validations for the ExposedPort class as they do
|
@@ -2,6 +2,8 @@ require 'resolv'
|
|
2
2
|
|
3
3
|
module ForemanDocker
|
4
4
|
class Dns < Parameter
|
5
|
+
attr_accessible :priority
|
6
|
+
|
5
7
|
# The Parameter class from which this Dns class inherits,validates for the
|
6
8
|
# presence of an associated domain, operating system, host or host group.
|
7
9
|
# We will have to reset those validations for the Dns class as they do not
|
@@ -27,7 +27,7 @@ module Service
|
|
27
27
|
container = Container.new(wizard_state.container_attributes) do |r|
|
28
28
|
# eagerly load environment variables and exposed ports configuration
|
29
29
|
state = DockerContainerWizardState.includes(
|
30
|
-
|
30
|
+
:environment => [:environment_variables, :exposed_ports]).find(wizard_state.id)
|
31
31
|
|
32
32
|
load_environment_variables(state, r)
|
33
33
|
load_exposed_ports(state, r)
|
@@ -66,7 +66,7 @@ module Service
|
|
66
66
|
|
67
67
|
def destroy_wizard_state(wizard_state)
|
68
68
|
wizard_state.destroy
|
69
|
-
DockerContainerWizardState.destroy_all(["updated_at < ?", (Time.now - 24.hours)])
|
69
|
+
DockerContainerWizardState.destroy_all(["updated_at < ?", (Time.now.utc - 24.hours)])
|
70
70
|
end
|
71
71
|
|
72
72
|
def load_environment_variables(state, r)
|
@@ -15,7 +15,7 @@
|
|
15
15
|
<tbody>
|
16
16
|
<% containers.each do |container| %>
|
17
17
|
<tr>
|
18
|
-
<td class="ellipsis text-center"><%= link_to_container(container, resource) %></td>
|
18
|
+
<td class="ellipsis text-center" id="<%= container.name[1..-1] %>"><%= link_to_container(container, resource) %></td>
|
19
19
|
<td class="hidden-tablet hidden-xs text-center">
|
20
20
|
<span <%= vm_power_class(container.ready?) %>><%= vm_state(container) %></span></td>
|
21
21
|
<td class="hidden-tablet hidden-xs text-center"><%= trunc_with_tooltip(container.image_friendly_name) %></td>
|
@@ -3,13 +3,11 @@ class CreateDockerRegistries < ActiveRecord::Migration
|
|
3
3
|
create_table :docker_registries do |t|
|
4
4
|
t.string :url
|
5
5
|
t.string :name
|
6
|
-
t.integer :id
|
7
6
|
t.string :description
|
8
7
|
t.timestamps
|
9
8
|
end
|
10
9
|
|
11
10
|
create_table :docker_image_docker_registries do |t|
|
12
|
-
t.integer :id
|
13
11
|
t.integer :docker_registry_id
|
14
12
|
t.integer :docker_image_id
|
15
13
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
class CreateWizardStates < ActiveRecord::Migration
|
2
2
|
# rubocop:disable Metrics/MethodLength
|
3
3
|
def change
|
4
|
-
create_table :docker_container_wizard_states
|
5
|
-
t.timestamps
|
6
|
-
end
|
4
|
+
create_table :docker_container_wizard_states, &:timestamps
|
7
5
|
|
8
6
|
create_table :docker_container_wizard_states_preliminaries do |t|
|
9
7
|
t.integer :compute_resource_id, :null => false
|
@@ -11,7 +9,7 @@ class CreateWizardStates < ActiveRecord::Migration
|
|
11
9
|
t.timestamps
|
12
10
|
end
|
13
11
|
|
14
|
-
create_table
|
12
|
+
create_table :docker_container_wizard_states_images do |t|
|
15
13
|
t.integer :registry_id
|
16
14
|
t.string :repository_name, :null => false
|
17
15
|
t.string :tag, :null => false
|
@@ -19,7 +17,7 @@ class CreateWizardStates < ActiveRecord::Migration
|
|
19
17
|
t.timestamps
|
20
18
|
end
|
21
19
|
|
22
|
-
create_table
|
20
|
+
create_table :docker_container_wizard_states_configurations do |t|
|
23
21
|
t.string :name
|
24
22
|
t.string :command
|
25
23
|
t.string :entrypoint
|
@@ -14,7 +14,9 @@ module ForemanDocker
|
|
14
14
|
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
15
15
|
|
16
16
|
initializer 'foreman_docker.load_app_instance_data' do |app|
|
17
|
-
|
17
|
+
ForemanDocker::Engine.paths['db/migrate'].existent.each do |path|
|
18
|
+
app.config.paths['db/migrate'] << path
|
19
|
+
end
|
18
20
|
end
|
19
21
|
|
20
22
|
initializer "foreman_docker.assets.precompile" do |app|
|
@@ -39,7 +41,7 @@ module ForemanDocker
|
|
39
41
|
|
40
42
|
initializer 'foreman_docker.register_plugin', :after => :finisher_hook do
|
41
43
|
Foreman::Plugin.register :foreman_docker do
|
42
|
-
requires_foreman '
|
44
|
+
requires_foreman '>= 1.11'
|
43
45
|
compute_resource ForemanDocker::Docker
|
44
46
|
|
45
47
|
sub_menu :top_menu, :containers_menu, :caption => N_('Containers'),
|
@@ -34,7 +34,7 @@ module Api
|
|
34
34
|
assert_equal ActiveSupport::JSON.decode(response.body)['logs'], fake_container.logs
|
35
35
|
end
|
36
36
|
|
37
|
-
test 'show returns information about container'
|
37
|
+
test 'show returns information about container' do
|
38
38
|
get :show, :id => @container.id
|
39
39
|
assert_response :success
|
40
40
|
assert_equal ActiveSupport::JSON.decode(response.body)['name'], 'foo'
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ContainerStepsTest < ActionDispatch::IntegrationTest
|
4
|
-
test 'shows a link to a new compute resource if none is available'
|
4
|
+
test 'shows a link to a new compute resource if none is available' do
|
5
5
|
visit new_container_path
|
6
6
|
assert has_selector?("div.alert", :text => 'Please add a new one')
|
7
7
|
end
|
8
8
|
|
9
|
-
test 'shows taxonomies tabs'
|
9
|
+
test 'shows taxonomies tabs' do
|
10
10
|
visit new_container_path
|
11
11
|
assert has_selector?("a", :text => 'Locations') if SETTINGS[:locations_enabled]
|
12
12
|
assert has_selector?("a", :text => 'Organizations') if SETTINGS[:organizations_enabled]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ContainerIntegrationTest < ActionDispatch::IntegrationTest
|
4
|
-
test 'redirects to a new compute resource if none is available'
|
4
|
+
test 'redirects to a new compute resource if none is available' do
|
5
5
|
visit containers_path
|
6
6
|
assert_equal current_path, new_compute_resource_path
|
7
7
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_plugin_helper'
|
2
2
|
|
3
|
-
class ContainersServiceTest <
|
3
|
+
class ContainersServiceTest < ActiveSupport::TestCase
|
4
4
|
setup do
|
5
5
|
@state = DockerContainerWizardState.create! do |s|
|
6
6
|
s.build_preliminary(:compute_resource_id => FactoryGirl.create(:docker_cr).id,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lobato, Amos Benari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docker-api
|
@@ -45,6 +45,7 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- ".rubocop.yml"
|
48
49
|
- LICENSE
|
49
50
|
- README.md
|
50
51
|
- Rakefile
|
@@ -187,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
188
|
version: '0'
|
188
189
|
requirements: []
|
189
190
|
rubyforge_project:
|
190
|
-
rubygems_version: 2.
|
191
|
+
rubygems_version: 2.2.2
|
191
192
|
signing_key:
|
192
193
|
specification_version: 4
|
193
194
|
summary: Provision and manage Docker containers and images from Foreman
|
@@ -208,3 +209,4 @@ test_files:
|
|
208
209
|
- test/test_plugin_helper.rb
|
209
210
|
- test/integration/container_steps_test.rb
|
210
211
|
- test/integration/container_test.rb
|
212
|
+
- ".rubocop.yml"
|