Blame internal/blueprint/customizations.go

Packit Service 4d2de5
package blueprint
Packit Service 4d2de5
Packit Service 4d2de5
type Customizations struct {
Packit Service 4d2de5
	Hostname *string                `json:"hostname,omitempty" toml:"hostname,omitempty"`
Packit Service 4d2de5
	Kernel   *KernelCustomization   `json:"kernel,omitempty" toml:"kernel,omitempty"`
Packit Service 4d2de5
	SSHKey   []SSHKeyCustomization  `json:"sshkey,omitempty" toml:"sshkey,omitempty"`
Packit Service 4d2de5
	User     []UserCustomization    `json:"user,omitempty" toml:"user,omitempty"`
Packit Service 4d2de5
	Group    []GroupCustomization   `json:"group,omitempty" toml:"group,omitempty"`
Packit Service 4d2de5
	Timezone *TimezoneCustomization `json:"timezone,omitempty" toml:"timezone,omitempty"`
Packit Service 4d2de5
	Locale   *LocaleCustomization   `json:"locale,omitempty" toml:"locale,omitempty"`
Packit Service 4d2de5
	Firewall *FirewallCustomization `json:"firewall,omitempty" toml:"firewall,omitempty"`
Packit Service 4d2de5
	Services *ServicesCustomization `json:"services,omitempty" toml:"services,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type KernelCustomization struct {
Packit Service 4d2de5
	Append string `json:"append" toml:"append"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type SSHKeyCustomization struct {
Packit Service 4d2de5
	User string `json:"user" toml:"user"`
Packit Service 4d2de5
	Key  string `json:"key" toml:"key"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type UserCustomization struct {
Packit Service 4d2de5
	Name        string   `json:"name" toml:"name"`
Packit Service 4d2de5
	Description *string  `json:"description,omitempty" toml:"description,omitempty"`
Packit Service 4d2de5
	Password    *string  `json:"password,omitempty" toml:"password,omitempty"`
Packit Service 4d2de5
	Key         *string  `json:"key,omitempty" toml:"key,omitempty"`
Packit Service 4d2de5
	Home        *string  `json:"home,omitempty" toml:"home,omitempty"`
Packit Service 4d2de5
	Shell       *string  `json:"shell,omitempty" toml:"shell,omitempty"`
Packit Service 4d2de5
	Groups      []string `json:"groups,omitempty" toml:"groups,omitempty"`
Packit Service 4d2de5
	UID         *int     `json:"uid,omitempty" toml:"uid,omitempty"`
Packit Service 4d2de5
	GID         *int     `json:"gid,omitempty" toml:"gid,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type GroupCustomization struct {
Packit Service 4d2de5
	Name string `json:"name" toml:"name"`
Packit Service 4d2de5
	GID  *int   `json:"gid,omitempty" toml:"gid,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type TimezoneCustomization struct {
Packit Service 4d2de5
	Timezone   *string  `json:"timezone,omitempty" toml:"timezone,omitempty"`
Packit Service 4d2de5
	NTPServers []string `json:"ntpservers,omitempty" toml:"ntpservers,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type LocaleCustomization struct {
Packit Service 4d2de5
	Languages []string `json:"languages,omitempty" toml:"languages,omitempty"`
Packit Service 4d2de5
	Keyboard  *string  `json:"keyboard,omitempty" toml:"keyboard,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type FirewallCustomization struct {
Packit Service 4d2de5
	Ports    []string                       `json:"ports,omitempty" toml:"ports,omitempty"`
Packit Service 4d2de5
	Services *FirewallServicesCustomization `json:"services,omitempty" toml:"services,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type FirewallServicesCustomization struct {
Packit Service 4d2de5
	Enabled  []string `json:"enabled,omitempty" toml:"enabled,omitempty"`
Packit Service 4d2de5
	Disabled []string `json:"disabled,omitempty" toml:"disabled,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type ServicesCustomization struct {
Packit Service 4d2de5
	Enabled  []string `json:"enabled,omitempty" toml:"enabled,omitempty"`
Packit Service 4d2de5
	Disabled []string `json:"disabled,omitempty" toml:"disabled,omitempty"`
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
type CustomizationError struct {
Packit Service 4d2de5
	Message string
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (e *CustomizationError) Error() string {
Packit Service 4d2de5
	return e.Message
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetHostname() *string {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return c.Hostname
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetPrimaryLocale() (*string, *string) {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil, nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
	if c.Locale == nil {
Packit Service 4d2de5
		return nil, nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
	if len(c.Locale.Languages) == 0 {
Packit Service 4d2de5
		return nil, c.Locale.Keyboard
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return &c.Locale.Languages[0], c.Locale.Keyboard
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetTimezoneSettings() (*string, []string) {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil, nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
	if c.Timezone == nil {
Packit Service 4d2de5
		return nil, nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return c.Timezone.Timezone, c.Timezone.NTPServers
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetUsers() []UserCustomization {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	users := []UserCustomization{}
Packit Service 4d2de5
Packit Service 4d2de5
	// prepend sshkey for backwards compat (overridden by users)
Packit Service 4d2de5
	if len(c.SSHKey) > 0 {
Packit Service 4d2de5
		for _, c := range c.SSHKey {
Packit Service 4d2de5
			users = append(users, UserCustomization{
Packit Service 4d2de5
				Name: c.User,
Packit Service 4d2de5
				Key:  &c.Key,
Packit Service 4d2de5
			})
Packit Service 4d2de5
		}
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return append(users, c.User...)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetGroups() []GroupCustomization {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	// This is for parity with lorax, which assumes that for each
Packit Service 4d2de5
	// user, a group with that name already exists. Thus, filter groups
Packit Service 4d2de5
	// named like an existing user.
Packit Service 4d2de5
Packit Service 4d2de5
	groups := []GroupCustomization{}
Packit Service 4d2de5
	for _, group := range c.Group {
Packit Service 4d2de5
		exists := false
Packit Service 4d2de5
		for _, user := range c.User {
Packit Service 4d2de5
			if user.Name == group.Name {
Packit Service 4d2de5
				exists = true
Packit Service 4d2de5
				break
Packit Service 4d2de5
			}
Packit Service 4d2de5
		}
Packit Service 4d2de5
		for _, key := range c.SSHKey {
Packit Service 4d2de5
			if key.User == group.Name {
Packit Service 4d2de5
				exists = true
Packit Service 4d2de5
				break
Packit Service 4d2de5
			}
Packit Service 4d2de5
		}
Packit Service 4d2de5
		if !exists {
Packit Service 4d2de5
			groups = append(groups, group)
Packit Service 4d2de5
		}
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return groups
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetKernel() *KernelCustomization {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return c.Kernel
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetFirewall() *FirewallCustomization {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return c.Firewall
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (c *Customizations) GetServices() *ServicesCustomization {
Packit Service 4d2de5
	if c == nil {
Packit Service 4d2de5
		return nil
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return c.Services
Packit Service 4d2de5
}