Can I use some kind of script to create image and ghost my lab machines



  • HI,
    Are there any news regarding API implementation?
    I wanted to read changelog of RC versions, but keep getting 502 Bad Gateway.
    Andrew



  • @AndrewG78 We need volunteers to write some documentation. For the multicasting problem, it may not be implemented into the API yet - I’m not sure.

    Here are my example commands I promised:

    FOG Server IP in these examples is 10.0.0.28 and the keys you see in here are my test keys on my test server at home. I left them in there so everyone can have a valid example. 1 is the FOG ID of the host in FOG, testhost1 is the hostname.

    #wiki worthy

    Also pinging @Moderators and @Testers just so they get exposure.



  • Deploy an image to a single host with the name testhost1
    
    curl --silent -k -H 'Content-Type: application/json' -H 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' -H 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/host/testhost1/task -d '{"taskTypeID":1,"shutdown": true}'
    


  • Cancel tasks for a single host of ID 1
    
    curl --silent -X GET -H 'content-type: application/json' -H 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' -H 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/task/cancel -d '{"hostID": [1]}'
    


  • Capture image from host id 1
    
    curl --silent -k --header 'content-type: application/json' --header 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' --header 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/host/1/task --data '{"taskTypeID":2,"shutdown": true}'
    


  • Get task status of host ID 1
    
    curl --silent -X GET -H 'content-type: application/json' -H 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' -H 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/task/active -d '{"hostID": [1]}'
    


  • Set host IDs 1 2 and 3 to image ID 1
    
    curl --silent -k -H 'Content-Type: application/json' -H 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' -H 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/image/1/edit -X PUT -d '{"hosts": [1,2,3]}'
    


  • Cancel all tasks of types 1 or 2
    
    curl --silent -X DELETE -H 'content-type: application/json' -H 'fog-user-token: ZjBkMmE3YmI5NmUzZDcxYTliYzNkZTc4MmJhNTFiYTQ3Mzc2MTg5MzYxMThmNjA5NDYyMjllMTA5YzE0NWUxMjFiNzkyMTc5OTMwZjFhZGM5NWIxMTc3YWZmNTU2MmMwYjFhNjg0NjVmMTkyMGZkNDQxYmY0MzI1NWNkMzQyM2M=' -H 'fog-api-token: MzI2NDY1NjY2NjM0MzUzMDMzMzA2MzM1MzEzNzYyMzg2NTYyNjQ2MjMxMzczMTM0NjY2NDM0NjUzOTM2NjIzNDM4MzQ2NDM3MzY2MzM2MzMzNjYyMzUzODY0MzUzNDYyMzgzMDY2NjQzNTMxMzI2MzM5NjYzNjYzMzMzMzM0MzA=' http://10.0.0.28/fog/task/cancel -d '{"typeID": [1,2] }'
    

  • Senior Developer

    I think I want to push the bootstrap branch into the working branch and start getting that tested as well. I know the “GUI” side is totally different from the API side, but I’ve been improving and including new things that to the API side of things as well. As I progress I will likely add in container elements to help refine searches and what not, but I need documentation and I simply cannot do it alone unfortunately.

    I’ve tried very hard to make the API as basic as possible to ensure it can get maximum exposure with relative simplicity.



  • O’right
    Got it here.
    https://news.fogproject.org/simplified-api-documentation/
    Perhaps, it should be included on the wiki…

    EDIT:
    Hmmm. I think that it would be nice to have some multicast deployment examples.
    DOcs are missing this information.
    I’m getting
    {
    “error”: “Invalid tasking type passed”
    }
    whilst I use proper ID=8 for multicast



  • @Wayne Workman
    Thx, but did I miss some API documentation?
    I was looking for it here and on the wiki, but found nothing.



  • @AndrewG78 fog has an api now that can do this. I’ll dig up the commands I have as examples.



  • It is my second post with workaround today ;)
    Here is my working solution to execute deploy task for host with ID=2 from commandline.
    So, Jenkins support is not a problem from now on.
    I used curl with cookies file to achieve that.

    curl -c cookie.txt --request POST --url "http://<your_IP>/fog/management/index.php"  --header "content-type: multipart/form-data"  --form "uname=fog" --form "upass=password" --form "ulang=English" --form "login=Login"
    curl -b cookie.txt --request POST --url "http://<your_IP>/fog/management/index.php?node=host&sub=deploy&id=2&type=1" --header "content-type: multipart/form-data" --form "wol=on" --form "scheduleType=instant" --form "taskhosts[]=2"
    


  • This is possible if we directly interact with the database and certain specific fog web files.

    We can query the DB to get the ID of the host using it’s name, and create a job in the DB. Then, we call the below link to do a WOL.
    http://x.x.x.x/fog/management/index.php?sub=wakeEmUp&mac=aa:bb:cc:dd:ee:ff

    I’ve been planning on doing something like this at my house for automated testing purposes - and I’d be glad to work out the details with you here.


  • Senior Developer

    Right now I am not sure this is possible. I know we are working on having an API level system in the future but as far as one that just works out the box right now is not in place.

    That said, somebody did kind of help provide an similar type system that was based on python. I’m certain it probably doesn’t work right out the gate anymore.

    https://github.com/JC-SoCal/pyFog


 

408
Online

8.4k
Users

12.5k
Topics

117.7k
Posts