change pipelib to work with projects
This commit is contained in:
@@ -38,37 +38,37 @@ class VpnCommands(object):
|
||||
self.pipe = pipelib.CloudPipe(cloud.CloudController())
|
||||
|
||||
def list(self):
|
||||
print "%-12s\t" % 'user',
|
||||
print "%-12s\t" % 'project',
|
||||
print "%-12s\t" % 'ip:port',
|
||||
print "%s" % 'state'
|
||||
for user in self.manager.get_users():
|
||||
print "%-12s\t" % user.name,
|
||||
print "%s:%s\t" % (user.vpn_ip, user.vpn_port),
|
||||
for project in self.manager.get_projects():
|
||||
print "%-12s\t" % project.name,
|
||||
print "%s:%s\t" % (project.vpn_ip, project.vpn_port),
|
||||
|
||||
vpn = self.__vpn_for(user.name)
|
||||
vpn = self.__vpn_for(project.id)
|
||||
if vpn:
|
||||
print vpn['instance_id'],
|
||||
print vpn['state']
|
||||
else:
|
||||
print None
|
||||
|
||||
def __vpn_for(self, username):
|
||||
def __vpn_for(self, project_id):
|
||||
for instance in self.instdir.all:
|
||||
if (instance.state.has_key('image_id')
|
||||
and instance['image_id'] == FLAGS.vpn_image_id
|
||||
and not instance['state'] in ['shutting_down', 'shutdown']
|
||||
and instance['owner_id'] == username):
|
||||
and instance['project_id'] == project_id):
|
||||
return instance
|
||||
|
||||
def spawn(self):
|
||||
for u in reversed(self.manager.get_users()):
|
||||
if not self.__vpn_for(u.id):
|
||||
print 'spawning %s' % u.id
|
||||
self.pipe.launch_vpn_instance(u.id)
|
||||
for p in reversed(self.manager.get_projects()):
|
||||
if not self.__vpn_for(p.id):
|
||||
print 'spawning %s' % p.id
|
||||
self.pipe.launch_vpn_instance(p.id)
|
||||
time.sleep(10)
|
||||
|
||||
def run(self, username):
|
||||
self.pipe.launch_vpn_instance(username)
|
||||
def run(self, project_id):
|
||||
self.pipe.launch_vpn_instance(project_id)
|
||||
|
||||
|
||||
class UserCommands(object):
|
||||
|
||||
@@ -474,9 +474,6 @@ class UserManager(object):
|
||||
signed_cert = crypto.sign_csr(csr, Project.safe_id(project))
|
||||
return (private_key, signed_cert)
|
||||
|
||||
def sign_cert(self, csr, uid):
|
||||
return crypto.sign_csr(csr, uid)
|
||||
|
||||
def __cert_subject(self, uid):
|
||||
# FIXME(ja) - this should be pulled from a global configuration
|
||||
return "/C=US/ST=California/L=Mountain View/O=Anso Labs/OU=Nova Dev/CN=%s-%s" % (uid, str(datetime.datetime.utcnow().isoformat()))
|
||||
|
||||
Reference in New Issue
Block a user