~ubuntu-branches/ubuntu/vivid/ironic/vivid-updates

« back to all changes in this revision

Viewing changes to ironic/db/sqlalchemy/api.py

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-01-05 12:21:37 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20150105122137-171bqrdpcxqipunk
Tags: 2015.1~b1-0ubuntu1
* New upstream beta release:
  - d/control: Align version requirements with upstream release.
* d/watch: Update uversionmangle to deal with kilo beta versioning
  changes.
* d/control: Bumped Standards-Version to 3.9.6, no changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
289
289
        if not utils.is_uuid_like(instance):
290
290
            raise exception.InvalidUUID(uuid=instance)
291
291
 
292
 
        query = model_query(models.Node).\
293
 
                        filter_by(instance_uuid=instance)
 
292
        query = (model_query(models.Node)
 
293
                 .filter_by(instance_uuid=instance))
294
294
 
295
295
        try:
296
296
            result = query.one()
505
505
    def register_conductor(self, values, update_existing=False):
506
506
        session = get_session()
507
507
        with session.begin():
508
 
            query = model_query(models.Conductor, session=session).\
509
 
                        filter_by(hostname=values['hostname'])
 
508
            query = (model_query(models.Conductor, session=session)
 
509
                     .filter_by(hostname=values['hostname']))
510
510
            try:
511
511
                ref = query.one()
512
512
                if ref.online is True and not update_existing:
524
524
 
525
525
    def get_conductor(self, hostname):
526
526
        try:
527
 
            return model_query(models.Conductor).\
528
 
                            filter_by(hostname=hostname,
529
 
                                      online=True).\
530
 
                            one()
 
527
            return (model_query(models.Conductor)
 
528
                    .filter_by(hostname=hostname, online=True)
 
529
                    .one())
531
530
        except NoResultFound:
532
531
            raise exception.ConductorNotFound(conductor=hostname)
533
532
 
534
533
    def unregister_conductor(self, hostname):
535
534
        session = get_session()
536
535
        with session.begin():
537
 
            query = model_query(models.Conductor, session=session).\
538
 
                        filter_by(hostname=hostname,
539
 
                                  online=True)
 
536
            query = (model_query(models.Conductor, session=session)
 
537
                     .filter_by(hostname=hostname, online=True))
540
538
            count = query.update({'online': False})
541
539
            if count == 0:
542
540
                raise exception.ConductorNotFound(conductor=hostname)
544
542
    def touch_conductor(self, hostname):
545
543
        session = get_session()
546
544
        with session.begin():
547
 
            query = model_query(models.Conductor, session=session).\
548
 
                        filter_by(hostname=hostname)
 
545
            query = (model_query(models.Conductor, session=session)
 
546
                     .filter_by(hostname=hostname))
549
547
            # since we're not changing any other field, manually set updated_at
550
548
            # and since we're heartbeating, make sure that online=True
551
549
            count = query.update({'updated_at': timeutils.utcnow(),
558
556
            interval = CONF.conductor.heartbeat_timeout
559
557
 
560
558
        limit = timeutils.utcnow() - datetime.timedelta(seconds=interval)
561
 
        result = model_query(models.Conductor).\
562
 
                    filter_by(online=True).\
563
 
                    filter(models.Conductor.updated_at >= limit).\
564
 
                    all()
 
559
        result = (model_query(models.Conductor)
 
560
                  .filter_by(online=True)
 
561
                  .filter(models.Conductor.updated_at >= limit)
 
562
                  .all())
565
563
 
566
564
        # build mapping of drivers to the set of hosts which support them
567
565
        d2c = collections.defaultdict(set)