blob: 3cb3dd0a3bebba3baebc177c80900575a0fe6b93 [file] [log] [blame]
Sapan Bhatia26d40bc2014-05-12 15:28:02 -04001import os
2import base64
3import random
4from datetime import datetime
5from django.db.models import F, Q
6from planetstack.config import Config
7from observer.openstacksyncstep import OpenStackSyncStep
8from core.models.node import Node
9from core.models.deployment import Deployment
10from core.models.site import Site
11
12class SyncNodes(OpenStackSyncStep):
13 provides=[Node]
14 requested_interval=0
15
16 def fetch_pending(self):
17 # collect local nodes
18 sites = Site.objects.all()
19 one_and_only_deployment = Deployments.objects.all()
20
21 node_hostnames = [node.name for node in nodes]
22
23 instance_types = 'm1.small | m1.medium | m1.large | m1.xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge'.split(' | ')
24
25 all_new_nodes = []
26 for s in sites:
27 node_names = [n.name for n in s.nodes]
28 new_node_names = list(set(instance_types) - set(node_names))
29 new_nodes = []
30 for node_name in new_node_names:
31 node = Node(name=node_name,
32 site=s, deployment=one_and_only_deployment)
33 new_nodes.append(node)
34
35 all_new_nodes.extend(new_nodes)
36
37 return all_new_nodes
38
39
40 def sync_record(self, node):
41 node.save()
42