Exemplo n.º 1
0
 def set_inactive(self):
     meter.send(self.get_metric_path(), 0)
     meter.send(self.get_metric_path('price'), 0)
     if self.is_active:
         self.actual_data.close()
         self.is_active = False
         self.save()
Exemplo n.º 2
0
 def set_inactive(self):
     meter.send(self.get_metric_path(), 0)
     meter.send(self.get_metric_path('price'), 0)
     if self.is_active:
         self.actual_data.close()
         self.is_active = False
         self.save()
Exemplo n.º 3
0
 def set_active(self, value=None):
     meter.send(self.get_metric_path(), value or self.get_metric_value())
     # calculate price and send to graphite
     price = self.total_hours * self.resource_type.default_price
     meter.send(self.get_metric_path('price'), price)
     if not self.is_active:
         self.is_active = True
         self.save()
Exemplo n.º 4
0
 def set_active(self, value=None):
     meter.send(self.get_metric_path(), value or self.get_metric_value())
     # calculate price and send to graphite
     price = self.total_hours * self.resource_type.default_price
     meter.send(self.get_metric_path('price'), price)
     if not self.is_active:
         self.is_active = True
         self.save()
Exemplo n.º 5
0
def sync_glance(projects=None):
    logger = sync_glance.get_logger()

    i = 0

    for project in (projects or Project.objects.all()):

        images = glance.sync_images(project.name)
        i += 1
        logger.info('%s IMAGES: %s' % (project.name, len(images)))
        meter.send('counter.%s.image' % project.openstack_tenant, len(images))

    return 'OK: %s' % i
Exemplo n.º 6
0
def sync_nova(projects=None):
    logger = sync_nova.get_logger()
    i = 0

    for project in (projects or Project.objects.all()):
        i = i + 1

        nova.sync_flavors(project.name)
        servers, errors = nova.sync_servers(project.name)
        logger.info('%s SERVERS: %s' % (project.name, len(servers)))
        meter.send('counter.%s.instance' %
                   project.openstack_tenant, len(servers))
        logger.info('%s SERVER ERRORS: %s' % (project.name, len(errors)))

    return 'OK: %s' % i
Exemplo n.º 7
0
def sync_neutron(projects=None):
    logger = sync_neutron.get_logger()
    i = 0

    if is_service_enabled("network"):
        for project in (projects or Project.objects.all()):
            i = i + 1

            ips = neutron.sync_floating_ips(project.name)
            logger.info('%s IPS: %s' % (project.name, ips))

        try:
            logger.info('%s IPS: %s' % (project.name, len(ips)))
            meter.send('counter.%s.address' % project.openstack_tenant,
                       len(ips))
        except Exception as e:
            logger.warning(str(e))

        return 'OK: %i' % i
    return "Neutron is disabled. Sync was skipped."
Exemplo n.º 8
0
def sync_neutron(projects=None):
    logger = sync_neutron.get_logger()
    i = 0

    if is_service_enabled("network"):
        for project in (projects or Project.objects.all()):
            i = i + 1

            ips = neutron.sync_floating_ips(project.name)
            logger.info('%s IPS: %s' % (project.name, ips))

        try:
            logger.info('%s IPS: %s' % (project.name, len(ips)))
            meter.send('counter.%s.address' %
                       project.openstack_tenant, len(ips))
        except Exception as e:
            logger.warning(str(e))

        return 'OK: %i' % i
    return "Neutron is disabled. Sync was skipped."
Exemplo n.º 9
0
def collect_price():
    '''collect all actual prices for this day and
    push them to graphite
    '''
    from billometer.models import Project

    projects = Project.objects.all()

    time = date.today()

    for project in projects:

        data = project.get_resource_prices(time, time)

        for metric, value in data.iteritems():

            metric = _get_price_metric(project, metric)
            meter.send(metric, value)

    return 'Collected prices for projects: %s OK' % len(projects)
Exemplo n.º 10
0
def sync_cinder(projects=None):
    logger = sync_cinder.get_logger()

    if not is_service_enabled("volume"):
        return "Cinder is disabled. Sync was skipped."

    i = 0
    for project in projects or Project.objects.all():
        try:

            i += 1

            cinder.sync_volume_types(project.name)
            volumes = cinder.sync_volumes(project.name)
            logger.info('%s VOLUMES: %s' % (project.name, len(volumes)))
            meter.send('counter.%s.volume' % project.openstack_tenant,
                       len(volumes))

        except Exception as e:
            logger.warning('Error %s raised during %s processing' %
                           (str(e), project))

    return 'OK: %i' % i
Exemplo n.º 11
0
def sync_cinder(projects=None):
    logger = sync_cinder.get_logger()

    if not is_service_enabled("volume"):
        return "Cinder is disabled. Sync was skipped."

    i = 0
    for project in projects or Project.objects.all():
        try:

            i += 1

            cinder.sync_volume_types(project.name)
            volumes = cinder.sync_volumes(project.name)
            logger.info('%s VOLUMES: %s' % (project.name, len(volumes)))
            meter.send('counter.%s.volume' %
                       project.openstack_tenant, len(volumes))

        except Exception as e:
            logger.warning(
                'Error %s raised during %s processing' % (str(e), project))

    return 'OK: %i' % i