Class: Staypuft::Deployment::CinderService

Inherits:
AbstractParamScope show all
Defined in:
app/models/staypuft/deployment/cinder_service.rb

Defined Under Namespace

Modules: DriverBackend, EqlxGroupName, EqlxPool, NfsUri, SanIp, SanLogin, SanPassword Classes: Equallogic, Jail

Constant Summary collapse

BACKEND_TYPE_PARAMS =
:backend_eqlx, :backend_nfs, :backend_lvm, :backend_ceph
BACKEND_PARAMS =
:nfs_uri, :rbd_secret_uuid

Instance Attribute Summary

Attributes inherited from AbstractParamScope

#deployment

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractParamScope

#attributes=, #hostgroup, #initialize, #marked_for_destruction?

Methods included from AttributeParamStorage

#param_attr, #param_attr_array, #param_scope

Constructor Details

This class inherits a constructor from Staypuft::Deployment::AbstractParamScope

Class Method Details

.param_scopeObject



4
5
6
# File 'app/models/staypuft/deployment/cinder_service.rb', line 4

def self.param_scope
  'cinder'
end

Instance Method Details

#active?Boolean

cinder config always shows up

Returns:

  • (Boolean)


78
79
80
# File 'app/models/staypuft/deployment/cinder_service.rb', line 78

def active?
  true
end

#backend_labels_for_layoutObject

view should use this rather than DriverBackend::LABELS to hide LVM for HA.



104
105
106
107
108
# File 'app/models/staypuft/deployment/cinder_service.rb', line 104

def backend_labels_for_layout
  ret_list = DriverBackend::LABELS.clone
  ret_list.delete(DriverBackend::LVM) if self.deployment.ha?
  ret_list
end

#backend_types_for_layoutObject



109
110
111
112
113
# File 'app/models/staypuft/deployment/cinder_service.rb', line 109

def backend_types_for_layout
  ret_list = DriverBackend::TYPES.clone
  ret_list.delete(DriverBackend::LVM) if self.deployment.ha?
  ret_list
end

#ceph_backend?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'app/models/staypuft/deployment/cinder_service.rb', line 90

def ceph_backend?
  self.backend_ceph == "true"
end

#compute_eqlx_backend_namesObject



138
139
140
# File 'app/models/staypuft/deployment/cinder_service.rb', line 138

def compute_eqlx_backend_names
  self.eqlxs.collect.with_index { |e,i| "eqlx_backend#{i+1}" }
end

#equallogic_backend?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'app/models/staypuft/deployment/cinder_service.rb', line 94

def equallogic_backend?
  self.backend_eqlx == "true"
end

#lvm_backend?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'app/models/staypuft/deployment/cinder_service.rb', line 82

def lvm_backend?
  !self.deployment.ha? && self.backend_lvm == "true"
end

#lvm_ptableObject



122
123
124
# File 'app/models/staypuft/deployment/cinder_service.rb', line 122

def lvm_ptable
  Ptable.find_by_name('LVM with cinder-volumes')
end

#multiple_backends?Boolean

Returns:

  • (Boolean)


98
99
100
101
# File 'app/models/staypuft/deployment/cinder_service.rb', line 98

def multiple_backends?
  (equallogic_backend? and self.eqlxs.length > 1) or
    BACKEND_TYPE_PARAMS.select { |type| send(type.to_s) == "true" }.length > 1
end

#nfs_backend?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'app/models/staypuft/deployment/cinder_service.rb', line 86

def nfs_backend?
  self.backend_nfs == "true"
end

#param_hashObject



115
116
117
118
119
120
# File 'app/models/staypuft/deployment/cinder_service.rb', line 115

def param_hash
  { "backend_lvm" => backend_lvm, "backend_ceph" => backend_ceph,
    "backend_nfs" => backend_nfs, "backend_eqlx" => backend_eqlx,
    "nfs_uri" => nfs_uri, "rbd_secret_uuid" => rbd_secret_uuid,
    "eqlxs" => self.eqlxs }
end

#set_defaultsObject



69
70
71
72
73
74
75
# File 'app/models/staypuft/deployment/cinder_service.rb', line 69

def set_defaults
  self.backend_lvm = "false"
  self.backend_ceph = "false"
  self.backend_nfs = "false"
  self.backend_eqlx = "false"
  self.rbd_secret_uuid = SecureRandom.uuid
end