def setUp(self):
     super(TestNodeInfoOptions, self).setUp()
     node_cache.add_node(self.uuid, bmc_address='1.2.3.4', mac=self.macs)
     self.node_info = node_cache.NodeInfo(uuid=self.uuid, started_at=3.14)
     session = db.get_session()
     with session.begin():
         db.Option(uuid=self.uuid, name='foo', value='"bar"').save(session)
 def set_option(self, name, value):
     """Set an option for a node."""
     encoded = json.dumps(value)
     self.options[name] = value
     with db.ensure_transaction() as session:
         db.model_query(db.Option,
                        session=session).filter_by(uuid=self.uuid,
                                                   name=name).delete()
         db.Option(uuid=self.uuid, name=name, value=encoded).save(session)
 def setUp(self):
     super(TestNodeCacheCleanUp, self).setUp()
     self.started_at = 100.0
     session = db.get_session()
     with session.begin():
         db.Node(uuid=self.uuid, started_at=self.started_at).save(session)
         for v in self.macs:
             db.Attribute(name='mac', value=v, uuid=self.uuid).save(session)
         db.Option(uuid=self.uuid, name='foo', value='bar').save(session)
 def setUp(self):
     super(TestNodeInfoFinished, self).setUp()
     node_cache.add_node(self.uuid,
                         istate.States.processing,
                         bmc_address='1.2.3.4',
                         mac=self.macs)
     self.node_info = node_cache.NodeInfo(uuid=self.uuid,
                                          started_at=datetime.datetime(
                                              3, 1, 4))
     session = db.get_session()
     with session.begin():
         db.Option(uuid=self.uuid, name='foo', value='bar').save(session)
 def setUp(self):
     super(TestNodeCacheCleanUp, self).setUp()
     self.started_at = datetime.datetime.utcnow()
     session = db.get_session()
     with session.begin():
         db.Node(uuid=self.uuid,
                 state=istate.States.waiting,
                 started_at=self.started_at).save(session)
         for v in self.macs:
             db.Attribute(uuid=uuidutils.generate_uuid(),
                          name='mac',
                          value=v,
                          node_uuid=self.uuid).save(session)
         db.Option(uuid=self.uuid, name='foo', value='bar').save(session)
    def test__delete_node(self):
        session = db.get_session()
        with session.begin():
            db.Node(uuid=self.node.uuid).save(session)
            db.Attribute(name='mac', value='11:22:11:22:11:22',
                         uuid=self.uuid).save(session)
            data = {'s': 'value', 'b': True, 'i': 42}
            encoded = json.dumps(data)
            db.Option(uuid=self.uuid, name='name', value=encoded).save(session)

        node_cache._delete_node(self.uuid)
        session = db.get_session()
        row_node = db.model_query(db.Node).filter_by(uuid=self.uuid).first()
        self.assertIsNone(row_node)
        row_attribute = db.model_query(
            db.Attribute).filter_by(uuid=self.uuid).first()
        self.assertIsNone(row_attribute)
        row_option = db.model_query(
            db.Option).filter_by(uuid=self.uuid).first()
        self.assertIsNone(row_option)