Skip to content

Instantly share code, notes, and snippets.

@jurikern
Last active August 29, 2015 14:02
Show Gist options
  • Save jurikern/b56a6ec47fce878d5470 to your computer and use it in GitHub Desktop.
Save jurikern/b56a6ec47fce878d5470 to your computer and use it in GitHub Desktop.
Instance model
from django.db import models
from django_fsm import FSMIntegerField, transition
class Instance(models.Model):
# Hardware types definition
X2_HARDWARE_TYPE = 'c3.large'
X4_HARDWARE_TYPE = 'c3.xlarge'
X16_HARDWARE_TYPE = 'c3.4xlarge'
HARDWARE_TYPE_CHOICES = (
(X2_HARDWARE_TYPE, '2 Cores / 2 IPs'),
(X4_HARDWARE_TYPE, '4 Cores / 4 IPs'),
(X16_HARDWARE_TYPE, '16 Cores / 8 IPs'),
)
# Placement regions definition
EU_IRELAND_PLACEMENT_REGION = 'eu-west-1'
PLACEMENT_REGION_CHOICES = (
(EU_IRELAND_PLACEMENT_REGION, 'EU (Ireland) Region'),
)
# Thread priorities definition
HIGH_THREAD_PRIORITY = 0
NORMAL_THREAD_PRIORITY = 1
LOW_THREAD_PRIORITY = 2
THREAD_PRIORITY_CHOICES = (
(HIGH_THREAD_PRIORITY, 'High'),
(NORMAL_THREAD_PRIORITY, 'Normal'),
(LOW_THREAD_PRIORITY, 'Low'),
)
# States definition
PENDING_STATE = 0
RUNNING_STATE = 1
STOPPED_STATE = 2
TERMINATED_STATE = 3
STATE_CHOICES = (
(PENDING_STATE, 'Pending'),
(RUNNING_STATE, 'Running'),
(STOPPED_STATE, 'Stopped'),
(TERMINATED_STATE, 'Terminated'),
)
hardware_type = models.CharField(
max_length=50,
choices=HARDWARE_TYPE_CHOICES,
default=X2_HARDWARE_TYPE
)
placement_region = models.CharField(
max_length=50,
choices=PLACEMENT_REGION_CHOICES,
default=EU_IRELAND_PLACEMENT_REGION
)
thread_priority = models.IntegerField(
max_length=1,
choices=THREAD_PRIORITY_CHOICES,
default=NORMAL_THREAD_PRIORITY
)
state = FSMIntegerField(
max_length=1,
default=PENDING_STATE,
choices=STATE_CHOICES,
protected=True
)
image = models.CharField(max_length=50)
access_token = models.CharField(max_length=50)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment