
On 07/17/2014 12:10 PM, Sheldon wrote:
On 07/15/2014 11:45 PM, shaohef@linux.vnet.ibm.com wrote:
+class VMTicketModel(object): + def __init__(self, **kargs): + self.objstore = kargs['objstore'] + self.conn = kargs['conn'] + + def lookup(self, name): + dom = VMModel.get_vm(name, self.conn) + xml = dom.XMLDesc(libvirt.VIR_DOMAIN_XML_SECURE) + root = objectify.fromstring(xml) + graphic = root.devices.find("graphics") + passwd = graphic.attrib.get('passwd') + valid_to = graphic.attrib.get('passwdValidTo') + if valid_to is not None: + to = time.mktime(time.strptime(valid_to, '%Y-%m-%dT%H:%M:%S')) + if to - time.time() <= 0: + raise OperationFailed("KCHVM0031E", {'name': name}) + return {"passwd": passwd} Here, when ticket expire, I report an error to user. Tell him, he should reset the password.
Now I will change the API as follow: GET /vms/<my-vm> {
"name": my-vm, "cpu": 1, "memory": 512, "passwd": "abcd"
}
data = GET /vms/<my-vm> data.passwd
when when ticket expire, what should I do? still an error report.
Or GET /vms/<my-vm> {
"name": my-vm, "cpu": 1, "memory": 512, "passwd": None
}
But this will be confused with a VM that has no password.
so {
"name": my-vm, "cpu": 1, "memory": 512, "passwd": None, ...
} means ticket expire.
{
"name": my-vm, "cpu": 1, "memory": 512, ...
} means no passwd is set?
or {
"name": my-vm, "cpu": 1, "memory": 512, "ticket": {"passwd": None, "expire": True}, ...
}
I think this last one can solve the problems But set "expire" to None when "passwd" is None
-- Thanks and best regards!
Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center