+(comment 
+   Celestial, Copyright 2012 Ronen Narkis, narkisr.com
+   Licensed under the Apache License,
+   Version 2.0  (the "License") you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.)
+
 (ns celestial.hosts-api
   (:refer-clojure :exclude [type])
-  (:require [celestial.persistency :as p]) 
+  (:require 
+    [cemerick.friend :as friend]
+    [celestial.persistency :as p]) 
   (:use 
      [clojure.core.strint :only (<<)]
      [slingshot.slingshot :only  [throw+ try+]]


        (success {:ids (p/get-system-index :type type)}))

  (POST- "/host/system" [& ^:system props] {:nickname "addSystem" :summary "Add system" 
                                            :errorResponses (errors {:bad-req "Missing system type"})}
         (try+ 
           (let [id (p/add-system props)]
             (success {:msg "new system saved" :id id :props props})) 
           (catch [:type :celestial.persistency/missing-type] e 
             (bad-req {:msg (<< "Cannot create machine with missing type ~(e :t)}")}))))



(defc [:machine :os] (keyword v))
 
(defn curr-user []
  (:username (friend/current-authentication)))

(defroutes- hosts {:path "/host" :description "Operations on hosts"}

