Here is the BVT report on the RC - [cid:image001.png@01D118B0.21037340]
Failed test cases: · integration.smoke.test_vpc_vpn.TestVpcRemoteAccessVpn.test_vpc_remote_access_vpn //failed due to VM deployment · integration.smoke.test_vpc_vpn.TestVpcSite2SiteVpn.test_vpc_site2site_vpn //failed due to VM deployment · integration.smoke.test_internal_lb.TestInternalLb.test02_internallb_haproxy_stats_on_all_interfaces //failed due to VM deployment · integration.smoke.test_internal_lb.TestInternalLb.test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 //failed due to VM deployment · integration.smoke.test_over_provisioning.TestUpdateOverProvision.test_UpdateStorageOverProvisioningFactor //test case issue · integration.smoke.test_vm_snapshots.TestSnapshots.test_01_test_vm_volume_snapshot //test case issue · integration.smoke.test_iso.TestISO.test_07_list_default_iso //test case issue <nose.suite.ContextSuite context=TestNiciraContoller>:setup //test case issue -----Original Message----- From: Wilder Rodrigues [mailto:wrodrig...@schubergphilis.com] Sent: Friday, November 6, 2015 4:19 PM To: dev@cloudstack.apache.org Subject: Re: [VOTE] Apache CloudStack 4.6.0 Thanks again, Lucian! I’m already working on 9015 and testing few things, hope to get it fixed soon, but not for 4.6.0. If we kan keep the good work in terms of writing/executing tests - which will help keeping Master stable - and also avoid merges that don’t follow the rule(*), we can have a 4.6.1/4.7.0 (new features) within two month from now. So, let us all keep the great work concerning tests/quality/stability. Cheers, Wilder * 2 LGTMs + tests (written/executed) > On 06 Nov 2015, at 10:49, Nux! <n...@li.nux.ro<mailto:n...@li.nux.ro>> wrote: > > Well, IMHO the 2 issues are not big problems: > > 9015 - it sounds somewhat serious, I'll try to test these days what > happens if one of the VRs crashes, that's when we'd need redundancy in > a more "real" scenario, if we could get this fixed before release it'd > be ideal, Remi should know more re correct procedure here > > 9035 - sounds like a non-issue to me, if I want to reset the password and > the backup router does what it's told, then I don't care it doesn't have the > old passwords from the other router cached. This could impact instance > deployments or passwd resets right in the time BACKUP becomes MASTER. How > long is this generally? > > Lucian > > -- > Sent from the Delta quadrant using Borg technology! > > Nux! > www.nux.ro<http://www.nux.ro> > > ----- Original Message ----- >> From: "Wilder Rodrigues" >> <wrodrig...@schubergphilis.com<mailto:wrodrig...@schubergphilis.com>> >> To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org> >> Sent: Friday, 6 November, 2015 09:29:56 >> Subject: Re: [VOTE] Apache CloudStack 4.6.0 > >> Thanks for the clear message, Lucian. I really appreciated that. :) >> >> It’s about the Redundant VPC, not the single one - which is working >> pretty fine, btw! >> >> Open issues are: >> >> * https://issues.apache.org/jira/browse/CLOUDSTACK-9015 >> * https://issues.apache.org/jira/browse/CLOUDSTACK-9035 >> >> And I have to write tests to cover Private Gateway and S2S VPN for >> Redundant VPC. >> >> All the rest working fine, as you have seen in my report. >> >> Cheers, >> Wilder >> >> >> On 06 Nov 2015, at 10:19, Nux! >> <n...@li.nux.ro<mailto:n...@li.nux.ro<mailto:n...@li.nux.ro%3cmailto:n...@li.nux.ro>>> >> wrote: >> >> Well, in my non-coder opinion, we should not deliver broken software, >> however we saw in the past fixing it all delayed release considerably. >> Now, how broken is that VPC? :) >> >> -- >> Sent from the Delta quadrant using Borg technology! >> >> Nux! >> www.nux.ro<http://www.nux.ro<http://www.nux.ro%3chttp:/www.nux.ro>> >> >> ----- Original Message ----- >> From: "Wilder Rodrigues" >> <wrodrig...@schubergphilis.com<mailto:wrodrig...@schubergphilis.com>> >> To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org> >> Sent: Friday, 6 November, 2015 08:57:56 >> Subject: Re: [VOTE] Apache CloudStack 4.6.0 >> >> I forgot to mention that for the failed rVPC test I followed the same >> steps manually and it worked as expected. >> >> In addition, I would like to hear from the community what should we >> do in terms of minor/major bugs in new features (like the rVPC). Will >> those be fix and added to a 4.6.1 or should it still be part of 4.6.0? >> >> Cheers, >> Wilder >> >> On 06 Nov 2015, at 09:17, Wilder Rodrigues >> <wrodrig...@schubergphilis.com<mailto:wrodrig...@schubergphilis.com<mailto:wrodrig...@schubergphilis.com%3cmailto:wrodrig...@schubergphilis.com>>> >> wrote: >> >> Hi all, >> >> My considerations after the tests agains XenServer 6.2: >> >> We got 4 failures whilst testing against Xen62: >> >> * test_vpc_redundant.py on line 522 >> - AssertionError: No Master or too many master routers found 0 >> * test_internal_lb.py lines 712 and 576, when trying to deploy a >> virtual machine >> - Unable to create a deployment for VM[User|i-36-89-VM] >> - Unable to create a deployment for VM[User|i-36-91-VM] >> * test_vpc_vpn.py line 604 for the same reason as above >> - Unable to create a deployment for VM[User|i-37-95-VM] >> >> There are bugs in the test_vpc_vpn.py VPN test: in case of failures, >> when we reach either line 604 or 624, it will try to assert the state >> of the variable vm1/vm2, but is has not been assigned yet, which >> makes us face an Unbound >> Error: >> - UnboundLocalError: local variable 'vm1' referenced before >> assignment >> >> Looking at the code I noticed that the same will happen for vm2, in >> case vm1 deployment passes but vm1 doesn’t. >> >> Concerning the LB and VPN tests, those failed due to a wrong >> template. Those tests should be executed against KVM only as they >> have a configuration which depends on KVM hypervisors >> >> ``` >> "default_hypervisor": "kvm", >> "compute_offering": { >> "name": "Tiny Instance", >> "displaytext": "Tiny Instance", >> "cpunumber": 1, >> "cpuspeed": 100, >> "memory": 128, >> } >> ``` >> >> But I will change that. >> >> Concerning the redundant VPC test that failed, it was due an absence >> of a master router. For some reason, after the >> self.delete_nat_rules() was called, the router switched from Master >> to Backup, which caused the error. I will investigate. >> >> There was also a problem reported by Boris concerning the DEB >> packages, which he already has a PR for ==> >> https://github.com/apache/cloudstack/pull/1040. This is package >> related, thus I don’t see it as a blocker for the release, hence my >> +1. >> >> >> ::: Full Report ::: >> >> >> :: Environment 1 :: >> >> * Hardware required: TRUE >> * Management Server + MySQL on CentOS 7.1 >> * Two XenServer 6.2 hosts >> >> >> :: Tests Suites Executed :: >> >> nosetests --with-marvin >> --marvin-config=/data/shared/marvin/mct-zone1-xen1-ISOLATED.cfg -s -a >> tags=advanced,required_hardware=true component/test_vpc_redundant.py >> component/test_routers_iptables_default_policy.py >> component/test_routers_network_ops.py >> component/test_vpc_router_nics.py component/test_password_server.py >> component/test_router_dhcphosts.py >> smoke/test_loadbalance.py smoke/test_internal_lb.py >> smoke/test_ssvm.py smoke/test_vpc_vpn.py smoke/test_network.py >> >> :: Environment 2 :: >> >> * Hardware required: FALSE >> * Management Server + MySQL on CentOS 7.1 >> * Two XenServer 6.2 hosts >> >> >> :: Tests Suites Executed :: >> >> nosetests --with-marvin >> --marvin-config=/data/shared/marvin/mct-zone1-xen1-ISOLATED.cfg -s -a >> tags=advanced,required_hardware=false smoke/test_routers.py >> smoke/test_reset_vm_on_reboot.py smoke/test_vm_life_cycle.py >> component/test_vpc_routers.py smoke/test_service_offerings.py >> component/test_vpc_offerings.py smoke/test_network_acl.py >> smoke/test_privategw_acl.py smoke/test_network.py >> >> >> :: Summary :: >> >> * Tests executes: 75 >> * Successfull tests: 72 >> * Skipped tests: 6(*) >> * Failed tests: 5(**) >> >> (*) Tests were skipped because I had 2 hosts and the current logic in >> the tests does not cope with that: it lists the hosts and takes the >> one in index zero >> - host = hosts[0] >> (**) Failures and Exceptions being taken into counted >> >> :: Test results for Environment 1 :: >> >> >> Create a redundant VPC with two networks with two VMs in each network >> ... === >> TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : >> FAILED === >> FAIL >> Create a redundant VPC with two networks with two VMs in each network >> and check default routes ... SKIP: Marvin configuration has no host >> credentials to check router services Test iptables default >> INPUT/FORWARD policy on RouterVM ... === TestName: >> test_02_routervm_iptables_policies | Status : SUCCESS === ok Test >> iptables default INPUT/FORWARD policies on VPC router ... === TestName: >> test_01_single_VPC_iptables_policies | Status : SUCCESS === ok Test >> redundant router internals ... === TestName: >> test_01_isolate_network_FW_PF_default_routes_egress_true | Status : >> SUCCESS === ok Test redundant router internals ... === TestName: >> test_02_isolate_network_FW_PF_default_routes_egress_false | Status : >> SUCCESS === ok Test redundant router internals ... === TestName: >> test_01_RVR_Network_FW_PF_SSH_default_routes_egress_true | Status : >> SUCCESS === ok Test redundant router internals ... === TestName: >> test_02_RVR_Network_FW_PF_SSH_default_routes_egress_false | Status : >> SUCCESS === ok Create a VPC with two networks with one VM in each >> network and test nics after destroy ... === TestName: >> test_01_VPC_nics_after_destroy | Status : SUCCESS === ok Create a VPC >> with two networks with one VM in each network and test default routes >> ... === TestName: test_02_VPC_default_routes | Status : SUCCESS === >> ok Check the password file in the Router VM ... === TestName: >> test_isolate_network_password_server | Status : SUCCESS === ok Check >> that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === >> TestName: test_router_dhcphosts | Status : SUCCESS === ok Test to >> create Load balancing rule with source NAT ... === TestName: >> test_01_create_lb_rule_src_nat | Status : SUCCESS === ok Test to >> create Load balancing rule with non source NAT ... === TestName: >> test_02_create_lb_rule_non_nat | Status : SUCCESS === ok Test for >> assign & removing load balancing rule ... === TestName: >> test_assign_and_removal_lb | Status : SUCCESS === ok Test to verify >> access to loadbalancer haproxy admin stats page ... === TestName: >> test02_internallb_haproxy_stats_on_all_interfaces | Status : >> EXCEPTION === ERROR Test create, assign, remove of an Internal LB >> with roundrobin http traffic to 3 vm's ... === TestName: >> test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Status : >> EXCEPTION === ERROR Test SSVM Internals ... === TestName: >> test_03_ssvm_internals | Status : SUCCESS === ok Test CPVM Internals >> ... SKIP: Marvin configuration has no host credentials to check >> router services Test stop SSVM ... === TestName: test_05_stop_ssvm | >> Status : SUCCESS === ok Test stop CPVM ... SKIP: Marvin configuration >> has no host credentials to check router services Test reboot SSVM ... >> === TestName: test_07_reboot_ssvm | Status : SUCCESS === ok Test >> reboot CPVM ... SKIP: Marvin configuration has no host credentials to >> check router services Test destroy SSVM ... SKIP: Marvin >> configuration has no host credentials to check router services Test >> destroy CPVM ... === TestName: test_10_destroy_cpvm | Status : >> SUCCESS === ok Test Remote Access VPN in VPC ... === TestName: >> test_vpc_remote_access_vpn | Status : FAILED === FAIL Test VPN in VPC >> ... === TestName: test_vpc_site2site_vpn | Status : EXCEPTION === >> ERROR Test for port forwarding on source NAT ... === TestName: >> test_01_port_fwd_on_src_nat | Status : SUCCESS === ok Test for port >> forwarding on non source NAT ... === TestName: >> test_02_port_fwd_on_non_src_nat | Status : SUCCESS === ok Test for >> reboot router ... === TestName: test_reboot_router | Status : SUCCESS >> === ok Test for Router rules for network rules on acquired public IP >> ... === TestName: >> test_network_rules_acquired_public_ip_1_static_nat_rule | Status : >> SUCCESS === ok Test for Router rules for network rules on acquired >> public IP ... === TestName: >> test_network_rules_acquired_public_ip_2_nat_rule | Status : SUCCESS >> === ok Test for Router rules for network rules on acquired public IP >> ... === TestName: >> test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Status : >> SUCCESS === ok >> --------------------------------------------------------------------- >> - >> Ran 33 tests in 9352.773s >> >> FAILED (SKIP=5, errors=3, failures=2) >> (END) >> >> >> :: Test results for Environment 2 :: >> >> Test router internal advanced zone ... SKIP: Marvin configuration has no host >> credentials to check router services >> Test restart network ... === TestName: >> test_03_restart_network_cleanup | Status >> : SUCCESS === >> ok >> Test router basic setup ... === TestName: test_05_router_basic | Status : >> SUCCESS === >> ok >> Test router advanced setup ... === TestName: test_06_router_advanced | >> Status : >> SUCCESS === >> ok >> Test stop router ... === TestName: test_07_stop_router | Status : >> SUCCESS === ok Test start router ... === TestName: >> test_08_start_router | Status : SUCCESS === ok Test reboot router ... >> === TestName: test_09_reboot_router | Status : SUCCESS === ok Test >> reset virtual machine on reboot ... === TestName: >> test_01_reset_vm_on_reboot | Status : SUCCESS === ok Test advanced >> zone virtual router ... === TestName: test_advZoneVirtualRouter | >> Status : SUCCESS === ok Test Deploy Virtual Machine ... === TestName: >> test_deploy_vm | Status : SUCCESS === ok Test Multiple Deploy Virtual >> Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS >> === ok Test Stop Virtual Machine ... === TestName: test_01_stop_vm | >> Status : SUCCESS === ok Test Start Virtual Machine ... === TestName: >> test_02_start_vm | Status : SUCCESS === ok Test Reboot Virtual >> Machine ... === TestName: test_03_reboot_vm | Status : >> SUCCESS === >> ok >> Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : >> SUCCESS === >> ok >> Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : >> SUCCESS === >> ok >> Test migrate VM ... === TestName: test_08_migrate_vm | Status : >> SUCCESS === ok Test destroy(expunge) Virtual Machine ... === >> TestName: test_09_expunge_vm | Status : SUCCESS === ok Test >> start/stop of router after addition of one guest network ... === TestName: >> test_01_start_stop_router_after_addition_of_one_guest_network | Status : >> SUCCESS === >> ok >> Test reboot of router after addition of one guest network ... === TestName: >> test_02_reboot_router_after_addition_of_one_guest_network | Status : >> SUCCESS === ok Test to change service offering of router after >> addition of one guest network ... === TestName: >> test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : >> SUCCESS === >> ok >> Test destroy of router after addition of one guest network ... === TestName: >> test_05_destroy_router_after_addition_of_one_guest_network | Status : >> SUCCESS === ok Test to stop and start router after creation of VPC >> ... === TestName: >> test_01_stop_start_router_after_creating_vpc | Status : SUCCESS === >> ok Test to reboot the router after creating a VPC ... === TestName: >> test_02_reboot_router_after_creating_vpc | Status : SUCCESS === ok >> Tests to change service offering of the Router after ... === TestName: >> test_04_change_service_offerring_vpc | Status : SUCCESS === ok Test >> to destroy the router after creating a VPC ... === TestName: >> test_05_destroy_router_after_creating_vpc | Status : SUCCESS === ok >> Test to create service offering ... === TestName: >> test_01_create_service_offering | Status : SUCCESS === ok Test to >> update existing service offering ... === TestName: >> test_02_edit_service_offering | Status : SUCCESS === ok Test to >> delete service offering ... === TestName: >> test_03_delete_service_offering | Status : SUCCESS === ok Test create >> VPC offering ... === TestName: test_01_create_vpc_offering | Status >> : SUCCESS === >> ok >> Test VPC offering without load balancing service ... === TestName: >> test_03_vpc_off_without_lb | Status : SUCCESS === ok Test VPC >> offering without static NAT service ... === TestName: >> test_04_vpc_off_without_static_nat | Status : SUCCESS === ok Test VPC >> offering without port forwarding service ... === TestName: >> test_05_vpc_off_without_pf | Status : SUCCESS === ok Test VPC >> offering with invalid services ... === TestName: >> test_06_vpc_off_invalid_services | Status : SUCCESS === ok Test >> update VPC offering ... === TestName: test_07_update_vpc_off | Status : >> SUCCESS === >> ok >> Test list VPC offering ... === TestName: test_08_list_vpc_off | >> Status : SUCCESS === ok test_09_create_redundant_vpc_offering >> (integration.component.test_vpc_offerings.TestVPCOffering) ... === TestName: >> test_09_create_redundant_vpc_offering | Status : SUCCESS === ok >> test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) >> ... >> === TestName: test_privategw_acl | Status : SUCCESS === ok Test for >> delete account ... === TestName: test_delete_account | Status : >> SUCCESS === ok Test for Associate/Disassociate public IP address for >> admin account ... === >> TestName: test_public_ip_admin_account | Status : SUCCESS === ok Test >> for Associate/Disassociate public IP address for user account ... === >> TestName: test_public_ip_user_account | Status : SUCCESS === ok Test >> for release public IP address ... === TestName: test_releaseIP | Status : >> SUCCESS === >> ok >> >> --------------------------------------------------------------------- >> - >> Ran 42 tests in 5463.487s >> >> OK (SKIP=1) >> (END) >> >> >> On 05 Nov 2015, at 20:13, Nux! >> <n...@li.nux.ro<mailto:n...@li.nux.ro<mailto:n...@li.nux.ro%3cmailto:n...@li.nux.ro>>> >> wrote: >> >> Installation on CentOS 6 mgmt and HVs worked great, added some >> templates, deployed some instances, no issues. >> I'll get back if I hit problems. >> >> Lucian >> >> -- >> Sent from the Delta quadrant using Borg technology! >> >> Nux! >> www.nux.ro<http://www.nux.ro/<http://www.nux.ro%3chttp:/www.nux.ro/>> >> >> ----- Original Message ----- >> From: "Nux!" >> <n...@li.nux.ro<mailto:n...@li.nux.ro<mailto:n...@li.nux.ro%3cmailto:n...@li.nux.ro>>> >> To: >> dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org%3cmailto:dev@cloudstack.apache.org>> >> Sent: Thursday, 5 November, 2015 08:48:38 >> Subject: Re: [VOTE] Apache CloudStack 4.6.0 >> >> Thanks Remi! >> >> -- >> Sent from the Delta quadrant using Borg technology! >> >> Nux! >> www.nux.ro<http://www.nux.ro<http://www.nux.ro%3chttp:/www.nux.ro>> >> >> ----- Original Message ----- >> From: "Remi Bergsma" >> <rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com%3cmailto:rberg...@schubergphilis.com>>> >> To: >> dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org%3cmailto:dev@cloudstack.apache.org>> >> Sent: Wednesday, 4 November, 2015 20:45:59 >> Subject: Re: [VOTE] Apache CloudStack 4.6.0 >> >> Kicked off some Jenkins builds: >> >> CentOS 6 packages: >> http://jenkins.buildacloud.org/view/parameterized/job/cloudstack-rpm- >> packages-with-branch-parameter/lastSuccessfulBuild/artifact/dist/rpmb >> uild/RPMS/x86_64/ >> >> CentOS 7 packages: >> http://jenkins.buildacloud.org/view/parameterized/job/cloudstack-rpm- >> packages-with-branch-parameter-centos7/lastSuccessfulBuild/artifact/d >> ist/rpmbuild/RPMS/x86_64/ >> >> Ubuntu Trusty packages: >> http://cloudstack.apt-get.eu/ubuntu/dists/trusty/4.6/pool/ >> >> SystemVM template: >> http://jenkins.buildacloud.org/view/parameterized/job/parameterized-s >> ytemvm/lastSuccessfulBuild/artifact/tools/appliance/dist/ >> >> >> You can always build packages from the source: >> cd packaging >> ./package.sh -h >> >> Happy testing! >> >> Regards, >> Remi >> >> >> >> >> >> On 04/11/15 18:12, "Remi Bergsma" >> <rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com%3cmailto:rberg...@schubergphilis.com>>> >> wrote: >> >> The jobs failed due to the git clone failing (time out). I also >> experience it is quite slow at the moment. >> >> It is mirrored here (same commit id): >> https://github.com/apache/cloudstack/tree/4.6.0-RC20151104T1522 >> >> Regards, >> Remi >> >> >> >> >> On 04/11/15 17:17, "Rajani Karuturi" >> <rajani.karut...@citrix.com<mailto:rajani.karut...@citrix.com<mailto:rajani.karut...@citrix.com%3cmailto:rajani.karut...@citrix.com>>> >> wrote: >> >> I started jenkins builds for cloudstack RPM packages and systemvm >> templates for this branch here >> >> http://jenkins.buildacloud.org/view/parameterized/job/cloudstack-rpm- >> packages-with-branch-parameter/19/console >> http://jenkins.buildacloud.org/view/parameterized/job/parameterized-s >> ytemvm/3/console >> >> We can use them once the build is complete. >> >> ~Rajani >> >> On 04-Nov-2015, at 8:58 PM, Nux! >> <n...@li.nux.ro<mailto:n...@li.nux.ro<mailto:n...@li.nux.ro%3cmailto:n...@li.nux.ro>><mailto:n...@li.nux.ro>> >> wrote: >> >> Hi, >> >> Has jenkins built rpms for this somewhere? >> >> -- >> Sent from the Delta quadrant using Borg technology! >> >> Nux! >> www.nux.ro<http://www.nux.ro><http://www.nux.ro<http://www.nux.ro%3chttp:/www.nux.ro%3e%3chttp:/www.nux.ro>> >> >> ----- Original Message ----- >> From: "Remi Bergsma" >> <rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com%3cmailto:rberg...@schubergphilis.com>>> >> To: >> dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org%3cmailto:dev@cloudstack.apache.org>> >> Sent: Wednesday, 4 November, 2015 14:55:11 >> Subject: [VOTE] Apache CloudStack 4.6.0 >> >> Hi all, >> >> I've created a 4.6.0 release candidate, with the following artifacts >> up for a >> vote: >> >> Git Branch and Commit SH: >> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=shortlog;h >> =4.6.0-RC20151104T1522 >> >> Commit: b0ebe68e375432b28eef031ab62ccd5831234c77 >> >> Source release (checksums and signatures are available at the same >> location): >> https://dist.apache.org/repos/dist/dev/cloudstack/4.6.0/ >> >> PGP release keys (signed using A47DDC4F): >> https://dist.apache.org/repos/dist/release/cloudstack/KEYS >> >> Vote will be open for at least 72 hours. >> >> For sanity in tallying the vote, can PMC members please be sure to >> indicate "(binding)" with their vote? >> >> [ ] +1 approve >> [ ] +0 no opinion >> [ ] -1 disapprove (and reason why)