token = self.keystone.client.tokens.authenticate(username=self.keystone.username, password=self.keystone.password, tenant_name=self.keystone.tenant)
#self.glance = GlanceClient(*args, **kwds)
- self.glanceclient = GlanceClientNew('1', endpoint='http://%s:9292' % hostname, token=token.id, **kwds)
+ self.glanceclient = GlanceClientNew('1', endpoint='https://%s:9292' % hostname, token=token.id, **kwds)
self.nova = NovaClient(*args, **kwds)
# self.nova_db = NovaDB(*args, **kwds)
self.quantum = QuantumClient(*args, **kwds)
from core.models import *
def object_to_filter(model_name, pk):
- filter_dict = {
- 'Slice':[Slice, 'tenant_id', 'project_id'],
- 'Sliver':[Sliver, 'instance_id', 'resource_id'],
- 'Site':[Site, 'tenant_id', 'project_id']
- }
-
- mod,field,tag = filter_dict[model_name]
- obj = mod.objects.get(pk=pk)
- return '%s=%s'%(tag,mod[field])
-
+ filter_dict = {
+ 'Slice':[Slice, 'tenant_id', 'project_id'],
+ 'Sliver':[Sliver, 'instance_id', 'resource_id'],
+ 'Site':[Site, 'tenant_id', 'project_id']
+ }
+
+ mod,field,tag = filter_dict[model_name]
+ obj = mod.objects.get(pk=pk)
+ return '%s=%s'%(tag,mod[field])
+
def cli_to_array(cli_query):
'''This converts from the cli list of queries to what is required
stats.average/=len(meters)
return stats
-
-
+
+
class CeilometerDriver(MonitorDriver):
def get_meter(self, meter, obj, pk, keystone=None):
token = ceilometer_client.auth_token
ceilo_endpoint = client._get_endpoint(ceilometer_client, **keystone)
- #ceilometer = client.get_client(2, username=keystone['username'], password=keystone['password'], tenant_name=keystone['tenant_name'], auth_url=keystone['auth_url'])
+ #ceilometer = client.get_client(2, username=keystone['username'], password=keystone['password'], tenant_name=keystone['tenant_name'], auth_url=keystone['auth_url'])
ceilometer = client.Client('2',endpoint = ceilo_endpoint, token = lambda: token)
cur_ts = datetime.datetime.fromtimestamp(time.time()-86400)
str_ts = cur_ts.strftime('%Y-%m-%dT%H:%M:%S')
-
- object_filter = object_to_filter(obj, pk)
+
+ object_filter = object_to_filter(obj, pk)
filter=';'.join([object_filter,'timestamp>%s'%str_ts])
#query = cli_to_array("project_id=124de34266b24f57957345cdb43cc9ff;timestamp>2014-12-11T00:00:00")
query = cli_to_array(filter)
stats = meters_to_stats(meters)
return stats
-
from .sync_controller_users import SyncControllerUsers
from .sync_controller_site_privileges import SyncControllerSitePrivileges
from .sync_controller_slice_privileges import SyncControllerSlicePrivileges
+from .sync_controller_networks import SyncControllerNetworks
logger = Logger(level=logging.INFO)
-class SyncControllerNetwork(OpenStackSyncStep):
+class SyncControllerNetworks(OpenStackSyncStep):
requested_interval = 0
provides=[Network, ControllerNetwork, Sliver]
network_fields = {'endpoint':controller_network.controller.auth_url,
'admin_user':slice.creator.email, # XXX: FIXME
- 'tenant_name':slice.slicename, # XXX: FIXME
- 'admin_password':controller_network.controller.admin_password,
+ 'tenant_name':slice.name, # XXX: FIXME
+ 'admin_password':slice.creator.remote_password,
'name':network_name,
'subnet_name':subnet_name,
'ansible_tag':'%s-%s@%s'%(network_name,slice.slicename,controller_network.controller.name),
auth_url={{ endpoint }}
login_username={{ admin_user }}
tenant_name={{ tenant_name }}
+ login_tenant_name={{ tenant_name }}
login_password={{ admin_password }}
name={{ name }}
{% if delete %}
{% else %}
state=present
{% endif %}
- shared: true
+ shared=true
- quantum_subnet:
auth_url={{ endpoint }}
login_username={{ admin_user }}
tenant_name={{ tenant_name }}
+ login_tenant_name={{ tenant_name }}
login_password={{ admin_password }}
name={{ subnet_name }}
network_name={{ name }}
state=absent
{% else %}
state=present
- cidr = {{ cidr }}
+ cidr={{ cidr }}
{% endif %}
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.image import Image
-
-class SyncImages(OpenStackSyncStep):
- provides=[Image]
- requested_interval=0
-
- def fetch_pending(self, deleted):
- # Images come from the back end
- # You can't delete them
- if (deleted):
- return []
-
- # get list of images on disk
- images_path = Config().observer_images_directory
- available_images = {}
- for f in os.listdir(images_path):
- if os.path.isfile(os.path.join(images_path ,f)):
- available_images[f] = os.path.join(images_path ,f)
-
- images = Image.objects.all()
- image_names = [image.name for image in images]
-
- for image_name in available_images:
- #remove file extension
- clean_name = ".".join(image_name.split('.')[:-1])
- if clean_name not in image_names:
- image = Image(name=clean_name,
- disk_format='raw',
- container_format='bare',
- path = available_images[image_name])
- image.save()
-
-
- return Image.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
- def sync_record(self, image):
- image.save()
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.network import *
-from util.logger import Logger, logging
-from observer.steps.sync_controller_networks import *
-
-logger = Logger(level=logging.INFO)
-
-class SyncNetworks(OpenStackSyncStep):
- provides=[Network]
- requested_interval = 0
-
- def sync_record(self, network):
- network.save()
-
- def delete_record(self, network):
- controller_networks_deleter = SyncControllerNetwork().delete_record
- for controller_network in ControllerNetwork.objects.filter(network=network):
- try:
- controller_network_deleter(controller_network)
- except Exception,e:
- logger.log_exc("Failed to delete controller network %s" % controller_network)
- raise e
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.role import Role
-from core.models.site import SiteRole, Controller, ControllerRole
-from core.models.slice import SliceRole
-
-class SyncRoles(OpenStackSyncStep):
- provides=[Role]
- requested_interval=0
-
- def fetch_pending(self, deleted):
- # Deleting roles is not supported yet
- if (deleted):
- return []
-
- site_roles = SiteRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
- slice_roles = SliceRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
- controller_roles = ControllerRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
- roles = []
- for site_role in site_roles:
- roles.append(site_role)
- for slice_role in slice_roles:
- roles.append(slice_role)
- for controller_role in controller_roles:
- roles.append(controller_role)
-
- return roles
-
-
- def sync_record(self, role):
- if not role.enacted:
- controllers = Controller.objects.all()
- for controller in controllers:
- driver = self.driver.admin_driver(controller=controller)
- driver.create_role(role.role)
- role.save()
-
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models import User, ControllerUser, SitePrivilege, SiteDeployment
-
-class SyncSitePrivilege(OpenStackSyncStep):
- requested_interval=0
- provides=[SitePrivilege]
-
- def fetch_pending(self, deleted):
- # Deleting site privileges is not supported yet
- if (deleted):
- return []
-
- return SitePrivilege.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
- def sync_record(self, site_priv):
- # sync site privileges at all site controllers
- ctrl_site_deployments = SiteDeployment.objects.filter(site_deployment__site=site_priv.site)
- for ctrl_site_deployment in ctrl_site_deployments:
- controller_users = ControllerUser.objects.filter(controller=ctrl_site_deployment.controller,
- user=site_priv.user)
- if controller_users:
- kuser_id = controller_users[0].kuser_id
- driver = self.driver.admin_driver(controller=ctrl_site_deployment.controller)
- driver.add_user_role(kuser_id,
- ctrl_site_deployment.controller.tenant_id,
- site_priv.role.role)
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import *
-from core.models.controllerusers import ControllerUser
-from util.logger import Logger, logging
-
-logger = Logger(level=logging.INFO)
-
-class SyncSliceMemberships(OpenStackSyncStep):
- requested_interval=0
- provides=[SlicePrivilege]
-
- def fetch_pending(self, deleted):
- # Deleting site memberships is not supported yet
- if (deleted):
- return []
- return SlicePrivilege.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
- def sync_record(self, slice_memb):
- # sync slice memberships at all slice controllers
- logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
- slice_controllers = ControllerSlice.objects.filter(slice=slice_memb.slice)
- for slice_controller in slice_controllers:
- if not slice_controller.tenant_id:
- continue
- controller_users = ControllerUser.objects.filter(controller=slice_controller.controller,
- user=slice_memb.user)
- if controller_users:
- kuser_id = controller_users[0].kuser_id
- driver = self.driver.admin_driver(controller=slice_controller.controller.name)
- driver.add_user_role(kuser_id,
- slice_controller.tenant_id,
- slice_memb.role.role)
+++ /dev/null
-import os
-import base64
-from netaddr import IPAddress, IPNetwork
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlice
-from util.logger import Logger, logging
-from observer.steps.sync_controller_slices import *
-
-logger = Logger(level=logging.INFO)
-
-class SyncSlices(OpenStackSyncStep):
- provides=[Slice]
- requested_interval=0
-
- def sync_record(self, slice):
- for controller_slice in ControllerSlice.objects.filter(slice=slice):
- # bump the 'updated' timestamp and trigger observer to update
- # slice across all controllers
- controller_slice.save()
-
- def delete_record(self, slice):
- controller_slice_deleter = SyncControllerSlice().delete_record
- for controller_slice in ControllerSlice.objects.filter(slice=slice):
- try:
- controller_slice_deleter(controller_slice)
- except Exception,e:
- logger.log_exc("Failed to delete controller_slice %s" % controller_slice)
- raise e
if network.template.shared_network_name]
#driver = self.driver.client_driver(caller=sliver.creator, tenant=sliver.slice.name, controller=sliver.controllerNetwork)
- driver = self.driver.admin_driver(tenant='admin', controller=sliver.controllerNetwork)
+ driver = self.driver.admin_driver(tenant='admin', controller=sliver.node.site_deployment.controller)
nets = driver.shell.quantum.list_networks()['networks']
for net in nets:
if net['name'] in network_templates:
nics.append(net['id'])
# look up image id
- controller_driver = self.driver.admin_driver(controller=sliver.controllerNetwork)
+ controller_driver = self.driver.admin_driver(controller=sliver.node.site_deployment.controller)
image_id = None
images = controller_driver.shell.glanceclient.images.list()
for image in images:
if sliver.userData:
userData = sliver.userData
- controller = sliver.controllerNetwork
+ controller = sliver.node.site_deployment.controller
tenant_fields = {'endpoint':controller.auth_url,
'admin_user': sliver.creator.username,
'admin_password': sliver.creator.password,
+++ /dev/null
-import os
-import base64
-import hashlib
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.user import User
-from core.models.controllerusers import ControllerUser
-from observer.steps.sync_controller_users import SyncControllerUser
-
-class SyncUsers(OpenStackSyncStep):
- provides=[User]
- requested_interval=0
-
- def sync_record(self, user):
- for controller_user in ControllerUser.objects.filter(user=user):
- # bump the 'updated' field so user account are updated across
- # controllers.
- controller_user.save()
-
- def delete_record(self, user):
- controller_user_deleter = SyncControllerUser().delete_record
- for controller_user in ControllerUser.objects.filter(user=user):
- controller_user_deleter(controller_user)