AppScale / appscale-tools

A set of command-line tools that can be used to interact with AppScale.
Other
51 stars 49 forks source link

Update check for automatic and manual scaling in xml descriptor #736

Closed sjones4 closed 5 years ago

sjones4 commented 5 years ago

Update appengine-web.xml validation checks for scaling elements.

The tests for automatic-scaling and manual-scaling now check for None. Previously warnings such as the following were logged if using these xml scaling configuration elements:

/usr/local/lib/python2.7/dist-packages/appscale/tools/admin_api/version.py:168: FutureWarning: The behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.
  if automatic_scaling and manual_scaling:
/usr/local/lib/python2.7/dist-packages/appscale/tools/admin_api/version.py:178: FutureWarning: The behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.
  elif automatic_scaling:

This does not cause any functionality issues, but these warnings are logged on appscale deploy.

sjones4 commented 5 years ago

To reproduce for automatic scaling:

root@appscale-image0:~#  cat javabook/war/WEB-INF/appengine-web.xml
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>javabook</application>
    <version>1</version>
    <threadsafe>true</threadsafe>
    <automatic-scaling>
        <min-instances>1</min-instances>
        <max-instances>2</max-instances>
    </automatic-scaling>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>    
</appengine-web-app>
root@appscale-image0:~# 
root@appscale-image0:~# 

For manual scaling:

root@appscale-image0:~# cat javabook/war/WEB-INF/appengine-web.xml 
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>javabook</application>
    <version>1</version>
    <threadsafe>true</threadsafe>
    <manual-scaling>
        <instances>1</instances>
    </manual-scaling>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>    
</appengine-web-app>
root@appscale-image0:~# 

Example with master:

root@appscale-image0:~# 
root@appscale-image0:~# appscale deploy javabook
/usr/local/lib/python2.7/dist-packages/appscale/tools/admin_api/version.py:168: FutureWarning: The behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.
  if automatic_scaling and manual_scaling:
/usr/local/lib/python2.7/dist-packages/appscale/tools/admin_api/version.py:178: FutureWarning: The behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.
  elif automatic_scaling:
AppScale did not find the correct SDK jar versions in your app. The current supported SDK version is 1.8.4.
Tarring application
Copying over application
Deploying service default for javabook
Please wait for your app to start serving.
Your app can be reached at the following URL: http://192.168.103.229:8080
Updating indexes
root@appscale-image0:~# 
root@appscale-image0:~# 

With fix applied:

root@appscale-image0:~# 
root@appscale-image0:~# 
root@appscale-image0:~# appscale deploy javabook
AppScale did not find the correct SDK jar versions in your app. The current supported SDK version is 1.8.4.
Tarring application
Copying over application
Deploying service default for javabook
Please wait for your app to start serving.
Your app can be reached at the following URL: http://192.168.100.48:8080
Updating indexes
root@appscale-image0:~# 
root@appscale-image0:~#