jimbodragon_acceptance_test 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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