Browse Source

Merge pull request #1751 from waiteb3/update_erl_and_phoenix

Fix broken download and update phoenix to 1.0
blee-techempower 9 years ago
parent
commit
6bf35eb965

+ 1 - 1
frameworks/Elixir/phoenix/config/dev.exs

@@ -23,7 +23,7 @@ config :hello, Hello.Endpoint,
   ]
 
 config :hello, Hello.Repo,
-  adapter: Ecto.Adapters.MySQL,
+  adapter: Ecto.Adapters.Postgres,
   username: "benchmarkdbuser",
   password: "benchmarkdbpass",
   database: "hello_world",

+ 3 - 2
frameworks/Elixir/phoenix/config/prod.exs

@@ -7,11 +7,12 @@ config :hello, Hello.Endpoint,
   server: true
 
 config :hello, Hello.Repo,
-  adapter: Ecto.Adapters.MySQL,
+  adapter: Ecto.Adapters.Postgres,
   username: "benchmarkdbuser",
   password: "benchmarkdbpass",
   database: "hello_world",
-  hostname: "localhost"
+  hostname: "localhost",
+  pool_size: 256
 
 # ## SSL Support
 #

+ 2 - 1
frameworks/Elixir/phoenix/lib/hello/endpoint.ex

@@ -9,6 +9,7 @@ defmodule Hello.Endpoint do
   # Code reloading will only work if the :code_reloader key of
   # the :phoenix application is set to true in your config file.
   if code_reloading? do
+    socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
     plug Phoenix.LiveReloader
     plug Phoenix.CodeReloader
   end
@@ -28,5 +29,5 @@ defmodule Hello.Endpoint do
     key: "_hello_key",
     signing_salt: "DNlAnJ2o"
 
-  plug :router, Hello.Router
+  plug Hello.Router
 end

+ 9 - 9
frameworks/Elixir/phoenix/mix.exs

@@ -4,7 +4,7 @@ defmodule Hello.Mixfile do
   def project do
    [app: :hello,
     version: "0.0.1",
-    elixir: "~> 1.0",
+    elixir: "~> 1.1",
     elixirc_paths: elixirc_paths(Mix.env),
     compilers: [:phoenix] ++ Mix.compilers,
     build_embedded: Mix.env == :prod,
@@ -17,7 +17,7 @@ defmodule Hello.Mixfile do
   # Type `mix help compile.app` for more information
   def application do
     [mod: {Hello, []},
-     applications: [:phoenix, :phoenix_ecto, :mariaex, :cowboy, :logger, :phoenix_html]]
+     applications: [:phoenix, :phoenix_ecto, :postgrex, :cowboy, :logger, :phoenix_html]]
   end
 
   defp elixirc_paths(_), do: ["lib", "web"]
@@ -26,12 +26,12 @@ defmodule Hello.Mixfile do
   #
   # Type `mix help deps` for examples and options
   defp deps do
-    [{:phoenix, "~> 0.13.1"},
-     {:phoenix_ecto, "~> 0.4"},
-     {:mariaex, "~> 0.3.0"},
-     {:cowboy, "~> 1.0"},
-     {:phoenix_html, "~> 1.0"},
-     {:phoenix_live_reload, "~> 0.4", only: :dev},
-     {:exrm, "~> 0.15.3"}]
+    [{:phoenix, "~> 1.0.3"},
+     {:phoenix_ecto, "~> 1.1"},
+     {:postgrex, ">= 0.0.0"},
+     {:cowboy, "~> 1.0.0"},
+     {:phoenix_html, "~> 2.1"},
+     {:phoenix_live_reload, "~> 1.0", only: :dev},
+     {:exrm, "~> 0.19.8"}]
   end
 end

+ 2 - 3
frameworks/Elixir/phoenix/setup.sh

@@ -4,10 +4,9 @@ fw_depends elixir
 
 sed -i 's|localhost|'${DBHOST}'|g' config/prod.exs
 
-rm -rf _build deps rel
+rm -rf _build deps
 
-MIX_ENV=prod
-export MIX_ENV
+export MIX_ENV=prod
 mix local.hex --force
 mix deps.get --force
 mix compile --force

+ 17 - 13
frameworks/Elixir/phoenix/web/controllers/page_controller.ex

@@ -3,10 +3,6 @@ defmodule Hello.PageController do
   alias Hello.World
   alias Hello.Fortune
 
-  plug :action
-  plug :scrub_params, "world" when action in [:create, :update]
-
-
   def index(conn, _params) do
     json conn, %{"TE Benchmarks\n" => "Started"}
   end
@@ -21,10 +17,14 @@ defmodule Hello.PageController do
   end
 
   def queries(conn, _params) do
-    q = case String.to_integer(_params["queries"]) do
-      x when x < 1    -> 1
-      x when x > 500  -> 500
-      x               -> x
+    q = try do
+      case String.to_integer(_params["queries"]) do
+        x when x < 1    -> 1
+        x when x > 500  -> 500
+        x               -> x
+      end
+    rescue
+      ArgumentError -> 1
     end
     json conn, Enum.map(1..q, fn _ -> Repo.get(World, :random.uniform(10000)) end)
   end
@@ -35,17 +35,21 @@ defmodule Hello.PageController do
   end
 
   def updates(conn, _params) do
-    q = case String.to_integer(_params["queries"]) do
-      x when x < 1    -> 1
-      x when x > 500  -> 500
-      x               -> x
+    q = try do
+      case String.to_integer(_params["queries"]) do
+        x when x < 1    -> 1
+        x when x > 500  -> 500
+        x               -> x
+      end
+    rescue
+      ArgumentError -> 1
     end
     json conn, Enum.map(1..q, fn _ ->
       w = Repo.get(World, :random.uniform(10000))
       changeset = World.changeset(w, %{randomNumber: :random.uniform(10000)})
       Repo.update(changeset)
       w end)
-    end
+  end
 
   def plaintext(conn, _params) do
     text conn, "Hello, world!"

+ 1 - 0
frameworks/Elixir/phoenix/web/models/fortune.ex

@@ -1,6 +1,7 @@
 defmodule Hello.Fortune do
   use Hello.Web, :model
 
+  @derive {Poison.Encoder, only: [:id, :message]}
   schema "fortune" do
     field :message, :string
   end

+ 3 - 2
frameworks/Elixir/phoenix/web/models/world.ex

@@ -1,11 +1,12 @@
 defmodule Hello.World do
   use Hello.Web, :model
 
+  @derive {Poison.Encoder, only: [:id, :randomnumber]}
   schema "world" do
-    field :randomNumber, :integer
+    field :randomnumber, :integer
   end
 
-  @required_fields ~w(randomNumber)
+  @required_fields ~w(randomnumber)
   @optional_fields ~w()
 
   def changeset(model, params \\ nil) do

+ 8 - 7
frameworks/Elixir/phoenix/web/router.ex

@@ -1,19 +1,20 @@
 defmodule Hello.Router do
   use Hello.Web, :router
 
-  pipeline :browser do
-    plug :accepts, ["html"]
-    plug :fetch_session
-    plug :fetch_flash
-    plug :protect_from_forgery
-  end
+  #pipeline :browser do
+  #  plug :accepts, ["html"]
+  #  plug :fetch_session
+  #  plug :fetch_flash
+  #  plug :protect_from_forgery
+  #  plug :put_secure_browser_headers
+  #end
 
   pipeline :api do
     plug :accepts, ["json"]
   end
 
   scope "/", Hello do
-    pipe_through :browser # Use the default browser stack
+    pipe_through :api # Use the default browser stack
 
     get "/json", PageController, :_json
     get "/db", PageController, :db

+ 0 - 0
frameworks/Elixir/phoenix/web/templates/layout/application.html.eex → frameworks/Elixir/phoenix/web/templates/layout/app.html.eex


+ 2 - 1
frameworks/Elixir/phoenix/web/web.ex

@@ -37,7 +37,8 @@ defmodule Hello.Web do
       use Phoenix.View, root: "web/templates"
 
       # Import convenience functions from controllers
-      import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]
+      import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2,
+                                        action_name: 1, controller_module: 1]
 
       # Import URL helpers from the router
       import Hello.Router.Helpers

+ 1 - 1
toolset/setup/linux/languages/elixir.sh

@@ -8,7 +8,7 @@ RETCODE=$(fw_exists ${IROOT}/elixir.installed)
   return 0; }
 
 ELIXIR_HOME=$IROOT/elixir
-VERSION="1.0.4-1"
+VERSION="1.1.0-1"
 RELEASE="trusty"
 ARCH="amd64"
 

+ 1 - 1
toolset/setup/linux/languages/erlang.sh

@@ -9,7 +9,7 @@ VERSION="17.4-2"
 RELEASE="trusty"
 ARCH="amd64"
 
-fw_get -O http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_esl/esl-erlang_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb
+fw_get -O http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_2_esl/esl-erlang_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb
 dpkg -x esl-erlang_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb $IROOT/erlang
 $IROOT/erlang/usr/lib/erlang/Install -minimal $IROOT/erlang/usr/lib/erlang