Skip to content
Snippets Groups Projects
Verified Commit 4c6f30bf authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Clean up code and add vTPM keys from configuration

parent 10e530fd
No related branches found
No related tags found
No related merge requests found
Pipeline #79878 failed
/.bundle/
/vendor/
/.yardoc
/Gemfile.lock
/_yardoc/
......@@ -7,3 +8,5 @@
/pkg/
/spec/reports/
/tmp/
/public/
/*.gem
---
variables:
CI_FOREMAN_PLUGIN: foreman_vmware_advanced
# CI_FOREMAN_WEB: true
POSTGRES_DB: test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
services:
- name: postgres:13-alpine
alias: db
image: ruby:2.7
lint:
cache:
paths:
- vendor/ruby
when: always
script:
- gem install bundler -N
- bundle config set path vendor
- bundle install -j $(nproc) --retry=3
- bundle exec rubocop app/ lib/
test:
parallel:
matrix:
- FOREMAN_VERSION:
# - 2.5-stable
- 3.0-stable
# - 3.1-stable
# - 3.2-stable
# - 3.3-stable
- 3.4-stable
cache:
key: foreman-$FOREMAN_VERSION
paths:
- vendor/ruby
- node_modules
when: always
variables:
RAILS_ENV: test
DATABASE_URL: postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@db/$POSTGRES_DB
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: "true"
before_script:
# Set up Ruby build dependencies
- apt-get update -yqq
- apt-get install -yqq build-essential libcurl4-openssl-dev postgresql-client-13 zlib1g-dev libpq-dev
- apt-get install -yqq --no-install-recommends npm
- gem install bundler -N
# Install foreman
- FOREMAN_DIR="$(dirname "$CI_PROJECT_DIR")/foreman"
- git clone -b "$FOREMAN_VERSION" --depth=1 -- https://github.com/theforeman/foreman "$FOREMAN_DIR"
- cd "$FOREMAN_DIR"
- bundle config set path "$CI_PROJECT_DIR/vendor"
- bundle config set without console development ec2 gce journald libvirt openstack ovirt sqlite vmware
- bundle install -j $(nproc) --retry=3
# Configure database
- bundle exec rake db:create
- bundle exec rake db:migrate
# Install plugin
- "echo \"gem '$CI_FOREMAN_PLUGIN', path: '$CI_PROJECT_DIR'\" > bundler.d/local.rb"
- bundle install -j $(nproc) --retry=3
- bundle exec rake db:migrate
- |
if [ -n "$CI_FOREMAN_WEB" ]; then
mkdir -p "$CI_PROJECT_DIR/node_modules"
ln -s "$CI_PROJECT_DIR/node_modules" node_modules
npm install --legacy-peer-deps
bundle exec rake webpack:compile
fi
script:
# Foreman-side tasks
- cd "$FOREMAN_DIR"
- |
if [ -d "$CI_PROJECT_DIR/test" ]; then
bundle exec rake "test:$CI_FOREMAN_PLUGIN"
[ -d 'jenkins/reports' ] && mv jenkins/reports "$CI_PROJECT_DIR"
fi
- '[ -d "$CI_PROJECT_DIR/app/assets" ] && RAILS_ENV=production bundle exec rake "plugin:assets:precompile[$CI_FOREMAN_PLUGIN]"'
# Plugin-side tasks
- cd "$CI_PROJECT_DIR"
- gem build $CI_FOREMAN_PLUGIN.gemspec
artifacts:
paths:
- '*.gem'
- 'public'
reports:
junit: reports/unit/*.xml
---
AllCops:
NewCops: enable
Style/Documentation:
Enabled: false
Metrics/AbcSize:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
Metrics/PerceivedComplexity:
Enabled: false
sudo: false
language: ruby
rvm:
- 2.1.9
before_install: gem install bundler -v 1.13.7
......@@ -6,15 +6,18 @@ module ForemanVmwareAdvanced
args = super(inp_args)
args[:extra_config] = (args[:extra_config] || {}).merge(
'bios.bootOrder'.to_sym => 'ethernet0',
'svga.autodetect'.to_sym => 'TRUE'
'bios.bootOrder': 'ethernet0',
'svga.autodetect': 'TRUE'
)
if args[:guest_id]&.start_with?('win')
args[:extra_config]['disk.EnableUUID'.to_sym] = 'TRUE'
args[:extra_config]['vtpm.present'.to_sym] = 'TRUE'
if SETTINGS[:vtpm_csr] && SETTINGS[:vtpm_crt]
args[:extra_config][:'vtpm.present'] = 'TRUE'
args[:extra_config][:'vtpm.ekCSR'] = SETTINGS[:vtpm_csr]
args[:extra_config][:'vtpm.ekCRT'] = SETTINGS[:vtpm_crt]
end
args[:extra_config][:'disk.EnableUUID'] = 'TRUE' if args[:guest_id]&.start_with?('win')
args
end
end
......
# coding: utf-8
# frozen_string_literal: true
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'foreman_vmware_advanced/version'
require_relative 'foreman_vmware_advanced/version'
Gem::Specification.new do |spec|
spec.name = 'foreman_vmware_advanced'
......@@ -13,14 +11,12 @@ Gem::Specification.new do |spec|
spec.summary = 'Adds advanced values to the VMWare vmx config'
spec.description = spec.summary
spec.homepage = 'https://github.com/ananace/foreman_vmware_advanced'
spec.license = 'MIT'
spec.license = 'GPL-3.0'
spec.files = `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(test|spec|features)/})
end
spec.require_paths = ['lib']
spec.files = Dir['{app,lib}/**/*.{rake,rb}'] + %w[LICENSE.txt Rakefile README.md]
spec.add_development_dependency 'bundler', '~> 1.13'
spec.add_development_dependency 'minitest', '~> 5.0'
spec.add_development_dependency 'rake', '~> 10.0'
spec.add_development_dependency 'rubocop'
spec.add_development_dependency 'rubocop-minitest'
spec.add_development_dependency 'rubocop-performance'
spec.add_development_dependency 'rubocop-rails'
end
require 'test_helper'
class ForemanVmwareAdvancedTest < Minitest::Test
def test_that_it_has_a_version_number
refute_nil ::ForemanVmwareAdvanced::VERSION
end
def test_it_does_something_useful
assert false
end
end
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'foreman_vmware_advanced'
require 'minitest/autorun'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment