Example #1
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    machineId = int(args.getTag("machineId"))
    ccl = j.clients.osis.getNamespace("cloudbroker")
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    vmachine = ccl.vmachine.get(machineId)
    image = ccl.image.get(vmachine.imageId)
    bootdisks = ccl.disk.search({
        "id": {
            "$in": vmachine.disks
        },
        "type": "B"
    })[1:]
    if len(bootdisks) != 1:
        return params
    bootdisk = bootdisks[0]
    popup = Popup(
        id="resizemachine",
        header="Resize Machine",
        submit_url="/restmachine/cloudbroker/machine/resize",
        showresponse=True,
    )
    if not image.hotResize:
        popup.addMessage("Machine resizing will take effect on next start")
    popup.addNumber("Number of VCPUS", "vcpus")
    popup.addNumber("Amount of memory", "memory")
    popup.addHiddenField("machineId", machineId)
    popup.write_html(page)

    return params
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag('cloudspaceId'))
    ccl = j.clients.osis.getNamespace('cloudbroker')
    vmachines = ccl.vmachine.search({
        'cloudspaceId': cloudspaceId,
        'status': {
            '$nin': ['ERROR', 'DESTROYED', 'DELETED']
        }
    })[1:]
    dropvmachines = list()

    for vmachine in sorted(vmachines, key=lambda vm: vm['name']):
        dropvmachines.append((vmachine['name'], vmachine['id']))

    popup = Popup(
        id='createportforwarding',
        header='Create Port Forwarding',
        submit_url='/restmachine/cloudbroker/machine/createPortForward')
    popup.addDropdown('Choose Machine', 'machineId', dropvmachines)
    popup.addNumber('Public Port', 'destPort', required=True)
    popup.addNumber('VM Port', 'localPort', required=True)
    popup.addDropdown('Protocol', 'proto', [('TCP', 'tcp'), ('UDP', 'udp')])
    popup.addHiddenField('reason', '')

    popup.write_html(page)

    return params
Example #3
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    machineId = int(args.getTag('machineId'))
    ccl = j.clients.osis.getNamespace('cloudbroker')
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    vmachine = ccl.vmachine.get(machineId)
    image = ccl.image.get(vmachine.imageId)
    bootdisks = ccl.disk.search({
        'id': {
            '$in': vmachine.disks
        },
        'type': 'B'
    })[1:]
    if len(bootdisks) != 1:
        return params
    bootdisk = bootdisks[0]
    popup = Popup(id='resizemachine',
                  header='Resize Machine',
                  submit_url='/restmachine/cloudbroker/machine/resize',
                  showresponse=True)
    if not image.hotResize:
        popup.addMessage('Machine resizing will take effect on next start')
    popup.addNumber('Number of VCPUS', 'vcpus')
    popup.addNumber('Amount of memory', 'memory')
    popup.addHiddenField('machineId', machineId)
    popup.write_html(page)

    return params
Example #4
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag("cloudspaceId"))
    ccl = j.clients.osis.getNamespace("cloudbroker")
    vmachines = ccl.vmachine.search(
        {
            "cloudspaceId": cloudspaceId,
            "status": {"$nin": ["ERROR", "DESTROYED", "DELETED"]},
        }
    )[1:]
    dropvmachines = list()

    for vmachine in sorted(vmachines, key=lambda vm: vm["name"]):
        dropvmachines.append((vmachine["name"], vmachine["id"]))

    popup = Popup(
        id="createportforwarding",
        header="Create Port Forwarding",
        submit_url="/restmachine/cloudbroker/machine/createPortForward",
    )
    popup.addDropdown("Choose Machine", "machineId", dropvmachines)
    popup.addNumber("Public Port", "destPort", required=True)
    popup.addNumber("VM Port", "localPort", required=True)
    popup.addDropdown("Protocol", "proto", [("TCP", "tcp"), ("UDP", "udp")])
    popup.addHiddenField("reason", "")

    popup.write_html(page)

    return params
Example #5
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    gid = int(args.getTag("gid"))
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    images = actors.images.list(accountId=None, cloudspaceId=None)
    dropimages = list()

    def imageSorter(image):
        return image["type"] + image["name"]

    for image in sorted(images, key=imageSorter):
        dropimages.append(("%(type)s: %(name)s" % image, image["id"]))

    popup = Popup(
        id="createsystemspace",
        header="Create system space on the grid",
        submit_url="/restmachine/cloudbroker/grid/createSystemSpace",
    )
    popup.addText("Resource Name", "name", required=True)
    popup.addDropdown("Choose Image", "imageId", dropimages)
    popup.addNumber("Boot Disk Size in GiB", "bootsize")
    popup.addNumber("Choose data Disk Size in GiB", "dataDiskSize")
    popup.addNumber("Number of VCPUS", "vcpus")
    popup.addNumber("Amount of memory in MiB", "memory")
    popup.addTextArea("User data for cloud-init",
                      "userdata",
                      required=False,
                      rows=5)
    popup.addHiddenField("id", gid)
    popup.write_html(page)

    return params
Example #6
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    gid = int(args.getTag('gid'))
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    images = actors.images.list(accountId=None, cloudspaceId=None)
    dropimages = list()

    def imageSorter(image):
        return image['type'] + image['name']

    for image in sorted(images, key=imageSorter):
        dropimages.append(("%(type)s: %(name)s" % image, image['id']))

    popup = Popup(id='createsystemspace', header='Create system space on the grid',
                  submit_url='/restmachine/cloudbroker/grid/createSystemSpace')
    popup.addText('Resource Name', 'name', required=True)
    popup.addDropdown('Choose Image', 'imageId', dropimages)
    popup.addNumber('Boot Disk Size in GiB', 'bootsize')
    popup.addNumber('Choose data Disk Size in GiB', 'dataDiskSize')
    popup.addNumber('Number of VCPUS', 'vcpus')
    popup.addNumber('Amount of memory in MiB', 'memory')
    popup.addTextArea('User data for cloud-init', 'userdata', required=False, rows=5)
    popup.addHiddenField('id', gid)
    popup.write_html(page)

    return params
def main(j, args, params, tags, tasklet):
    params.result = page = args.page

    pars = args.expandParamsAsDict()

    page.addMessage('<a href="#{0}" role="button" class="btn" data-toggle="modal">Launch demo modal {0}</a>'.format(pars['id']))

    popup = Popup(id=pars['id'], header='Text popup', submit_url=pars['submit_url'])
    popup.addHiddenField('hidden_field', 'hidden_value')
    popup.addText('First name', 'firstname', required=True)
    popup.addNumber('Age', 'age')
    popup.addDropdown('Choose licence', 'license', [('MIT', 'mit'), ('BSD', 'bsd'), ('GPL version 3', 'gpl3')])
    popup.addRadio('Choose licence', 'license2', [('MIT', 'mit'), ('BSD', 'bsd'), ('GPL version 3', 'gpl3')])
    popup.addCheckboxes('Choose the software', 'software', [('MS Office', 'msoffice'), ('Photoshop', 'photoshop')])
    popup.write_html(page)

    return params
Example #8
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag("cloudspaceId"))
    scl = j.clients.osis.getNamespace("cloudbroker")

    cloudspace = scl.cloudspace.get(cloudspaceId)
    stacks = scl.stack.search({"gid": cloudspace.gid, "status": "ENABLED"})[1:]
    sizes = scl.size.search({})[1:]

    dropdisksizes = list()
    dropstacks = list()
    disksizes = set()

    def sizeSorter(size):
        return size["memory"]

    def sortName(item):
        return item["name"]

    for size in sorted(disksizes):
        dropdisksizes.append(("%s GB" % size, str(size)))

    for stack in sorted(stacks, key=sortName):
        dropstacks.append((stack["name"], stack["id"]))

    popup = Popup(
        id="importmachine",
        header="Import Machine",
        submit_url="/restmachine/cloudapi/machines/importOVF",
        reload_on_success=False,
    )
    popup.addText("Machine Name", "name", required=True)
    popup.addText("Machine Description", "desc", required=True)
    popup.addText("Import Link", "link", required=True)
    popup.addText("OVF path", "path")
    popup.addText("Username for Link", "username")
    popup.addText("Password for Link", "passwd", type="password")
    popup.addNumber("Number of VCPUS", "vcpus")
    popup.addNumber("Amount of memory", "memory")
    popup.addHiddenField("cloudspaceId", cloudspaceId)
    popup.write_html(page)

    return params
Example #9
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag('cloudspaceId'))
    scl = j.clients.osis.getNamespace('cloudbroker')

    cloudspace = scl.cloudspace.get(cloudspaceId)
    stacks = scl.stack.search({'gid': cloudspace.gid, 'status': 'ENABLED'})[1:]
    sizes = scl.size.search({})[1:]

    dropdisksizes = list()
    dropstacks = list()
    disksizes = set()

    def sizeSorter(size):
        return size['memory']

    def sortName(item):
        return item['name']

    for size in sorted(disksizes):
        dropdisksizes.append(("%s GB" % size, str(size)))

    for stack in sorted(stacks, key=sortName):
        dropstacks.append((stack['name'], stack['id']))

    popup = Popup(id='importmachine',
                  header='Import Machine',
                  submit_url='/restmachine/cloudapi/machines/importOVF',
                  reload_on_success=False)
    popup.addText('Machine Name', 'name', required=True)
    popup.addText('Machine Description', 'desc', required=True)
    popup.addText('Import Link', 'link', required=True)
    popup.addText('OVF path', 'path')
    popup.addText('Username for Link', 'username')
    popup.addText('Password for Link', 'passwd', type='password')
    popup.addNumber('Number of VCPUS', 'vcpus')
    popup.addNumber('Amount of memory', 'memory')
    popup.addHiddenField('cloudspaceId', cloudspaceId)
    popup.write_html(page)

    return params
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    ccl = j.clients.osis.getNamespace("cloudbroker")
    locations = ccl.location.search({})[1:]

    popup = Popup(
        id="addexternalnetwork",
        header="Add External Network",
        submit_url="/restmachine/cloudbroker/iaas/addExternalNetwork",
    )
    popup.addText("Name", "name", required=True)
    popup.addText("Subnet CIDR", "subnet", required=True)
    popup.addText("Gateway IP Address", "gateway", required=True)
    popup.addText("Start IP Address", "startip", required=True)
    popup.addText("End IP Address", "endip", required=True)
    popup.addNumber(
        "VLAN Tag (leave empty if its the standard public bridge)",
        "vlan",
        required=False,
    )
    popup.addNumber(
        "AccountId (make external network exclusive to this accountId otherwise leave empty)",
        "accountId",
        required=False,
    )
    popup.addDropdown(
        "Choose Location",
        "gid",
        [(location["name"], location["gid"]) for location in locations],
    )
    popup.addText(
        " Enter list of ips(seperated by commas), eg 8.8.8.8,10.10.10.10. If you want to disable the health check, enter 127.0.0.1",
        "pingips",
        placeholder="If left empty default will be 8.8.8.8",
    )
    popup.write_html(page)

    return params
Example #11
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag("cloudspaceId"))
    scl = j.clients.osis.getNamespace("cloudbroker")
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    cloudspace = scl.cloudspace.get(cloudspaceId)
    stacks = scl.stack.search({"gid": cloudspace.gid, "status": "ENABLED"})[1:]

    images = actors.images.list(
        accountId=cloudspace.accountId, cloudspaceId=cloudspace.id
    )
    dropimages = list()
    dropstacks = list()
    dropstacks.append(("Auto", 0))

    def imageSorter(image):
        return image["type"] + image["name"]

    def sortName(item):
        return item["name"]

    for image in sorted(images, key=imageSorter):
        dropimages.append(("%(type)s: %(name)s" % image, image["id"]))

    for stack in sorted(stacks, key=sortName):
        dropstacks.append((stack["name"], stack["id"]))

    popup = Popup(
        id="createmachine",
        header="Create Machine On CPU Node",
        submit_url="/restmachine/cloudbroker/machine/createOnStack",
    )
    popup.addText("Machine Name", "name", required=True)
    popup.addText("Machine Description", "description", required=True)
    popup.addDropdown("Choose CPU Node", "stackid", dropstacks)
    popup.addDropdown("Choose Image", "imageId", dropimages)
    popup.addNumber("Disk Size in GiB", "disksize")
    popup.addNumber("Number of VCPUS", "vcpus")
    popup.addNumber("Amount of memory in MiB", "memory")
    popup.addTextArea("User data for cloud-init", "userdata", required=False, rows=5)
    popup.addHiddenField("cloudspaceId", cloudspaceId)
    popup.write_html(page)

    return params
Example #12
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    ccl = j.clients.osis.getNamespace('cloudbroker')
    locations = ccl.location.search({})[1:]

    popup = Popup(id='addexternalnetwork', header='Add External Network',
                  submit_url='/restmachine/cloudbroker/iaas/addExternalNetwork')
    popup.addText('Name', 'name', required=True)
    popup.addText('Subnet CIDR', 'subnet', required=True)
    popup.addText('Gateway IP Address', 'gateway', required=True)
    popup.addText('Start IP Address', 'startip', required=True)
    popup.addText('End IP Address', 'endip', required=True)
    popup.addNumber('VLAN Tag (leave empty if its the standard public bridge)', 'vlan', required=False)
    popup.addNumber('AccountId (make external network exclusive to this accountId otherwise leave empty)', 'accountId', required=False)
    popup.addDropdown('Choose Location', 'gid', [(location['name'], location['gid']) for location in locations])
    popup.addNumber("DHCP server ID (leave empty if no DHCP server for this network)", "dhcpServerId", required=False)
    popup.addText(' Enter list of ips(seperated by commas), eg 8.8.8.8,10.10.10.10. If you want to disable the health check, enter 127.0.0.1', 'pingips', placeholder='If left empty default will be 8.8.8.8')
    popup.write_html(page)

    return params
Example #13
0
def main(j, args, params, tags, tasklet):
    params.result = page = args.page
    cloudspaceId = int(args.getTag('cloudspaceId'))
    scl = j.clients.osis.getNamespace('cloudbroker')
    actors = j.apps.cloudbroker.iaas.cb.actors.cloudapi

    cloudspace = scl.cloudspace.get(cloudspaceId)
    stacks = scl.stack.search({'gid': cloudspace.gid, 'status': 'ENABLED'})[1:]

    images = actors.images.list(accountId=cloudspace.accountId, cloudspaceId=cloudspace.id)
    dropimages = list()
    dropstacks = list()
    dropstacks.append(('Auto', 0))
    def imageSorter(image):
        return image['type'] + image['name']

    def sortName(item):
        return item['name']

    for image in sorted(images, key=imageSorter):
        dropimages.append(("%(type)s: %(name)s" % image, image['id']))

    for stack in sorted(stacks, key=sortName):
        dropstacks.append((stack['name'], stack['id']))

    popup = Popup(id='createmachine', header='Create Machine On CPU Node',
                  submit_url='/restmachine/cloudbroker/machine/createOnStack')
    popup.addText('Machine Name', 'name', required=True)
    popup.addText('Machine Description', 'description', required=True)
    popup.addDropdown('Choose CPU Node', 'stackid', dropstacks)
    popup.addDropdown('Choose Image', 'imageId', dropimages)
    popup.addNumber('Disk Size in GiB', 'disksize')
    popup.addNumber('Number of VCPUS', 'vcpus')
    popup.addNumber('Amount of memory in MiB', 'memory')
    popup.addTextArea('User data for cloud-init', 'userdata', required=False, rows=5)
    popup.addHiddenField('cloudspaceId', cloudspaceId)
    popup.write_html(page)

    return params