Odyssey
Public Member Functions | Static Public Attributes | List of all members
cli.sched.ReloadCommand Class Reference
Inheritance diagram for cli.sched.ReloadCommand:
cli.s3.S3BucketMixin cli.base.HostingCommand

Public Member Functions

def setup_args (self, parser)
 
def run (self, args)
 
def restart_scheduler (self, args, stack)
 
def get_service_task_arns (self, client, cluster, service)
 
- 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)
 

Static Public Attributes

string name = 'reload'
 
string min_version = '0.8.0'
 
dictionary allowed_states = {'active'}
 
- 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
 

Additional Inherited Members

- Public Attributes inherited from cli.s3.S3BucketMixin
 stacks
 

Detailed Description

Reload Scheduler of an Odyssey stack

Definition at line 21 of file sched.py.

Member Function Documentation

◆ get_service_task_arns()

def cli.sched.ReloadCommand.get_service_task_arns (   self,
  client,
  cluster,
  service 
)
return task arns for service

Definition at line 71 of file sched.py.

71  def get_service_task_arns(self, client, cluster, service):
72  '''return task arns for service'''
73  response = client.list_tasks(cluster=cluster, serviceName=service)
74  if response['ResponseMetadata']['HTTPStatusCode'] != 200:
75  shellish.vtmlprint("<red>Error while getting tasks</red>")
76  return []
77  return response['taskArns']
78 
79 

◆ restart_scheduler()

def cli.sched.ReloadCommand.restart_scheduler (   self,
  args,
  stack 
)
Restart scheduler service for stack

Definition at line 56 of file sched.py.

56  def restart_scheduler(self, args, stack):
57  '''Restart scheduler service for stack'''
58  client = boto3.client('ecs', region_name=stack.region)
59  cluster = stack.cluster
60  cfn_stack = cloudformation.describe_stack(stack)
61  services = [x['OutputValue'] for x in cfn_stack['Outputs']
62  if 'Service' in x['OutputKey']]
63  sched_service = [x for x in services if 'sched' in x.lower()][-1]
64  for task in self.get_service_task_arns(client, cluster, sched_service):
65  client.stop_task(
66  cluster=cluster,
67  task=task,
68  reason='Restarting scheduler, reloading crontab'
69  )
70 

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