chef_fixie 0.2.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/chef_fixie +1 -1
- data/doc/BulkFixup.md +1 -1
- data/doc/CommonTasks.md +14 -3
- data/lib/chef_fixie.rb +7 -7
- data/lib/chef_fixie/authz_mapper.rb +26 -28
- data/lib/chef_fixie/authz_objects.rb +51 -41
- data/lib/chef_fixie/bulk_edit_permissions.rb +24 -20
- data/lib/chef_fixie/check_org_associations.rb +56 -58
- data/lib/chef_fixie/config.rb +58 -23
- data/lib/chef_fixie/console.rb +15 -10
- data/lib/chef_fixie/context.rb +2 -4
- data/lib/chef_fixie/sql.rb +12 -12
- data/lib/chef_fixie/sql_objects.rb +74 -34
- data/lib/chef_fixie/utility_helpers.rb +13 -9
- data/lib/chef_fixie/version.rb +1 -1
- data/spec/chef_fixie/acl_spec.rb +23 -25
- data/spec/chef_fixie/assoc_invite_spec.rb +5 -8
- data/spec/chef_fixie/check_org_associations_spec.rb +14 -17
- data/spec/chef_fixie/groups_spec.rb +7 -11
- data/spec/chef_fixie/org_spec.rb +4 -5
- data/spec/chef_fixie/orgs_spec.rb +6 -9
- data/spec/spec_helper.rb +5 -6
- metadata +13 -51
- data/bin/bundler +0 -16
- data/bin/chef-apply +0 -16
- data/bin/chef-client +0 -16
- data/bin/chef-shell +0 -16
- data/bin/chef-solo +0 -16
- data/bin/chef-zero +0 -16
- data/bin/coderay +0 -16
- data/bin/edit_json.rb +0 -16
- data/bin/erubis +0 -16
- data/bin/ffi-yajl-bench +0 -16
- data/bin/fixie~ +0 -231
- data/bin/htmldiff +0 -16
- data/bin/knife +0 -16
- data/bin/ldiff +0 -16
- data/bin/net-dhcp +0 -16
- data/bin/ohai +0 -16
- data/bin/prettify_json.rb +0 -16
- data/bin/pry +0 -16
- data/bin/rackup +0 -16
- data/bin/rake +0 -16
- data/bin/rdoc +0 -16
- data/bin/restclient +0 -16
- data/bin/ri +0 -16
- data/bin/rspec +0 -16
- data/bin/s3sh +0 -16
- data/bin/sequel +0 -16
- data/bin/serverspec-init +0 -16
- data/doc/AccessingSQL.md~ +0 -32
- data/doc/BulkFixup.md~ +0 -28
- data/doc/CommonTasks.md~ +0 -0
- data/doc/GETTING_STARTED.md~ +0 -6
- data/spec/chef_fixie/assoc_invite_spec.rb~ +0 -26
- data/spec/chef_fixie/check_org_associations_spec.rb~ +0 -34
- data/spec/chef_fixie/org_spec.rb~ +0 -53
data/bin/ldiff
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'ldiff' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('diff-lcs', 'ldiff')
|
data/bin/net-dhcp
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'net-dhcp' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('net-dhcp', 'net-dhcp')
|
data/bin/ohai
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'ohai' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('ohai', 'ohai')
|
data/bin/prettify_json.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'prettify_json.rb' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('json', 'prettify_json.rb')
|
data/bin/pry
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'pry' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('pry', 'pry')
|
data/bin/rackup
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rackup' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rack', 'rackup')
|
data/bin/rake
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rake' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rake', 'rake')
|
data/bin/rdoc
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rdoc' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rdoc', 'rdoc')
|
data/bin/restclient
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'restclient' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rest-client', 'restclient')
|
data/bin/ri
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'ri' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rdoc', 'ri')
|
data/bin/rspec
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rspec' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rspec-core', 'rspec')
|
data/bin/s3sh
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 's3sh' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('aws-s3', 's3sh')
|
data/bin/sequel
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'sequel' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('sequel', 'sequel')
|
data/bin/serverspec-init
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'serverspec-init' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('serverspec', 'serverspec-init')
|
data/doc/AccessingSQL.md~
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
|
2
|
-
Basics:
|
3
|
-
-------
|
4
|
-
|
5
|
-
Underneath everything is the Ruby Sequel library; there are a number
|
6
|
-
of ways to access it.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
fixie:0 > o.groups.by_name(cl.id).inner.count
|
11
|
-
1
|
12
|
-
fixie:0 > o.groups.by_name(cl.id).inner.delete
|
13
|
-
1
|
14
|
-
fixie:0 > o.groups.by_name(cl.id).inner.count
|
15
|
-
|
16
|
-
|
17
|
-
* Changing email for user in fixie
|
18
|
-
|
19
|
-
USERS.by_username('anujbiyani').inner.update(:email=>"anujbiyani01@gmail.com")
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
* Adding a record
|
24
|
-
```ruby
|
25
|
-
u=USERS['a_username']
|
26
|
-
o=ORGS['an_org']
|
27
|
-
|
28
|
-
pivotal = USERS['pivotal']
|
29
|
-
|
30
|
-
ASSOCS.inner.insert(:org_id=>o.id, :user_id=>u.id, :last_updated_by=>pivotal.authz_id,
|
31
|
-
:created_at=>:NOW.sql_function, :updated_at=>:NOW.sql_function) )
|
32
|
-
```
|
data/doc/BulkFixup.md~
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
Restoring acl permissions globally
|
2
|
-
============
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
* If a key group is deleted (such as users)
|
8
|
-
|
9
|
-
Create/restore the group
|
10
|
-
|
11
|
-
Add the users/groups back to the group
|
12
|
-
|
13
|
-
Set the group ACL appropriately
|
14
|
-
|
15
|
-
Restore users to the appropriate container ACLs
|
16
|
-
```ruby
|
17
|
-
o = ORGS[THE_ORG]
|
18
|
-
cl = %w(cookbooks data nodes roles environments policies policy_groups cookbook_artifacts)
|
19
|
-
cl.each {|c| o.containers[c].ace_add([:create,:read,:update,:delete], o.groups['users']) }
|
20
|
-
%w(clients).each { |c| o.containers[c].ace_add([:read,:delete], o.groups['users']) }
|
21
|
-
%w(groups containers).each { |c| o.containers[c].ace_add([:read], o.groups['users']) }
|
22
|
-
%w(sandboxes).each { |c| o.containers[c].ace_add([:create], o.groups['users']) }
|
23
|
-
```
|
24
|
-
|
25
|
-
Then update the objects from the containers:
|
26
|
-
```ruby
|
27
|
-
Fixie::BulkEditPermissions::copy_from_containers(o)
|
28
|
-
```
|
data/doc/CommonTasks.md~
DELETED
File without changes
|
data/doc/GETTING_STARTED.md~
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rspec'
|
3
|
-
require "spec_helper"
|
4
|
-
require 'fixie'
|
5
|
-
require 'fixie/config'
|
6
|
-
|
7
|
-
RSpec.describe Fixie::Sql::Orgs, "Organizations access" do
|
8
|
-
let (:test_org_name) { "ponyville" }
|
9
|
-
let (:orgs) { Fixie::Sql::Orgs.new }
|
10
|
-
let (:test_org) { orgs[test_org_name]}
|
11
|
-
|
12
|
-
context "Basic functionality of org accessor" do
|
13
|
-
|
14
|
-
it "Org has a name and id" do
|
15
|
-
expect(test_org.name).to eq(test_org_name)
|
16
|
-
expect(test_org.id).not_to be_nil
|
17
|
-
end
|
18
|
-
|
19
|
-
it "Org has a global admins group" do
|
20
|
-
expect(test_org.global_admins.name).to eq(test_org_name + "_global_admins")
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rspec'
|
3
|
-
require "spec_helper"
|
4
|
-
require 'fixie'
|
5
|
-
require 'fixie/config'
|
6
|
-
|
7
|
-
RSpec.describe Fixie::Sql::Groups, "Group access" do
|
8
|
-
let (:test_org_name) { "ponyville"}
|
9
|
-
let (:orgs) { Fixie::Sql::Orgs.new }
|
10
|
-
let (:users) { Fixie::Sql::Users.new }
|
11
|
-
let (:test_org) { orgs[test_org_name] }
|
12
|
-
|
13
|
-
# TODO this should use a freshly created object and purge it afterwords.
|
14
|
-
# But we need to write the create object feature still
|
15
|
-
|
16
|
-
context "Groups" do
|
17
|
-
let (:testgroup) { test_org.groups['admins'] }
|
18
|
-
let (:adminuser) { users['rainbowdash'] }
|
19
|
-
let (:notadminuser) { users['mary'] }
|
20
|
-
|
21
|
-
it "Members are part of the group" do
|
22
|
-
expect(testgroup.member?(adminuser)).to be true
|
23
|
-
end
|
24
|
-
it "Members are not part of the group" do
|
25
|
-
expect(testgroup.member?(notadminuser)).to be false
|
26
|
-
end
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rspec'
|
3
|
-
require "spec_helper"
|
4
|
-
require 'fixie'
|
5
|
-
require 'fixie/config'
|
6
|
-
|
7
|
-
RSpec.describe Fixie::Sql::Orgs, "Organizations access" do
|
8
|
-
let (:test_org) { "ponyville"}
|
9
|
-
|
10
|
-
context "Basic access to orgs" do
|
11
|
-
let (:orgs) { Fixie::Sql::Orgs.new }
|
12
|
-
it "We find more than one org" do
|
13
|
-
expect(orgs.inner.count).to be > 0
|
14
|
-
end
|
15
|
-
|
16
|
-
it "We can list orgs" do
|
17
|
-
# array matcher requires a splat. (I didn't know this )
|
18
|
-
expect(orgs.list).to include( * %w(acme ponyville wonderbolts) )
|
19
|
-
end
|
20
|
-
it "We can list orgs with a limit" do
|
21
|
-
# array matcher requires a splat. (I didn't know this )
|
22
|
-
expect(orgs.list(1)).to eq(:too_many_results)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "We can find an org" do
|
26
|
-
expect(orgs[test_org].name).to eq(test_org)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
context "Search accessors work correctly" do
|
32
|
-
let (:orgs) { Fixie::Sql::Orgs.new }
|
33
|
-
let (:the_org) { orgs[test_org] }
|
34
|
-
|
35
|
-
it "We can find an org by name" do
|
36
|
-
expect(orgs.by_name(test_org).all.count).to eq(1)
|
37
|
-
expect(orgs.by_name(test_org).all.first.name).to eq(the_org.name)
|
38
|
-
end
|
39
|
-
|
40
|
-
# TODO: Automatically extract this from the filter by field
|
41
|
-
%w(name, id, full_name, authz_id).each do |accessor|
|
42
|
-
it "We can access an org by #{accessor}" do
|
43
|
-
expect(orgs.by_name(test_org).all.count).to eq(1)
|
44
|
-
expect(orgs.by_name(test_org).all.first.name).to eq(the_org.name)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|