1 """Intend to set up a XTesting host on Ubuntu 20.04 on a hardware type of your choice."""
3 import geni.portal as portal
4 # Import the ProtoGENI library.
5 import geni.rspec.pg as rspec
9 pc.defineParameter('hardware_type', 'Hardware type', portal.ParameterType.NODETYPE, '')
11 params = pc.bindParameters()
13 request = pc.makeRequestRSpec()
15 node = request.RawPC('node-0')
16 node.hardware_type = params.hardware_type
17 node.disk_image = 'urn:publicid:IDN+emulab.net+image+emulab-ops//UBUNTU20-64-STD'
19 # set up root ssh key access
20 node.addService(rspec.Execute(shell="bash", command="sudo chown osc_int -R /root && tail -1 ~/.ssh/authorized_keys >> /root/.ssh/authorized_keys && rm /root/.ssh/id_rsa* && sudo chown root -R /root"))
22 # check out code from the it/test repo and install the desired dependencies
23 node.addService(rspec.Execute(shell="bash", command="sudo git clone \"https://gerrit.o-ran-sc.org/r/it/test\" /it-test && cd /it-test/XTesting/XTesting-demo && sudo ./install-dependencies.sh 2>&1 | tee /tmp/dep.log"))
25 # check out code from POWDER example for the rpc, and install the Python dependencies for the POWDER API access
26 node.addService(rspec.Execute(shell="bash", command="sudo git clone https://gitlab.flux.utah.edu/powder-profiles/powder-control /powder-control && sudo cp /powder-control/powder/rpc.py /it-test/XTesting/powder-control/powder/rpc.py && cd /it-test/XTesting/powder-control/ && sudo pip3 install -r requirements.txt"))
28 pc.printRequestRSpec(request)