nebraska: Break properties into two objects

There are typically two types of properties that nebraska is setup. One
is defined when the nebraska starts and never
changes (NebraskaProperties) and one can be changed during the lifetime
of the nebraska or be configured by each request (through function API
call or url query strings). This CL breaks these two kinds into two
separate objects so we can flexibly add new properties to each one of
them without too much code change, etc.

BUG=chromium:999047
TEST=cros flash
TEST=nebraska_unittest.py, auto_update_unittest.py

Change-Id: I4e7872f5659385bf31cf2c25bf3917564249df0e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/1951506
Tested-by: Amin Hassani <ahassani@chromium.org>
Commit-Queue: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Jae Hoon Kim <kimjae@chromium.org>
diff --git a/autoupdate.py b/autoupdate.py
index 5485fb2..8a4af28 100644
--- a/autoupdate.py
+++ b/autoupdate.py
@@ -343,7 +343,9 @@
     if self.max_updates == 0:
       _Log('Request received but max number of updates already served.')
       nebraska_obj = nebraska.Nebraska()
-      return nebraska_obj.GetResponseToRequest(request, no_update=True)
+      response_props = nebraska.ResponseProperties(no_update=True)
+      return nebraska_obj.GetResponseToRequest(request,
+                                               response_props=response_props)
 
     _Log('Update Check Received.')
 
@@ -357,10 +359,14 @@
            'nebraska to respond with no-update. The error was %s', e)
 
     _Log('Responding to client to use url %s to get image', base_url)
-    nebraska_obj = nebraska.Nebraska(update_payloads_address=base_url,
-                                     update_metadata_dir=local_payload_dir)
-    return nebraska_obj.GetResponseToRequest(
-        request, critical_update=self.critical_update)
+    nebraska_props = nebraska.NebraskaProperties(
+        update_payloads_address=base_url,
+        update_metadata_dir=local_payload_dir)
+    response_props = nebraska.ResponseProperties(
+        critical_update=self.critical_update)
+    nebraska_obj = nebraska.Nebraska(nebraska_props=nebraska_props)
+    return nebraska_obj.GetResponseToRequest(request,
+                                             response_props=response_props)
 
   def HandleHostInfoPing(self, ip):
     """Returns host info dictionary for the given IP in JSON format."""