blob: 213408e11105a25a2cd2270a48e9e1a3124b2346 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>
"""Handler for vnet operations.
"""
import sxp
import XendDB
class XendVnet:
"""Index of all vnets. Singleton.
"""
dbpath = "vnet"
def __init__(self):
# Table of vnet info indexed by vnet id.
self.vnet = {}
self.db = XendDB.XendDB(self.dbpath)
self.vnet = self.db.fetchall("")
def vnet_ls(self):
"""List all vnets.
"""
return self.vnet.keys()
def vnets(self):
return self.vnet.values()
def vnet_get(self, id):
"""Get a vnet.
id vnet id
"""
return self.vnet.get(id)
def vnet_create(self, info):
"""Create a vnet.
info config
"""
self.vnet_configure(info)
def vnet_configure(self, info):
"""Configure a vnet.
id vnet id
info config
"""
# Need to configure for real.
# Only sync if succeeded - otherwise need to back out.
self.vnet[info.id] = info
self.db.save(info.id, info)
def vnet_delete(self, id):
"""Delete a vnet.
id vnet id
"""
# Need to delete for real. What if fails?
if id in self.vnet:
del self.vnet[id]
self.db.delete(id)
def instance():
global inst
try:
inst
except:
inst = XendVnet()
return inst
|