[Kimchi-devel] [PATCH V2 3/5] vm ticket in backend: update model

Sheldon shaohef at linux.vnet.ibm.com
Fri Jul 18 06:50:56 UTC 2014


On 07/18/2014 01:13 AM, Aline Manera wrote:
>
> On 07/17/2014 12:10 PM, Sheldon wrote:
>> On 07/15/2014 11:45 PM, shaohef at 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

OK.  Will change it in next version.

but we should remember, the ticket in vm info may make no sense in most 
time,
so we must get the whole vm info when connection.

For UI,  when connection,  after get the vm info, it should  check the 
expire of passwd
data  = GET /vms/my-vm
data.ticket.expire == True


By the way,  IMHO,  an prompt of error message is friendly for whoever 
using the Kimchi REST API.


>
>> -- 
>> Thanks and best regards!
>>
>> Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
>> IBM Linux Technology Center
>


-- 
Thanks and best regards!

Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140718/0fc8dff8/attachment.html>


More information about the Kimchi-devel mailing list