Project

General

Profile

Download (7.49 KB) Statistics
| Branch: | Tag: | Revision:
FactoryBot.define do
factory :os_parameter, :parent => :parameter, :class => OsParameter do
type { 'OsParameter' }
end

factory :operatingsystem, class: Operatingsystem do
sequence(:name) { |n| "operatingsystem#{n}" }
sequence(:major) { |n| n }

trait :with_os_defaults do
after(:create) do |os, evaluator|
os.provisioning_templates.each do |tmpl|
FactoryBot.create(:os_default_template,
:operatingsystem => os,
:provisioning_template => tmpl,
:template_kind => tmpl.template_kind)
end
end
end

trait :with_provision do
provisioning_templates do
[FactoryBot.create(:provisioning_template, :template_kind => TemplateKind.find_by_name('provision'))]
end
with_os_defaults
end

trait :with_pxelinux do
provisioning_templates do
[FactoryBot.create(:provisioning_template, :template_kind => TemplateKind.find_by_name('PXELinux'))]
end
with_os_defaults
end

trait :with_grub do
provisioning_templates do
[FactoryBot.create(:provisioning_template, :template_kind => TemplateKind.find_by_name('PXEGrub'))]
end
with_os_defaults
end

trait :with_archs do
architectures { [FactoryBot.create(:architecture)] }
end

trait :with_media do
media { [FactoryBot.create(:medium)] }
end

trait :with_ptables do
ptables { [FactoryBot.create(:ptable)] }
end

trait :with_associations do
with_archs
with_media
with_ptables
end

trait :with_parameter do
after(:create) do |os, evaluator|
FactoryBot.create(:os_parameter, :operatingsystem => os)
end
end

factory :coreos, class: Coreos do
sequence(:name) { 'CoreOS' }
major { '494' }
minor { '5.0' }
type { 'Coreos' }
release_name { 'stable' }
title { 'CoreOS 494.5.0' }
end

factory :flatcar, class: Coreos do
sequence(:name) { 'Flatcar' }
major { '2345' }
minor { '3.0' }
type { 'Coreos' }
release_name { 'stable' }
title { 'Flatcar 2345.3.0' }
end

factory :fcos, class: Fcos do
sequence(:name) { 'FedoraCoreOS' }
major { '32' }
minor { '20200907.3.0' }
type { 'Fcos' }
release_name { 'stable' }
title { 'FedoraCoreOS 32.20200907.3.0' }
end

factory :rhcos, class: Rhcos do
sequence(:name) { 'RedHatCoreOS' }
major { '4' }
minor { '5' }
release_name { '6' }
type { 'Rhcos' }
title { 'RedHatCoreOS 4.5.6' }
end

factory :ubuntu14_10, class: Debian do
sequence(:name) { 'Ubuntu' }
major { '14' }
minor { '10' }
type { 'Debian' }
release_name { 'utopic' }
title { 'Ubuntu Utopic' }
end

factory :ubuntu22_04, class: Debian do
sequence(:name) { 'Ubuntu' }
major { '22.04' }
minor { '' }
type { 'Debian' }
release_name { 'jammy' }
title { 'Ubuntu Jammy' }
end

factory :ubuntu22_04_3, class: Debian do
sequence(:name) { 'Ubuntu' }
major { '22.04' }
minor { '3' }
type { 'Debian' }
release_name { 'jammy' }
title { 'Ubuntu Jammy' }
end

factory :debian7_0, class: Debian do
sequence(:name) { 'Debian' }
major { '7' }
minor { '0' }
type { 'Debian' }
release_name { 'wheezy' }
title { 'Debian Wheezy' }
end

factory :debian7_1, class: Debian do
sequence(:name) { 'Debian' }
major { '7' }
minor { '1' }
type { 'Debian' }
release_name { 'wheezy' }
title { 'Debian Wheezy' }
end

factory :suse, class: Suse do
sequence(:name) { 'OpenSuse' }
major { '11' }
minor { '4' }
type { 'Suse' }
title { 'OpenSuse 11.4' }
end

factory :rhel7_5, class: Redhat do
sequence(:name) { |n| "RedHat#{n}" }
major { '7' }
minor { '5' }
type { 'Redhat' }
title { 'Red Hat Enterprise Linux 7.5' }
end

factory :for_snapshots_centos_7_0, class: Redhat do
name { 'CentOS' }
major { '7' }
minor { '0' }
type { 'Redhat' }
title { 'CentOS 7.0' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:centos_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

factory :for_snapshots_debian_10, class: Debian do
name { 'Debian' }
major { '10' }
minor { '0' }
type { 'Debian' }
release_name { 'buster' }
title { 'Debian Buster' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:debian_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

# pre-netinstall release
factory :for_snapshots_ubuntu_18, class: Debian do
name { 'Ubuntu' }
major { '18' }
minor { '04' }
type { 'Debian' }
release_name { 'bionic' }
title { 'Ubuntu Bionic' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:ubuntu_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

# post-netinstall release
factory :for_snapshots_ubuntu_20, class: Debian do
name { 'Ubuntu' }
major { '20' }
minor { '04' }
type { 'Debian' }
release_name { 'focal' }
title { 'Ubuntu Focal' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:ubuntu_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

factory :for_snapshots_rhel9, class: Redhat do
name { 'RHEL' }
major { '9' }
minor { '0' }
type { 'Redhat' }
title { 'Red Hat Enterprise Linux 9.0' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:rhel_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

factory :for_snapshots_rocky8, class: Redhat do
name { 'Rocky' }
major { '8' }
minor { '0' }
type { 'Redhat' }
title { 'Rocky Linux 8.0' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:rhel_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

factory :for_snapshots_rocky9, class: Redhat do
name { 'Rocky' }
major { '9' }
minor { '0' }
type { 'Redhat' }
title { 'Rocky Linux 9.0' }
architectures { [FactoryBot.build(:architecture, :for_snapshots_x86_64)] }
media { [FactoryBot.build(:rhel_for_snapshots)] }
ptables { [FactoryBot.build(:ptable, name: 'ptable')] }
end

factory :altlinux, class: Altlinux do
sequence(:name) { 'Altlinux' }
major { '8' }
minor { '2' }
type { 'Altlinux' }
title { 'Altlinux 8.2' }
end

factory :solaris, class: Solaris do
sequence(:name) { 'Solaris' }
major { '10' }
minor { '8' }
type { 'Solaris' }
title { 'Solaris 10.8' }
end

factory :rancheros, class: Rancheros do
sequence(:name) { 'Rancheros' }
major { '1' }
minor { '4.3' }
type { 'Rancheros' }
title { 'Rancheros 1.4.3' }
end

factory :freebsd, class: Freebsd do
sequence(:name) { 'FreeBSD' }
major { '11' }
minor { '2' }
type { 'Freebsd' }
title { 'FreeBSD 11.2' }
end
end
end
(22-22/36)