Friday, 2017-07-21

*** openstackgerrit has joined #openstack-mogan01:06
openstackgerritliusheng proposed openstack/mogan master: Add support for scheduler_hints
*** wanghao has joined #openstack-mogan01:09
zhenguomorning mogan!01:12
dimshey zhenguo01:35
zhenguodims: o/01:35
zhenguoliusheng: ironic node cloud be one, so maybe some problems with placement RP name01:39
zhenguoliusheng: ironic node name cloud be None, :D01:39
liushengzhenguo: let me check how nova does01:40
zhenguoliusheng: seems nova doesn't use node name for rp name01:41
zhenguoliusheng: do you know what RP name used for?01:44
liushengzhenguo: yes, in Nova, it is same as node.uuid01:44
liushengzhenguo: when creating rp, the name is the only required field01:44
liushengzhenguo: nova use ironic node.uuid as name, and use the uuid of compute_node object in Nova's db as rp.uuid01:45
zhenguoliusheng: ok, so nova still save ironic node info01:46
zhenguoliusheng: does the rp name in placement unique?01:46
liushengzhenguo: yes, it has compute nodes table which we removed in Mogan :(01:46
zhenguoliusheng: I believe nova will finally get rid of it01:46
liushengzhenguo: maybe01:47
zhenguoliusheng: there's no reason to save it twice01:47
liushengzhenguo: I am also just thought about how to add filters for scheduler_hints, since we have removed the compute node object and table01:48
liushengzhenguo: for the rp problem, how about we use node.uuid for both rp name and rp uuid ?01:48
zhenguoliusheng: scheduler will pass things like server group?01:48
liushengzhenguo: we don't have the old compute nodes to be filtered01:49
zhenguoliusheng: so when do node list we will provide a list of uuids?01:49
liushengzhenguo: we just have rps01:49
liushengzhenguo: hmm...01:49
liushengzhenguo: that is a problem01:50
liushengzhenguo: why ironic support none as name ?01:50
liushengzhenguo: for libvirt, I don't think it can support none as name01:51
zhenguoliusheng: because at first there's no name support01:51
zhenguoliusheng: let me check high api version to see if none name is allowed01:51
liushengzhenguo: ok01:52
liushengzhenguo: and also, may ironic support duplicated names :(01:52
zhenguoliusheng: latest api version also support create node without name01:53
zhenguoliusheng: my env not support duplicate name01:54
zhenguoliusheng: as ironic also support add node name to URI, so it should be unique01:54
liushengzhenguo: oh, in placement the rp name must be unique01:56
zhenguoliusheng: so, we got problems01:56
zhenguoliusheng: how about adding a check before, if the node name is None use uuid as name01:57
liushengzhenguo: I'd rather think it is a shortage of Ironic :(01:58
liushengzhenguo: consider other possible driver in Mogan, maybe node name in driver is a required fields01:58
liushengzhenguo: yes, that is a workaround01:58
zhenguoliusheng: yes01:59
liushengzhenguo: another strange way, how about setting a name when the periodic task found the name of a node is None, hah01:59
zhenguoliusheng: liusheng: set to what02:00
liushengzhenguo: just generated a name for it02:00
zhenguoliusheng: seems a waste of API call, hah02:00
*** yushb has joined #openstack-mogan02:00
liushengzhenguo: the advantage is keep consistency of Mogan and placmeent and ironic02:01
liushengzhenguo: if we just use the uuid as rp name, sometims may confuse users02:01
zhenguoliusheng: for mogan, we only care about the consistency with placement02:01
liushengzhenguo: even for operators02:02
liushengzhenguo: though it is not a good way02:02
zhenguoliusheng: if the operators don't want to get confused, he should set the name correctly02:02
zhenguoliusheng: we don't know how to set the name actually02:02
liushengzhenguo: for users, may they will be confused, somethimes the name is "name" like, somethimes it is "uuid" like02:03
zhenguoliusheng: as my understanding the name should be some ID which indicates the information of the node02:03
zhenguoliusheng: why users can see that02:03
zhenguoliusheng: common users should never get node information02:03
liushengzhenguo: why don't ? I remember we talked about that yestoday02:04
zhenguoliusheng: ?02:04
liushengzhenguo: we only expose uuid names to users, right ?02:04
zhenguoliusheng: no common users02:04
liushengzhenguo: alright ..02:04
zhenguoliusheng: admin need to get that info to add aggregates nodes02:04
zhenguoliusheng: if operators don't set ironic name, it's a sure thing that they will be confused, we don't need to set a strange name for them02:05
liushengzhenguo: hah02:06
liushengzhenguo: ok, that is a tradeoff02:07
zhenguoliusheng: ok, so we should add a check to make it not break placement02:08
liushengzhenguo: yes02:09
zhenguoliusheng: ok, please help to do that :D02:09
liushengzhenguo: ok, another thing, what do you think about the scheduler filter of scheduler_hint ?02:09
liushengzhenguo: seems we cannot implement filters as the old way02:10
zhenguoliusheng: yes02:10
zhenguoliusheng: as my understand, scheduler_hints is just used for passing some hints for scheduling, need to adjust it to make it work with our new implementation02:10
liushengzhenguo: yes, we still need the plugin mechanism support, right ? for possible other requirements in the future ?02:11
zhenguoliusheng: yes02:15
liushengzhenguo: ok, will try02:15
zhenguoliusheng: if no other hints, we can just --server-group instead of --scheduler-hints02:15
liushengzhenguo: if so, how to support anti-affinity ?02:17
zhenguoliusheng: anyti-affinity is a policy of the server-group02:18
liushengzhenguo: will server group be an api ?02:19
zhenguoliusheng: sure02:19
liushengzhenguo: listing server groups and adding server to it ?02:19
zhenguoliusheng: not sure if you can add server to it02:19
zhenguoliusheng: only when you craeting server with the server group, that server will add in02:20
zhenguoliusheng: you can create the server group with a name and policy like affinity or anti-affinity02:20
zhenguoliusheng: then create server with that server group it will automatically added in02:20
liushengzhenguo: do we need to add an api for adding aggregates to a server group ?02:22
zhenguoliusheng: no02:24
zhenguoliusheng: we can't add aggregate to server group02:24
liushengzhenguo: sorry, I cannot get that clearly02:26
liushengzhenguo: if so, and if server group is only for anti-affinity and affinity policy, we only need two server groups02:26
zhenguoliusheng: you can create your server group, and so does I02:30
zhenguoliusheng: I can create a server group A(haddop affinity) and server group B(GlusterFS, anti-affinity)...02:31
liushengzhenguo: :( may you can update the spec, and I can abandon the scheduler_hint patch02:31
liushengzhenguo: I cannot get your points clearly02:31
zhenguoliusheng: you can read the nova server group first02:32
liushengzhenguo: I know about the Nova's implementation02:32
liushengzhenguo: but we are different02:32
zhenguoliusheng: we are same with them02:32
liushengzhenguo: no02:32
*** yushb has quit IRC02:33
zhenguoliusheng: the only difference is that their policy based on host but we based on affinity zone02:33
zhenguoliusheng: all others are same02:33
liushengzhenguo: will check02:33
zhenguoliusheng: ok02:34
*** yushb has joined #openstack-mogan02:34
openstackgerritliusheng proposed openstack/mogan master: Using node.uuid as rp name if is None when reporting
zhenguoliusheng: the LazyLoader doesn't allow us to access the cached rps
liushengzhenguo: only methods exposed ?02:45
zhenguoliusheng: yes02:45
liushengzhenguo: the cache defined as private attributes02:46
zhenguoliusheng: yes, maybe we can only leverage the cache when do scheduleing02:46
liushengzhenguo: may need add a simple method to retuen it ?02:46
zhenguoliusheng: not sure02:46
liushengzhenguo: s/retuen/return02:46
zhenguoliusheng: like get_nodes_from_cache, hah02:47
liushengzhenguo: yes02:47
zhenguoliusheng: seems we only need to get nodes and aggregate nodes02:47
zhenguoliusheng: will try, thanks02:48
* zhenguo brb02:48
liushengzhenguo: maybe capsule a method to retrive in cache, if not found, then retrive by placement api02:48
zhenguoliusheng: sounds good03:06
zhenguoliusheng: so, we just return something like ['node-1', 'node2', 'node3']03:22
liushengzhenguo: yes03:23
zhenguoliusheng: or with uuid as well?03:23
liushengzhenguo: ok, that looks like get rps03:24
zhenguoliusheng: hah03:24
zhenguoliusheng: I find we cache rps with many information, including many links03:24
liushengthe get rps api request will also return the links03:25
zhenguoliusheng: I remember you said nova has a cache for name and uuid translation03:25
liushengzhenguo: that is resource class03:26
zhenguoliusheng: currently we cahce the rps like a dict with the uuid as key03:26
liushengzhenguo: yes03:26
zhenguoliusheng: so when adding nodes to aggregate with name, we need to get the uuid then passing request to placement03:26
liushengzhenguo: hmm... yes, you don't want to expose uuid, haha03:28
zhenguoliusheng: not sure if other places will use the cache as well03:28
zhenguoliusheng: if not, maybe change it to this pattern {name: uuid}03:29
liushengzhenguo: placement allow to udate the rp name, so the cache I think may have problem03:29
liushengzhenguo: I may get your ideas about server group03:31
zhenguoliusheng: why the cache will get problem03:31
liushengzhenguo: the current cache may won't be updated if name changed03:32
zhenguoliusheng: why03:32
liushengzhenguo: it only check if the uuid in cache03:32
zhenguoliusheng: I find we have a generation03:32
liushengzhenguo: oh,yes03:34
zhenguoliusheng: we are the only man who fetch the data from ironic, and update placement, then cache03:35
zhenguoliusheng: that's why I think read from cache is ok03:35
zhenguoliusheng: but if this changed in future, we can use proxy api03:35
liushengzhenguo: yes03:36
zhenguoliusheng: hah, if it's ok, I will add the patch for node list soon03:36
liushengzhenguo: sure03:37
zhenguoliusheng: if I import schedulerclient on api side, we can also read the cache as the class it's singleton, right?03:43
zhenguoliusheng: let me test03:43
* zhenguo brb03:44
liushengzhenguo: yes, we can load it as a api hook03:44
zhenguoliusheng: ok03:46
*** yushb has quit IRC04:13
*** yushb has joined #openstack-mogan04:13
*** yushb has quit IRC04:22
*** yushb has joined #openstack-mogan04:28
openstackgerritOpenStack Proposal Bot proposed openstack/python-moganclient master: Updated from global requirements
*** yushb has quit IRC05:33
*** yushb has joined #openstack-mogan05:53
*** wanghao_ has joined #openstack-mogan06:15
*** wanghao has quit IRC06:15
*** wanghao has joined #openstack-mogan06:16
*** wanghao has quit IRC06:17
*** wanghao has joined #openstack-mogan06:18
*** wanghao_ has quit IRC06:19
*** wanghao_ has joined #openstack-mogan06:37
*** wanghao has quit IRC06:42
openstackgerritZhenguo Niu proposed openstack/mogan master: Add node list support
* zhenguo brb07:17
openstackgerritliusheng proposed openstack/python-moganclient master: Need to change "extra" to be metadata
openstackgerritMerged openstack/mogan master: Update and optimize documentation links
openstackgerritliusheng proposed openstack/python-moganclient master: Need to change "extra" to be metadata
*** yushb has quit IRC07:48
*** yushb has joined #openstack-mogan07:51
*** dims has quit IRC08:09
*** dims has joined #openstack-mogan08:11
*** dims has quit IRC08:21
*** yushb has quit IRC08:21
*** dims has joined #openstack-mogan08:23
zhenguoliusheng: the node is empty on my test if we add a scheduler client hook to API08:41
liushengzhenguo: hmm... seems it is empty, since api and engine are different service, only in engine service, the cache will be updated08:42
liushengzhenguo: :(08:42
zhenguoliusheng: seems yes08:42
zhenguoliusheng: I will call engine to do that08:42
zhenguoliusheng: so no problem with the client import in flows/create_server?08:43
liushengzhenguo: oh.. seems we don't need reportclient in flows, I forgot to remove the client init..08:45
zhenguoliusheng: hah, ok08:45
openstackgerritliusheng proposed openstack/mogan master: Remove the unused reportclient importing
liushengzhenguo: just found some unreasonable places in moganclient, will submit some patches, please take care of moganclient patches if you have time :)08:48
zhenguoliusheng: sure, thanks08:49
liushengzhenguo: for now, we don't have flavor update command, only flavor set and flavor unset for project acess. how about only provide a flavor update command for both updating flavor and project acess ?08:50
liushengzhenguo: with different command options ?08:50
zhenguoliusheng: I just follow other projects' way08:51
liushengzhenguo: yes, I found the OSC have a flavor set and flavor unset, but it seems olso for flavor updating08:51
zhenguoliusheng: seems yes08:51
*** Kevin_Zheng has quit IRC08:51
liushengzhenguo: not sure if Nova have two api for project access and flavor updating08:51
zhenguoliusheng: yes they do08:52
*** Kevin_Zheng has joined #openstack-mogan08:52
liushengzhenguo: so we can also merge the two api to one command ?08:52
zhenguoliusheng: you mean project access and flavor update?08:52
liushengzhenguo: but seems set and unset looks a bit obscure :(08:53
liushengzhenguo: yes08:53
zhenguoliusheng: hah08:53
zhenguoliusheng: but we should follow what OSC used08:53
zhenguoliusheng: also the metadata and property, I just found you make a change for that08:53
liushengzhenguo: for Nova CLI, there are: flavor-access-add, flavor-access-list, flavor-access-remove08:54
liushengzhenguo: yes08:54
zhenguoliusheng: all CLI will be removed08:54
liushengzhenguo: hah08:54
zhenguoliusheng: the OSC will be the only client, so we should keep consistent with it08:54
liushengzhenguo: I am afraid may OSC will realize their set & unset commands are bad in the future. hah08:55
zhenguoliusheng: if so, all projects should be changed,08:55
zhenguoliusheng: but we should not follow it now08:56
zhenguoliusheng: s/not follow/follow08:56
liushengzhenguo: ok, but openstack flavor set command can also set the flavor extra08:56
zhenguoliusheng: we can use it for set resource classes and traits08:57
liushengzhenguo: since Nova don't have flavor updating, only support to update the extra08:57
zhenguoliusheng: yes08:57
zhenguoliusheng: for users who use OSC CLI, set and unset just means update08:58
liushengzhenguo: so let's support updating flavor in our "flavor set" ?08:58
zhenguoliusheng: what does server update use?08:59
liushengzhenguo: yes, but just a little inconvenience, since we can support "add", "remove", "replace", the set and unset seems correspond to the "and", "remove". if we want to replace, we need two steps:1. unset, 2. set09:00
zhenguoliusheng: no09:01
zhenguoliusheng: set means add or replace09:01
liushengzhenguo: oh, yes09:01
liushengzhenguo: for server metadata, we have add, remove, replace09:02
openstackgerritZhenguo Niu proposed openstack/mogan master: Add node list support
zhenguoliusheng: I found nova have a --no-property  for remove metadata09:04
zhenguoliusheng: btw, please consider what keyword we should use for moganclient, seems 'baremetal' will get collision after we add nodes list support09:06
zhenguoliusheng: "baremetal", "bm", "baremetalcompute", "baremetal compute"....09:08
* zhenguo brb09:09
liushengzhenguo: :(09:10
*** wanghao has joined #openstack-mogan09:13
*** wanghao_ has quit IRC09:15
openstackgerritMerged openstack/mogan master: Add support for DBDeadlock handling
*** yushb has joined #openstack-mogan09:30
openstackgerritliusheng proposed openstack/mogan master: Put the required conditions in appropriate of
*** wanghao has quit IRC09:43
openstackgerritZhenguo Niu proposed openstack/mogan master: Add node list support
*** yushb has quit IRC09:49
*** yushb has joined #openstack-mogan09:58
*** yushb has quit IRC10:01
openstackgerritMerged openstack/mogan master: Using node.uuid as rp name if is None when reporting
*** bani has joined #openstack-mogan10:15
openstackgerritXinran WANG proposed openstack/mogan master: Return node uuid with server for admins
-openstackstatus- NOTICE: Restarting Gerrit for our weekly memory leak cleanup.17:06
-openstackstatus- NOTICE: docs.o.o is currently broken, we're investigating18:39
*** RuiChen has quit IRC18:52

Generated by 2.15.3 by Marius Gedminas - find it at!