jimbodragon_acceptance_test 0.1.5 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2ea6e5ed5ed373bfc97363b0051de19cfa7247ddaf6a5226040f43a19ffce32
4
- data.tar.gz: 7a0a72409933cfbcf6aeb87e6215d34169c1e85c5210fb208a254f6bdc77d4ac
3
+ metadata.gz: b21f9158f0f48f3b3d08507b9e9463ca98f46e599b016db8ad2ae514f5f1351d
4
+ data.tar.gz: ea6950f65cfcefc8da648edaf47680254b1b5e6c094e9de9bc2f56c04598e62a
5
5
  SHA512:
6
- metadata.gz: f24402259bd6c326aba3afc10369f731230350d188647eff6ca6c43e57e4876954dd10dc9888993cc049ca166c0af4ac6b17d80bdabaa5a42a09f708f92729ac
7
- data.tar.gz: b65185f6e11ae13102d4e4b3702b170266273e7373993e6a6155e23e89db84fac3c496d4a6c6c174a68510258cd9d1421f3b71c21a4de0d1aecb69af831d0544
6
+ metadata.gz: 0f5cb27f3d204535f57f76b5b03089e8d7086df76f8c5512110e5a6ea0b6095d483eeaa75b84f34ae0d0ef6077827a8d90793be9fd3b549ddf17f55cbdb1cab2
7
+ data.tar.gz: edb7c1952014788e3059c907f762fcc6919f03aa4516dee00663fc59c7d46895006d437377e342f5d60db739c015398acd7ef1c16612b371b9284eea90745b66
checksums.yaml.gz.sig CHANGED
Binary file
data/client.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require_relative 'env' if ::File.exist?('env.rb')
1
2
  require_relative 'lib/jimbodragon'
2
3
 
3
4
  JimboDragon.converge(self)
data/knife.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require_relative 'env' if ::File.exist?('env.rb')
1
2
  require_relative 'lib/jimbodragon'
2
3
 
3
4
  JimboDragon.converge(self)
@@ -0,0 +1,52 @@
1
+
2
+ require 'chef'
3
+
4
+ require_relative 'knife'
5
+
6
+ module JimboDragon
7
+ module Convergence
8
+ def install_chef
9
+ %w(
10
+ analytics
11
+ angry-omnibus-toolchain
12
+ angrychef
13
+ automate
14
+ chef
15
+ chef-foundation
16
+ chef-universal
17
+ chef-backend
18
+ chef-server
19
+ chef-server-ha-provisioning
20
+ chef-workstation
21
+ chefdk
22
+ compliance
23
+ delivery
24
+ ha
25
+ harmony
26
+ inspec
27
+ mac-bootstrapper
28
+ manage
29
+ marketplace
30
+ omnibus-toolchain
31
+ omnibus-gcc
32
+ private-chef
33
+ push-jobs-client
34
+ push-jobs-server
35
+ reporting
36
+ supermarket
37
+ sync
38
+ ).each do |chef_application|
39
+ # system('curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -s once -P ' + chef_application)
40
+ end
41
+ system('curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -s once -P chef')
42
+ end
43
+
44
+ def prepare_project
45
+ install_chef
46
+ end
47
+
48
+ def finalize_project
49
+ # system('chef exec cucumber')
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,13 @@
1
+ module JimboDragon
2
+ class Deploy
3
+ attr_accessor :deploy_commands
4
+
5
+ def initialize
6
+ @deploy_commands = []
7
+ end
8
+
9
+ def execute_deploy_command
10
+ deploy_commands.each { |command| system command }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,39 @@
1
+
2
+ puts "ENV['ENVIRONMENT_FILE'] = #{ENV['ENVIRONMENT_FILE']}"
3
+ require_relative ENV['ENVIRONMENT_FILE'] if !ENV['ENVIRONMENT_FILE'].nil? && ::File.exist?(ENV['ENVIRONMENT_FILE'])
4
+
5
+ module JimboDragon
6
+ module JimboEnv
7
+ CUCUMBER_PUBLISH_ENABLED = ENV['CUCUMBER_PUBLISH_ENABLED'].nil? ? true : ENV['CUCUMBER_PUBLISH_ENABLED']
8
+ CUCUMBER_PUBLISH_QUIET = ENV['CUCUMBER_PUBLISH_QUIET'].nil? ? false : ENV['CUCUMBER_PUBLISH_QUIET']
9
+ CUCUMBER_PUBLISH_TOKEN = ENV['CUCUMBER_PUBLISH_TOKEN'].nil? ? 'Missing private CUCUMBER_PUBLISH_TOKEN' : ENV['CUCUMBER_PUBLISH_TOKEN']
10
+
11
+ CIRCLECI_TOKEN = ENV['CIRCLECI_TOKEN'].nil? ? 'Missing private CIRCLECI_TOKEN' : ENV['CIRCLECI_TOKEN']
12
+ CIRCLECI_API_TOKEN = ENV['CIRCLECI_API_TOKEN'].nil? ? 'Missing private CIRCLECI_API_TOKEN' : ENV['CIRCLECI_API_TOKEN']
13
+ CIRCLECI_ORG_OPTION = ENV['CIRCLECI_ORG_OPTION'].nil? ? true.to_s.freeze : ENV['CIRCLECI_ORG_OPTION']
14
+
15
+ HAB_AUTH_TOKEN = ENV['HAB_AUTH_TOKEN'].nil? ? 'Missing private HAB_AUTH_TOKEN' : ENV['HAB_AUTH_TOKEN']
16
+ HAB_ORIGIN = ENV['HAB_ORIGIN'].nil? ? 'Missing private HAB_ORIGIN' : ENV['HAB_ORIGIN']
17
+ HAB_LICENSE = ENV['HAB_LICENSE'].nil? ? 'accept'.freeze : ENV['HAB_LICENSE']
18
+
19
+ GITHUB_SSH_PRIVATE_KEY = ENV['GITHUB_SSH_PRIVATE_KEY'].nil? ? 'Missing private GITHUB_SSH_PRIVATE_KEY' : ENV['GITHUB_SSH_PRIVATE_KEY']
20
+ GITHUB_SSH_PUBLIC_KEY = ENV['GITHUB_SSH_PUBLIC_KEY'].nil? ? 'Missing private GITHUB_SSH_PUBLIC_KEY' : ENV['GITHUB_SSH_PUBLIC_KEY']
21
+
22
+ AWS_ACCESS_KEY_ID = ENV['AWS_ACCESS_KEY_ID'].nil? ? 'Missing private AWS_ACCESS_KEY_ID' : ENV['AWS_ACCESS_KEY_ID']
23
+ AWS_SECRET_ACCESS_KEY = ENV['AWS_SECRET_ACCESS_KEY'].nil? ? 'Missing private AWS_SECRET_ACCESS_KEY' : ENV['AWS_SECRET_ACCESS_KEY']
24
+
25
+ DOCKERHUB_USER = ENV['DOCKERHUB_USER'].nil? ? 'Missing private DOCKERHUB_USER' : ENV['DOCKERHUB_USER']
26
+ DOCKERHUB_PASSWORD = ENV['DOCKERHUB_PASSWORD'].nil? ? 'Missing private DOCKERHUB_PASSWORD' : ENV['DOCKERHUB_PASSWORD']
27
+ DOCKER_PASS = ENV['DOCKER_PASS'].nil? ? DOCKERHUB_USER : ENV['DOCKER_PASS']
28
+ DOCKER_USER = ENV['DOCKER_USER'].nil? ? DOCKERHUB_PASSWORD : ENV['DOCKER_USER']
29
+ DO_CHECK = ENV['DO_CHECK'].nil? ? true.to_s.freeze : ENV['DO_CHECK']
30
+
31
+ KNIFE_USER = ENV['KNIFE_USER'].nil? ? 'Missing private KNIFE_USER' : ENV['KNIFE_USER']
32
+ NAMED_RUN_LIST = ENV['NAMED_RUN_LIST'].nil? ? 'Missing private NAMED_RUN_LIST' : ENV['NAMED_RUN_LIST']
33
+ GEM_PROJECT_NAME = ENV['GEM_PROJECT_NAME'].nil? ? 'Missing private GEM_PROJECT_NAME' : ENV['GEM_PROJECT_NAME']
34
+
35
+ ENVIRONMENT_FILE = ENV['ENVIRONMENT_FILE'].nil? ? abort!('Missing private ENVIRONMENT_FILE') : ENV['ENVIRONMENT_FILE']
36
+
37
+ GEM_PROJECT_VERSION = ENV['GEM_PROJECT_VERSION'].nil? ? ::File.read('VERSION').freeze : ENV['GEM_PROJECT_VERSION']
38
+ end
39
+ end
@@ -0,0 +1,79 @@
1
+
2
+ require_relative 'jimboenv'
3
+
4
+ module JimboDragon
5
+ class Knife
6
+ attr_accessor :knife_or_chefclient
7
+
8
+ def initialize(knife_or_chefclient)
9
+ @knife_or_chefclient = knife_or_chefclient
10
+ end
11
+
12
+ def send_to_chef(method, parameter)
13
+ Chef::Log.debug("Adding #{method} with value #{parameter}")
14
+ knife_or_chefclient.send(method, parameter)
15
+ end
16
+
17
+ def load_knife
18
+ send_to_chef(:chef_license, 'accept')
19
+ send_to_chef(:log_level, :info)
20
+ send_to_chef(:node_name, JimboDragon::JimboEnv::KNIFE_USER)
21
+
22
+ send_to_chef(:client_key, chef_path(::File.join([
23
+ 'profiles.d',
24
+ JimboDragon::JimboEnv::KNIFE_USER,
25
+ 'chef',
26
+ "#{JimboDragon::JimboEnv::KNIFE_USER}.pem",
27
+ ])))
28
+ send_to_chef(:chef_server_url, 'https://api.chef.io/organizations/jimbodragon')
29
+
30
+ send_to_chef(:chef_repo_path, chef_repo_path)
31
+ send_to_chef(:cookbook_path, [
32
+ chef_path('cookbooks'),
33
+ chef_path('libraries'),
34
+ chef_path('resources'),
35
+ chef_path('berks-cookbooks'),
36
+ ]
37
+ )
38
+ send_to_chef(:data_bags_path, chef_path('data_bags'))
39
+ send_to_chef(:environment_path, chef_path('environments'))
40
+ send_to_chef(:node_path, chef_path('nodes'))
41
+ send_to_chef(:policy_group_path, chef_path('policy_group'))
42
+ send_to_chef(:policy_path, chef_path('policies'))
43
+ send_to_chef(:role_path, chef_path('roles'))
44
+ send_to_chef(:log_location, chef_path(::File.join(['logs', "#{JimboDragon::JimboEnv::KNIFE_USER}.log"])))
45
+ send_to_chef(:cache_path, chef_path('.chef/local-mode-cache'))
46
+ send_to_chef(:checksum_path, chef_path('.chef/local-mode-cache/checksums'))
47
+ send_to_chef(:acl_path, chef_path('acls'))
48
+ send_to_chef(:client_d_dir, chef_path('.chef/client.d'))
49
+ send_to_chef(:client_key_path, chef_path('client_keys'))
50
+ send_to_chef(:client_path, chef_path('clients'))
51
+ send_to_chef(:color, true)
52
+ send_to_chef(:config_d_dir, chef_path('.chef/config.d'))
53
+ send_to_chef(:config_dir, chef_path('.chef'))
54
+ send_to_chef(:container_path, chef_path('containers'))
55
+ send_to_chef(:cookbook_artifact_path, chef_path('cookbook_artifacts'))
56
+ send_to_chef(:enable_reporting, false)
57
+ send_to_chef(:file_backup_path, chef_path('.chef/local-mode-cache/backup'))
58
+ send_to_chef(:file_cache_path, chef_path('.chef/local-mode-cache/cache'))
59
+ send_to_chef(:group_path, chef_path('groups'))
60
+ send_to_chef(:lockfile, chef_path('.chef/local-mode-cache/cache/chef-client-running.pid'))
61
+ send_to_chef(:ohai_segment_plugin_path, chef_path('.chef/ohai/cookbook_plugins'))
62
+ send_to_chef(:solo_d_dir, chef_path('.chef/solo.d'))
63
+ send_to_chef(:user_path, chef_path('users'))
64
+ send_to_chef(:syntax_check_cache_path, chef_path('.chef/syntaxcache'))
65
+ send_to_chef(:trusted_certs_dir, chef_path('.chef/trusted_certs'))
66
+ send_to_chef(:validation_client_name, "#{JimboDragon::JimboEnv::HAB_ORIGIN}-validator")
67
+ send_to_chef(:data_bag_encrypt_version, 3)
68
+ send_to_chef(:named_run_list, JimboDragon::JimboEnv::NAMED_RUN_LIST)
69
+ end
70
+
71
+ def chef_repo_path
72
+ ::File.expand_path(::File.join(::File.dirname(JimboDragon::JimboEnv::ENVIRONMENT_FILE), 'chef_repo'))
73
+ end
74
+
75
+ def chef_path(relative_chef_repo_path)
76
+ ::File.expand_path(::File.join(chef_repo_path, relative_chef_repo_path))
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,15 @@
1
+ require_relative ::File.expand_path(::File.join(%w(lib jimbodragon))) unless defined?(JimboDragon)
2
+ require_relative ::File.expand_path(::File.join([::File.dirname(__FILE__)] + %w(.. jimbodragon))) unless defined?(JimboDragon)
3
+
4
+ module JimboDragon
5
+ class Main
6
+ attr_reader :knife_or_chefclient
7
+ def initialize(knife_or_chefclient)
8
+ @knife_or_chefclient = knife_or_chefclient
9
+ end
10
+
11
+ def converge
12
+ JimboDragon.converge(self)
13
+ end
14
+ end
15
+ end
data/lib/jimbodragon.rb CHANGED
@@ -1,48 +1,13 @@
1
-
2
- require_relative ENV['ENVIRONMENT_FILE'] if !ENV['ENVIRONMENT_FILE'].nil? && ::File.exist?(ENV['ENVIRONMENT_FILE'])
1
+ require_relative 'jimbodragon/main'
3
2
 
4
3
  require_relative 'jimbodragon/convergence'
5
4
  require_relative 'jimbodragon/deploy'
6
- require_relative 'jimbodragon/main'
7
- require_relative 'jimbodragon/test/acceptance/cucumber'
5
+ require_relative 'jimbodragon/knife'
8
6
 
9
7
  module JimboDragon
10
- CUCUMBER_PUBLISH_ENABLED = ENV['CUCUMBER_PUBLISH_ENABLED'].nil? ? true : ENV['CUCUMBER_PUBLISH_ENABLED']
11
- CUCUMBER_PUBLISH_QUIET = ENV['CUCUMBER_PUBLISH_QUIET'].nil? ? false : ENV['CUCUMBER_PUBLISH_QUIET']
12
- CUCUMBER_PUBLISH_TOKEN = ENV['CUCUMBER_PUBLISH_TOKEN'].nil? ? puts('Missing private CUCUMBER_PUBLISH_TOKEN') : ENV['CUCUMBER_PUBLISH_TOKEN']
13
-
14
- CIRCLECI_TOKEN = ENV['CIRCLECI_TOKEN'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['CIRCLECI_TOKEN']
15
- CIRCLECI_API_TOKEN = ENV['CIRCLECI_API_TOKEN'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['CIRCLECI_API_TOKEN']
16
- CIRCLECI_ORG_OPTION = ENV['CIRCLECI_ORG_OPTION'].nil? ? true.to_s.freeze : ENV['CIRCLECI_ORG_OPTION']
17
-
18
- HAB_AUTH_TOKEN = ENV['HAB_AUTH_TOKEN'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['HAB_AUTH_TOKEN']
19
- HAB_ORIGIN = ENV['HAB_ORIGIN'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['HAB_ORIGIN']
20
- HAB_LICENSE = ENV['HAB_LICENSE'].nil? ? 'accept'.freeze : ENV['HAB_LICENSE']
21
-
22
- GITHUB_SSH_PRIVATE_KEY = ENV['GITHUB_SSH_PRIVATE_KEY'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['GITHUB_SSH_PRIVATE_KEY']
23
- GITHUB_SSH_PUBLIC_KEY = ENV['GITHUB_SSH_PUBLIC_KEY'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['GITHUB_SSH_PUBLIC_KEY']
24
-
25
- AWS_ACCESS_KEY_ID = ENV['AWS_ACCESS_KEY_ID'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['AWS_ACCESS_KEY_ID']
26
- AWS_SECRET_ACCESS_KEY = ENV['AWS_SECRET_ACCESS_KEY'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['AWS_SECRET_ACCESS_KEY']
27
-
28
- DOCKERHUB_USER = ENV['DOCKERHUB_USER'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['DOCKERHUB_USER']
29
- DOCKERHUB_PASSWORD = ENV['DOCKERHUB_PASSWORD'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['DOCKERHUB_PASSWORD']
30
- DOCKER_PASS = ENV['DOCKER_PASS'].nil? ? DOCKERHUB_USER : ENV['DOCKER_PASS']
31
- DOCKER_USER = ENV['DOCKER_USER'].nil? ? DOCKERHUB_PASSWORD : ENV['DOCKER_USER']
32
- DO_CHECK = ENV['DO_CHECK'].nil? ? true.to_s.freeze : ENV['DO_CHECK']
33
-
34
- KNIFE_USER = ENV['KNIFE_USER'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['KNIFE_USER']
35
- NAMED_RUN_LIST = ENV['NAMED_RUN_LIST'].nil? ? puts('Missing private CIRCLECI_TOKEN') : ENV['NAMED_RUN_LIST']
36
- GEM_PROJECT_NAME = ENV['GEM_PROJECT_NAME'].nil? ? "#{NAMED_RUN_LIST}_acceptance_test".freeze : ENV['GEM_PROJECT_NAME']
37
-
38
- ENVIRONMENT_FILE = ENV['ENVIRONMENT_FILE'].nil? ? __FILE__.freeze : ENV['ENVIRONMENT_FILE']
39
-
40
- GEM_PROJECT_VERSION = ENV['GEM_PROJECT_VERSION'].nil? ? ::File.read('VERSION').freeze : ENV['GEM_PROJECT_VERSION']
41
-
42
8
  def self.converge(knife_or_chefclient)
9
+ extend JimboDragon::JimboEnv
43
10
  extend JimboDragon::Convergence
44
- extend JimboDragon::Knife
45
- extend JimboDragon::Test::Acceptance::Cucumber
46
11
 
47
12
  deploy = JimboDragon::Deploy.new
48
13
 
@@ -50,29 +15,38 @@ module JimboDragon
50
15
  when JimboDragon::Main
51
16
  install_chef
52
17
  [
53
- "chef-client -r #{NAMED_RUN_LIST}",
54
- 'chef exec hab studio build',
55
- "chef gem build #{GEM_PROJECT_NAME}.gemspec",
56
- "chef gem push #{GEM_PROJECT_NAME}-#{GEM_PROJECT_VERSION}.gem",
57
18
  "chef exec knife cookbook upload #{[
58
- NAMED_RUN_LIST,
59
- GEM_PROJECT_NAME,
60
- 'chef-git-server',
61
- 'chefserver',
62
- 'chef_workstation_initialize',
63
- 'infra_chef',
64
- 'jimbodragon',
65
- 'jimbodragon_infra_chef',
66
- 'virtualbox',
67
- ].flatten}",
68
- # 'chef exec circleci config process .circleci/config.yml > process.yml',
69
- # "chef exec circleci local execute -c process.yml --job #{GEM_PROJECT_NAME}",
70
- ].each { |command| deploy.deploy_commands.push command }
71
- # load_knife(knife_or_chefclient)
19
+ JimboDragon::JimboEnv::NAMED_RUN_LIST,
20
+ JimboDragon::JimboEnv::GEM_PROJECT_NAME,
21
+ ].flatten.join(' ')}",
22
+ "chef-client -r #{JimboDragon::JimboEnv::NAMED_RUN_LIST}",
23
+ "chef gem build #{JimboDragon::JimboEnv::GEM_PROJECT_NAME}.gemspec",
24
+ "chef gem push #{JimboDragon::JimboEnv::GEM_PROJECT_NAME}-#{JimboDragon::JimboEnv::GEM_PROJECT_VERSION}.gem",
25
+ "chef gem install #{JimboDragon::JimboEnv::GEM_PROJECT_NAME}",
26
+ ].each do |command|
27
+ puts "Executing command #{command}"
28
+ deploy.deploy_commands.push command
29
+ end
72
30
  else
73
- puts "knife_or_chefclient = #{knife_or_chefclient.class}"
74
- # install_chef
75
- # start_cucumber
31
+ case knife_or_chefclient.to_s
32
+ when 'ChefConfig::Config'
33
+ Chef::Log.warn('Haha Chef is now in use')
34
+ JimboDragon::Knife.new(knife_or_chefclient).load_knife
35
+ else
36
+ if respond_to? :logger
37
+ logger.warn "knife_or_chefclient = #{logger.class}"
38
+ case logger
39
+ when nil
40
+ logger.warn "knife_or_chefclient = #{logger.class}"
41
+ else
42
+ logger.warn "knife_or_chefclient = #{knife_or_chefclient.class}"
43
+ end
44
+ elsif respond_to? :Chef
45
+ Chef::Log.warn "knife_or_chefclient = #{knife_or_chefclient.to_s}"
46
+ else
47
+ puts "knife_or_chefclient = #{knife_or_chefclient.to_s}"
48
+ end
49
+ end
76
50
  end
77
51
 
78
52
  prepare_project
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jimbodragon_acceptance_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Provencher
@@ -35,7 +35,7 @@ cert_chain:
35
35
  +V3ectLBpuoKM8f/ZFMnUPA0mAv5e7J6u9IBwyNj/cy+wLOAbpPdmhoKZXCpQcno
36
36
  ysBBJbi//0tgFWwC4vOaDMch
37
37
  -----END CERTIFICATE-----
38
- date: 2022-12-16 00:00:00.000000000 Z
38
+ date: 2022-12-17 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: chef
@@ -96,6 +96,11 @@ files:
96
96
  - client.rb
97
97
  - knife.rb
98
98
  - lib/jimbodragon.rb
99
+ - lib/jimbodragon/convergence.rb
100
+ - lib/jimbodragon/deploy.rb
101
+ - lib/jimbodragon/jimboenv.rb
102
+ - lib/jimbodragon/knife.rb
103
+ - lib/jimbodragon/main.rb
99
104
  homepage: https://github.com/JimboDragonGit/jimbodragon_acceptance_test
100
105
  licenses:
101
106
  - MIT
metadata.gz.sig CHANGED
Binary file