Hello,
I'm working on a personal project using Rackspace's "pyrax" bindings to
create a "Control Panel". I've made some progress however am confused on a
few things and could use some guidance.
1) Correctly storing authenticated user data.
e.g.
I have a module called "rs_auth.py" that takes username/apikey and
authenticates to the service.
import pyrax
def cloud_auth(username, apikey):
pyrax.set_setting("identity_type", "rackspace")
ctx = pyrax.create_context(username=username, api_key=apikey)
try:
if ctx.authenticated == 'True':
pass
else:
ctx.authenticate()
except Exception as e:
return e
return ctx
I have tried doing "session.dbaas = rs_auth.cloud_auth(session.username,
session.apikey" however this ends up not working and I have to instantiate
"dbaas = rs_auth.cloud_auth(session.username, session.apikey)" in every
controller function that requires to interact with the service. I'm sure
there is a simpler way.
For example, "databases.py":
def index():
if not session.username:
redirect(URL('default', 'login'))
else:
*dbaas = rs_auth.cloud_auth(session.username, session.apikey)*
ord_d = dbaas.ORD.database.client
dfw_d = dbaas.DFW.database.client
iad_d = dbaas.IAD.database.client
syd_d = dbaas.SYD.database.client
hkg_d = dbaas.HKG.database.client
cdb = (ord_d, dfw_d, iad_d, syd_d, hkg_d)
return dict(cdb=cdb)
def instance():
*dbaas = rs_auth.cloud_auth(session.username, session.apikey)*
region = request.args(0)
dbi = request.args(1)
instance = None
try:
if region == "DFW":
instance = dbaas.DFW.database.client.get(dbi)
elif region == "ORD":
instance = dbaas.ORD.database.client.get(dbi)
elif region == "IAD":
instance = dbaas.IAD.database.client.get(dbi)
elif region == "SYD":
instance = dbaas.SYD.database.client.get(dbi)
elif region == "HKG":
instance = dbaas.HKG.database.client.get(dbi)
except Exception as e:
return e
return dict(instance=instance)
2) Executing a object method in a view.
e.g. From the above "instance" function, a database is looked up and then
returned to the view, "instance.html".
{{extend 'layout.html'}}
Name: {{=instance.name}} <br />
ID: {{=instance.id}} <br />
Hostname: {{=instance.hostname}} <br />
Status: {{=instance.status}} <br />
Volume size: {{=instance.volume.size}} <br />
Volume used: {{=instance.volume.used}} <br />
*<INPUT type="button" value="Reboot" onclick="" /> <br /> (no clue what to
do here)*
<INPUT type="button" value="Back"
onclick="location.href='{{=URL('index')}}'" />
There is a method available for the object, "instance.restart()", but I've
been unable to figure out how to execute it, (do I have to create a
separate "restart" function to actually call the objects restart method?
Having read the book I /think/ ajax/jquery would be the solution however I
greatly lack skills in those areas.
Thus with that being mentioned, the issues here are most likely due to lack
of know how on my end, if any references could be provided to provide a
clearer understanding, it would be greatly appreciated.
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.