コード例 #1
0
ファイル: test_node_online.py プロジェクト: dmitriko/swarm
 def test_update(self):
     cluster = Cluster.instance()
     node = Node(oid=self.node_oid,
                 hostname='hostname')
     cluster.store(node)
     node.vm_procs = dict(a='dummy')
     self.assertEqual(cluster.get(self.node_oid).vm_procs['a'],
                      'dummy')
     cluster.store(Node(oid=self.node_oid,
                        hostname='hostname'))
     self.assertEqual(cluster.get(self.node_oid).vm_procs['a'],
                      'dummy')
コード例 #2
0
ファイル: test_network.py プロジェクト: dmitriko/swarm
 def test_crud(self):
     cluster = Cluster.instance()
     node = Node(hostname='testhost')
     cluster.store(node)
     on_report(IFConfigReport.create(node.oid, raw_data=IFCONFIG_DATA))
     network = Network(title='TestNetwork')
     virbr2 = node.get_host_nic('virbr2')
     network.add_host_nic(virbr2)
     self.assertTrue(virbr2.oid in network.host_nics)
     eth2 = node.get_host_nic('eth2')
     self.assertEqual(len(network.host_nics), 1)
     self.assertFalse(eth2.oid in network.host_nics) # only bridge should be added
コード例 #3
0
ファイル: onevent.py プロジェクト: dmitriko/swarm
def on_node_started(client):
    "Use it only in node context"
    import socket
    report = NodeOnlineReport.create(client.oid, 
                                    hostname=socket.gethostname())
    report.storages = Node.get_storage_points(client)
    client.publish_report(report)
コード例 #4
0
ファイル: onevent.py プロジェクト: dmitriko/swarm
def on_node_online(report):
    from swarm.stuff import Storage
    from swarm.tasks import VMInventoryTask
    cluster = Cluster.instance()
    if not cluster.is_stored(report.node_oid):
        node = Node(oid=report.node_oid, 
                    hostname=report.hostname,
                    state='online')
        cluster.store(node)
        if CLIENT:
            task = VMInventoryTask(node_oid=node.oid)
            cluster.store(task)
            CLIENT.send_task(task)
        else:
            log.warn("No client available in on_node_online")
    else:
        node = cluster.get(report.node_oid)
        node.state = 'online'
    Storage.update_points(node, report.storages)