Changeset b234bb9 for fedd/fedd_proj.py


Ignore:
Timestamp:
Aug 28, 2008 2:47:15 PM (16 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
Children:
2d5c8b6
Parents:
0d830de
Message:

Experiment creation integrated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fedd/fedd_proj.py

    r0d830de rb234bb9  
    2020from fedd_util import *
    2121from fedd_allocate_project import *
     22from fedd_create_experiment import *
    2223import parse_detail
    2324from service_error import *
     
    3132    """
    3233    # Attributes that can be parsed from the configuration file
    33     bool_attrs = ("dynamic_projects", "project_priority")
     34    bool_attrs = ("dynamic_projects", "project_priority", "create_debug")
    3435    emulab_attrs = ("boss", "ops", "domain", "fileserver", "eventserver")
    3536    id_attrs = ("testbed", "cert_file", "cert_pwd", "trusted_certs", "proxy",
    3637            "proxy_cert_file", "proxy_cert_pwd", "proxy_trusted_certs",
    3738            "dynamic_projects_url", "dynamic_projects_cert_file",
    38             "dynamic_projects_cert_pwd", "dynamic_projects_trusted_certs")
     39            "dynamic_projects_cert_pwd", "dynamic_projects_trusted_certs",
     40            "create_experiment_cert_file", "create_experiment_cert_pwd",
     41            "create_experiment_trusted_certs", "federation_script_dir",
     42            "ssh_pubkey_file")
    3943
    4044    # Used by the SOAP caller
    4145    soap_namespaces = ('http://www.isi.edu/faber/fedd.wsdl',
    4246            'http://www.isi.edu/faber/fedd_internal.wsdl')
    43     soap_methods = { 'RequestAccess': 'soap_RequestAccess' }
     47    soap_methods = {\
     48            'RequestAccess': 'soap_RequestAccess',\
     49            'Create' : 'soap_Create',\
     50            }
    4451    xmlrpc_methods = { 'RequestAccess': 'xmlrpc_RequestAccess' }
    4552
     
    8592        self.fedid_default = "user"
    8693        self.restricted = []
    87 
    88         # Delete these
    89         self.wap = '/usr/testbed/sbin/wap'
    90         self.newproj = '/usr/testbed/sbin/newproj'
    91         self.mkproj = '/usr/testbed/sbin/mkproj'
    92         self.grantnodetype = '/usr/testbed/sbin/grantnodetype'
     94        self.create_debug = False
    9395
    9496        # Read the configuration
     
    120122                self.dynamic_projects_trusted_certs,
    121123                self.dynamic_projects_cert_pwd)
     124
     125        # Initialize create experiment certs
     126        if not self.create_experiment_cert_file:
     127            self.create_experiment_cert_file = self.proxy_cert_file
     128            self.create_experiment_cert_pwd = self.proxy_cert_pwd
     129
     130        if self.create_experiment_trusted_certs == None:
     131            self.create_experiment_trusted_certs = self.proxy_trusted_certs
    122132
    123133        if self.dynamic_projects_url == None:
     
    130140                fedd_allocate_project_remote(self.dynamic_projects,
    131141                        self.dynamic_projects_url, proj_certs)
     142
     143        create_kwargs = { }
     144        if self.federation_script_dir:
     145            create_kwargs['scripts_dir'] = self.federation_script_dir
     146        if self.ssh_pubkey_file:
     147            create_kwargs['ssh_pubkey_file'] = self.ssh_pubkey_file
     148        if self.create_experiment_cert_file:
     149            create_kwargs['cert_file'] = self.create_experiment_cert_file
     150        if self.create_experiment_cert_pwd:
     151            create_kwargs['cert_pwd'] = self.create_experiment_cert_pwd
     152        if self.create_experiment_trusted_certs:
     153            create_kwargs['trusted_certs'] = \
     154                    self.create_experiment_trusted_certs
     155
     156        self.create_experiment = fedd_create_experiment_local(
     157            tbmap = {
     158                'deter':'https://users.isi.deterlab.net:23235',
     159                'emulab':'https://users.isi.deterlab.net:23236',
     160                'ucb':'https://users.isi.deterlab.net:23237',
     161                },
     162            trace_file=sys.stderr,
     163            debug=self.create_debug,
     164            **create_kwargs
     165        )
    132166
    133167    def dump_state(self):
     
    525559        return resp
    526560
     561    def soap_Create(self, ps, fid):
     562        req = ps.Parse(CreateRequestMessage.typecode)
     563
     564        msg = self.create_experiment.create_experiment(unpack_soap(req), fedid)
     565
     566        resp = CreateResponseMessage()
     567        resp.set_element_CreateResponseBody(
     568                pack_soap(resp, "CreateResponseBody", msg))
     569
     570        return resp
     571
    527572    def xmlrpc_RequestAccess(self, params, fid):
    528573        msg = self.RequestAccess(params[0], fedid)
Note: See TracChangeset for help on using the changeset viewer.