Odyssey
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
cli.stack.MaintCommand Class Reference
Inheritance diagram for cli.stack.MaintCommand:
cli.s3.S3BucketMixin cli.base.HostingCommand cli.stack.EndMaintCommand cli.stack.MigrationCommand cli.stack.StartMaintCommand

Public Member Functions

def setup_args (self, parser)
 
def prerun (self, args)
 
def task_env_to_dict (self, task_env)
 
def dict_to_task_env (self, env)
 
def get_task_definition (self, ident)
 
def restart_app_service (self)
 
def adj_sched_service_count (self, count)
 
def taskdef_env_override (self, taskdef, key, value=None)
 
- Public Member Functions inherited from cli.s3.S3BucketMixin
def prerun (self, *args, **kwargs)
 
def get_stack (self, name)
 
- Public Member Functions inherited from cli.base.HostingCommand
def add_stack_argument (self, *args, env=DEFAULT_STACK_ENV, help=None, metavar='STACK_NAME', **kwargs)
 
def check_requirements (self, stack)
 

Public Attributes

 ecs
 
 stack
 
- Public Attributes inherited from cli.s3.S3BucketMixin
 stacks
 

Static Public Attributes

dictionary allowed_states = {'ready', 'active', 'partial_deploy'}
 
- Static Public Attributes inherited from cli.s3.S3BucketMixin
string stacks_bucket = 'homecu.odyssey.stacks'
 
- Static Public Attributes inherited from cli.base.HostingCommand
 allowed_states = set()
 
string min_version = "0"
 
 max_version = VERSION
 

Detailed Description

Definition at line 273 of file stack.py.

Member Function Documentation

◆ dict_to_task_env()

def cli.stack.MaintCommand.dict_to_task_env (   self,
  env 
)
Convert task definition environment section to a dict. 

Definition at line 294 of file stack.py.

294  def dict_to_task_env(self, env):
295  """ Convert task definition environment section to a dict. """
296  return [{
297  "name": key,
298  "value": value
299  } for key, value in env.items()]
300 

◆ get_task_definition()

def cli.stack.MaintCommand.get_task_definition (   self,
  ident 
)
Get cleaned up task definition suitable for
register_task_definition. 

Definition at line 301 of file stack.py.

301  def get_task_definition(self, ident):
302  """ Get cleaned up task definition suitable for
303  register_task_definition. """
304  family = 'odyssey-%s-%s' % (self.stack.name, ident)
305  result = self.ecs.describe_task_definition(taskDefinition=family)
306  fulldef = result['taskDefinition']
307  whitelist = (
308  "family",
309  "networkMode",
310  "containerDefinitions",
311  "volumes",
312  "placementConstraints"
313  )
314  return dict((key, value) for key, value in fulldef.items()
315  if key in whitelist)
316 

◆ restart_app_service()

def cli.stack.MaintCommand.restart_app_service (   self)
Update app service by pointing it to the latest task def. 

Definition at line 317 of file stack.py.

317  def restart_app_service(self):
318  """ Update app service by pointing it to the latest task def. """
319  common_name = 'odyssey-%s-app' % self.stack.name
320  self.ecs.update_service(cluster=self.stack.cluster,
321  service=common_name,
322  taskDefinition=common_name)
323 

◆ task_env_to_dict()

def cli.stack.MaintCommand.task_env_to_dict (   self,
  task_env 
)
Convert task definition environment section to a dict. 

Definition at line 290 of file stack.py.

290  def task_env_to_dict(self, task_env):
291  """ Convert task definition environment section to a dict. """
292  return dict((x['name'], x['value']) for x in task_env)
293 

◆ taskdef_env_override()

def cli.stack.MaintCommand.taskdef_env_override (   self,
  taskdef,
  key,
  value = None 
)
Patch the ENV for all containers in the app task def. 

Definition at line 329 of file stack.py.

329  def taskdef_env_override(self, taskdef, key, value=None):
330  """ Patch the ENV for all containers in the app task def. """
331  for cdef in taskdef['containerDefinitions']:
332  env = self.task_env_to_dict(cdef['environment'])
333  if value is None:
334  try:
335  del env['MAINTENANCE_MODE']
336  except KeyError:
337  pass
338  else:
339  env['MAINTENANCE_MODE'] = value
340  cdef['environment'] = self.dict_to_task_env(env)
341 
342 

The documentation for this class was generated from the following file: