<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Found an error in the HDP validation code affecting the node count of the additional (new) node group.  Looked at the savanna core code and realized the nature of the way the node groups were being scaled up (both existing and additional) and that pointed me to the issue.<div><br></div><div>-- Jon</div><div><br><div><div>On Aug 30, 2013, at 3:47 PM, Jon Maron <<a href="mailto:jmaron@hortonworks.com">jmaron@hortonworks.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I've done some additional debugging/testing, and the issue is definitely in the savanna provisioning code.<div><br></div><div>I have verified that the correct inputs are provided to the validate_scaling method invocation, and that those references remain unaltered.  The scaling request involves adding one node of a new node group named 'another', and adding one node to the existing 'slave' node group:</div><div><br></div><div>cluster.node_groups:</div><div><br></div><div><div>[<savanna.db.models.NodeGroup[object at 107b15f50] {created=datetime.datetime(2013, 8, 30, 19, 20, 49, 857213), updated=datetime.datetime(2013, 8, 30, 19, 20, 49, 857222), id=u'effcc91c-d0de-4508-84ba-9cedc7e321f6', name=<b>u'master</b>', flavor_id=u'3', image_id=None, node_processes=[u'NAMENODE', u'SECONDARY_NAMENODE', u'GANGLIA_SERVER', u'GANGLIA_MONITOR', u'AMBARI_SERVER', u'AMBARI_AGENT', u'JOBTRACKER', u'NAGIOS_SERVER'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk',<b> count=1</b>, cluster_id=u'd3052854-8b56-47b6-b3c1-612750aab612', node_group_template_id=u'15344a5c-5e83-496a-9648-d7b58f40ad1f'}>, </div><div><savanna.db.models.NodeGroup[object at 107ca1750] {created=datetime.datetime(2013, 8, 30, 19, 20, 49, 860178), updated=datetime.datetime(2013, 8, 30, 19, 20, 49, 860184), id=u'b56a2e69-58d9-4e95-a54f-d9b994bc8515', name=<b>u'slave</b>', flavor_id=u'3', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=1</b>, cluster_id=u'd3052854-8b56-47b6-b3c1-612750aab612', node_group_template_id=u'5dd6aa5a-496c-4dda-b94c-3b3752eb0efb'}>]</div><div><br></div><div>additional:</div><div><br></div><div>{<savanna.db.models.NodeGroup[object at 107cc77d0] {created=None, updated=None, id=None, name=<b>u'another</b>', flavor_id=u'3', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=1</b>, cluster_id=None, node_group_template_id=u'f7f2ddc3-18ca-439f-9c08-570ff9307baf'}>: <b>1</b>}</div><div><br></div><div>existing:</div><div><br></div><div>{u'slave': 2}</div><div><br></div><div>Once the scale_cluster() call is made, the cluster does have the additional node group, but the list of instances isn't correct:</div><div><br></div><div>cluster.node_groups (note the addition of the 'another' node group):</div><div><br></div><div><div>- [<savanna.db.models.NodeGroup[object at 107c9cad0] {created=datetime.datetime(2013, 8, 30, 19, 20, 49, 857213), updated=datetime.datetime(2013, 8, 30, 19, 20, 49, 857222), id=u'effcc91c-d0de-4508-84ba-9cedc7e321f6', name=u'master', flavor_id=u'3', image_id=None, node_processes=[u'NAMENODE', u'SECONDARY_NAMENODE', u'GANGLIA_SERVER', u'GANGLIA_MONITOR', u'AMBARI_SERVER', u'AMBARI_AGENT', u'JOBTRACKER', u'NAGIOS_SERVER'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', count=1, cluster_id=u'd3052854-8b56-47b6-b3c1-612750aab612', node_group_template_id=u'15344a5c-5e83-496a-9648-d7b58f40ad1f'}>, </div><div>- <savanna.db.models.NodeGroup[object at 107c9cc90] {created=datetime.datetime(2013, 8, 30, 19, 20, 49, 860178), updated=datetime.datetime(2013, 8, 30, 19, 34, 51, 39463), id=u'b56a2e69-58d9-4e95-a54f-d9b994bc8515', name=u'slave', flavor_id=u'3', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', count=2, cluster_id=u'd3052854-8b56-47b6-b3c1-612750aab612', node_group_template_id=u'5dd6aa5a-496c-4dda-b94c-3b3752eb0efb'}>, </div><div>- <savanna.db.models.NodeGroup[object at 107cc7290] {created=datetime.datetime(2013, 8, 30, 19, 34, 49, 309577), updated=datetime.datetime(2013, 8, 30, 19, 34, 49, 309584), id=u'b8ea4e37-68d1-471d-9ddf-b74c2c533892', <b>name=u'another'</b>, flavor_id=u'3', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=1</b>, cluster_id=u'd3052854-8b56-47b6-b3c1-612750aab612', node_group_template_id=u'f7f2ddc3-18ca-439f-9c08-570ff9307baf'}>]</div><div><br></div><div>However, only the instance for the existing node group is passed in:</div><div><br></div><div>[<savanna.db.models.Instance[object at 107cc9f50] {created=datetime.datetime(2013, 8, 30, 19, 34, 50, 727467), updated=datetime.datetime(2013, 8, 30, 19, 35, 36, 853529), extra=None, node_group_id=u'b56a2e69-58d9-4e95-a54f-d9b994bc8515', instance_id=u'59e4f689-5124-4205-8629-ad90ffc913d5', <b>instance_name=u'scale-slave-002</b>', internal_ip=u'192.168.32.8', management_ip=u'172.18.3.9', volumes=[]}>]</div></div><div><br></div><div>So clearly, the list of instances passed in is lacking the instance reference for the 'another' node group.  </div><div><br></div><div>I have filed <a href="https://bugs.launchpad.net/savanna/+bug/1219059">https://bugs.launchpad.net/savanna/+bug/1219059</a>. </div><div><br></div><div>-- Jon</div><div><br></div><div><br></div><div><div>On Aug 29, 2013, at 8:22 AM, Nadezhda Privalova <<a href="mailto:nprivalova@mirantis.com">nprivalova@mirantis.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div><div><div><div><div>Hi Jon,<br><br></div>Unfortunately, I'm not able to reproduce this issue with vanilla plugin. The behavior you described is not correct. Here a json I used to repro an issue:<br>
<br>{<br>            "add_node_groups": [<br>                {<br>                    "name": "worker-tasktracker",<br>                    "count":1,<br>                    "node_processes": [<br>
                    "tasktracker"<br>                ],<br>                "flavor_id": "42"<br>                }<br>            ],<br>  <br>            "resize_node_groups": [<br>                {<br>
                    "name": "worker-datanode",<br>                    "count":2<br>                }<br>            ]<br>  <br>}<br><br></div>I added 'print instances' in vanilla plugin's scaling cluster method. Here is a result:<br>
<br>[<savanna.db.models.Instance[object at 10e59fe90] {created=datetime.datetime(2013, 8, 29, 12, 9, 24, 307150), updated=datetime.datetime(2013, 8, 29, 12, 11, 45, 614216), extra=None, node_group_id=u'2b892060-b53e-4224-98ae-9ffff11aa014', instance_id=u'1f50ceca-ee84-477d-a730-79839af59d08', instance_name=u<b>'np-oozie-old-0.2-worker-tasktracker-001'</b>, internal_ip=u'10.155.0.108', management_ip=u'172.18.79.248', volumes=[]}>, <savanna.db.models.Instance[object at 10e588590] {created=datetime.datetime(2013, 8, 29, 12, 9, 25, 751723), updated=datetime.datetime(2013, 8, 29, 12, 11, 45, 614467), extra=None, node_group_id=u'9935bf76-d08b-4cdd-ad20-bbcb2ea5666f', instance_id=u'67092d96-9808-4830-be4a-9f7f54e04b58', instance_name=u'<b>np-oozie-old-0.2-worker-datanode-002'</b>, internal_ip=u'10.155.0.110', management_ip=u'172.18.79.254', volumes=[]}>]<br>
 <br></div>So the behavior as expected.<br></div>We may try to debug this together if you want. Please feel free to ping me.<br><br></div>Thanks,<br></div>Nadya<br><div><br><br><br>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 29, 2013 at 5:49 AM, Jon Maron <span dir="ltr"><<a href="mailto:jmaron@hortonworks.com" target="_blank">jmaron@hortonworks.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi,<div><br></div><div>  I am trying to back port the HDP scaling implementation to the 0.2 branch and have run into a number of differences.  At this point I am trying to figure out whether what I am observing is intended or symptoms of a bug.</div>
<div><br></div><div>  For a case in which I am adding one instance to an existing node group as well as an additional node group with one instance I am seeing the following arguments being passed to the scale_cluster method of the plugin:</div>
<div><br></div><div>- A cluster object that contains the following set of node groups:</div><div><br></div><div><div>[<savanna.db.models.NodeGroup[object at 10d8bdd90] {created=datetime.datetime(2013, 8, 28, 21, 50, 5, 208003), updated=datetime.datetime(2013, 8, 28, 21, 50, 5, 208007), id=u'd6fadb7a-367b-41ed-989c-af40af2d3e3d', name=u'master', flavor_id=u'3', image_id=None, node_processes=[u'NAMENODE', u'SECONDARY_NAMENODE', u'GANGLIA_SERVER', u'GANGLIA_MONITOR', u'AMBARI_SERVER', u'AMBARI_AGENT', u'JOBTRACKER', u'NAGIOS_SERVER'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=1</b>, cluster_id=u'e086d444-2a0f-4105-8ef2-51c56cdb70d2', node_group_template_id=u'15344a5c-5e83-496a-9648-d7b58f40ad1f'}>, </div>
<div><savanna.db.models.NodeGroup[object at 10d8bd950] {created=datetime.datetime(2013, 8, 28, 21, 50, 5, 210962), updated=datetime.datetime(2013, 8, 28, 22, 5, 1, 728402), id=u'672e5597-2a8d-4470-8f5d-8cc43c7bb28e', name=u'slave', flavor_id=u'3', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=2</b>, cluster_id=u'e086d444-2a0f-4105-8ef2-51c56cdb70d2', node_group_template_id=u'5dd6aa5a-496c-4dda-b94c-3b3752eb0efb'}>, </div>
<div><savanna.db.models.NodeGroup[object at 10d897f90] {created=datetime.datetime(2013, 8, 28, 22, 4, 59, 871379), updated=datetime.datetime(2013, 8, 28, 22, 4, 59, 871388), id=u'880e1b17-f4e4-456d-8421-31bf8ef1fb65', name=u'slave2', flavor_id=u'1', image_id=None, node_processes=[u'DATANODE', u'HDFS_CLIENT', u'GANGLIA_MONITOR', u'AMBARI_AGENT', u'TASKTRACKER', u'MAPREDUCE_CLIENT'], node_configs={}, volumes_per_node=0, volumes_size=10, volume_mount_prefix=u'/volumes/disk', <b>count=1</b>, cluster_id=u'e086d444-2a0f-4105-8ef2-51c56cdb70d2', node_group_template_id=u'd67da924-792b-4558-a5cb-cb97bba4107f'}>]</div>
<div> </div><div>  So it appears that the cluster is already configured with the three node groups (two original, one new) and the associated counts.</div><div><br></div><div>- The list of instances.  However, whereas the master branch was passing me two instances (one instance representing the addition to the existing group, one representing the new instance associated with the added node group), in the 0.2 branch I am only seeing one instance being passed (the one instance being added to the existing node group):</div>
<div><br></div><div>(Pdb) p instances</div><div>[<savanna.db.models.Instance[object at 10d8bf050] {created=datetime.datetime(2013, 8, 28, 22, 5, 1, 725343), updated=datetime.datetime(2013, 8, 28, 22, 5, 47, 286665), extra=None, node_group_id=u'672e5597-2a8d-4470-8f5d-8cc43c7bb28e', instance_id=u'377694a2-a589-479b-860f-f1541d249624', instance_name=u'scale-slave-002', internal_ip=u'192.168.32.4', management_ip=u'172.18.3.5', volumes=[]}>]</div>
<div>(Pdb) <b>p len(instances)</b></div><div><b>1</b></div></div><div><br></div><div>  I am not certain why I am not getting a listing of instances representing the instances being added to the cluster as I do in the master branch.  Is this intended?  How do I obtain the instance reference for the instance being added to the new node group?</div>
<div><br></div><div>-- Jon</div></div>
<br>
<span style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px">CONFIDENTIALITY NOTICE</span><br style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px"><span style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px">NOTICE: This message is intended for the use of the individual or entity to which it is addressed and may contain information that is confidential, privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, you are hereby notified that any printing, copying, dissemination, distribution, disclosure or forwarding of this communication is strictly prohibited. If you have received this communication in error, please contact the sender immediately and delete it from your system. Thank You.</span><br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br></blockquote></div><br></div></div></blockquote></div><br></div></body></html>
<br>
<span style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px">CONFIDENTIALITY NOTICE</span><br style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px"><span style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:10px">NOTICE: This message is intended for the use of the individual or entity to which it is addressed and may contain information that is confidential, privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, you are hereby notified that any printing, copying, dissemination, distribution, disclosure or forwarding of this communication is strictly prohibited. If you have received this communication in error, please contact the sender immediately and delete it from your system. Thank You.</span>