On 07/15/2014 11:45 PM, shaohef@linux.vnet.ibm.com wrote:
Here, when ticket expire, I report an error to user.+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}
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},
...
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center