Ejemplo n.º 1
0
    def get(self, request):
        """Get a list of flavors.

        The listing result is an object with property "items". Each item is
        a flavor. By default this will return the flavors for the user's
        current project. If the user is admin, public flavors will also be
        returned.

        :param is_public: For a regular user, set to True to see all public
            flavors. For an admin user, set to False to not see public flavors.
        :param get_extras: Also retrieve the extra specs.

        Example GET:
        http://localhost/api/nova/flavors?is_public=true
        """
        is_public = request.GET.get('is_public')
        is_public = (is_public and is_public.lower() == 'true')
        get_extras = request.GET.get('get_extras')
        get_extras = bool(get_extras and get_extras.lower() == 'true')
        flavors = api.nova.flavor_list(request, is_public=is_public,
                                       get_extras=get_extras)
        flavors = instances_utils.sort_flavor_list(request, flavors,
                                                   with_menu_label=False)
        result = {'items': []}
        for flavor in flavors:
            d = flavor.to_dict()
            if get_extras:
                d['extras'] = flavor.extras
            result['items'].append(d)
        return result
Ejemplo n.º 2
0
    def get(self, request):
        """Get a list of flavors.

        The listing result is an object with property "items". Each item is
        a flavor. By default this will return the flavors for the user's
        current project. If the user is admin, public flavors will also be
        returned.

        :param is_public: For a regular user, set to True to see all public
            flavors. For an admin user, set to False to not see public flavors.
        :param get_extras: Also retrieve the extra specs.

        Example GET:
        http://localhost/api/nova/flavors?is_public=true
        """
        is_public = request.GET.get('is_public')
        is_public = (is_public and is_public.lower() == 'true')
        get_extras = request.GET.get('get_extras')
        get_extras = bool(get_extras and get_extras.lower() == 'true')
        flavors = api.nova.flavor_list(request,
                                       is_public=is_public,
                                       get_extras=get_extras)
        flavors = instances_utils.sort_flavor_list(request,
                                                   flavors,
                                                   with_menu_label=False)
        result = {'items': []}
        for flavor in flavors:
            d = flavor.to_dict()
            if get_extras:
                d['extras'] = flavor.extras
            result['items'].append(d)
        return result
Ejemplo n.º 3
0
 def get_flavors(self, *args, **kwargs):
     try:
         flavors = api.trove.flavor_list(self.request)
         return instance_utils.sort_flavor_list(self.request, flavors)
     except Exception:
         redirect = reverse("horizon:project:databases:index")
         exceptions.handle(self.request, _("Unable to retrieve flavors."), redirect=redirect)
Ejemplo n.º 4
0
 def get_flavors(self, *args, **kwargs):
     try:
         flavors = api.trove.flavor_list(self.request)
         return instance_utils.sort_flavor_list(self.request, flavors)
     except Exception:
         redirect = reverse("horizon:project:databases:index")
         exceptions.handle(self.request,
                           _('Unable to retrieve flavors.'),
                           redirect=redirect)
Ejemplo n.º 5
0
 def populate_flavor_choices(self, request, context):
     flavors = context.get('flavors').values()
     if len(flavors) > 1:
         flavors = instance_utils.sort_flavor_list(request, flavors)
     if flavors:
         flavors.insert(0, ("", _("Select a New Flavor")))
     else:
         flavors.insert(0, ("", _("No flavors available")))
     return flavors
Ejemplo n.º 6
0
 def populate_flavor_choices(self, request, context):
     flavors = context.get('flavors').values()
     if len(flavors) > 1:
         flavors = instance_utils.sort_flavor_list(request, flavors)
     if flavors:
         flavors.insert(0, ("", _("Select a New Flavor")))
     else:
         flavors.insert(0, ("", _("No flavors available")))
     return flavors
Ejemplo n.º 7
0
    def populate_flavor_choices(self, request, context):
        old_flavor_id = context.get('old_flavor_id')
        flavors = context.get('flavors').values()

        # Remove current flavor from the list of flavor choices
        flavors = [flavor for flavor in flavors if flavor.id != old_flavor_id]
        if len(flavors) > 1:
            flavors = instance_utils.sort_flavor_list(request, flavors)
        if flavors:
            flavors.insert(0, ("", _("Select a New Flavor")))
        else:
            flavors.insert(0, ("", _("No flavors available")))
        return flavors
Ejemplo n.º 8
0
    def populate_flavor_choices(self, request, context):
        old_flavor_id = context.get('old_flavor_id')
        flavors = context.get('flavors').values()

        # Remove current flavor from the list of flavor choices
        flavors = [flavor for flavor in flavors if flavor.id != old_flavor_id]
        if len(flavors) > 1:
            flavors = instance_utils.sort_flavor_list(request, flavors)
        if flavors:
            flavors.insert(0, ("", _("Select a New Flavor")))
        else:
            flavors.insert(0, ("", _("No flavors available")))
        return flavors
Ejemplo n.º 9
0
    def _get_flavors(self, request, source_type=None):
        sorted_flavors_list = []

        if source_type:
            flavors = instance_utils.flavor_list(request)
            if flavors:
                new_flavors = []
                for flavor in flavors:
                    flavor_name = str(flavor.name)
                    if flavor_name.startswith(source_type):
                        new_flavors.append(flavor)
                sorted_flavors_list = instance_utils.sort_flavor_list(request, new_flavors)

        return sorted_flavors_list
Ejemplo n.º 10
0
    def _get_flavors(self, request, source_type=None):
        sorted_flavors_list = []

        if source_type:
            flavors = instance_utils.flavor_list(request)
            if flavors:
                new_flavors = []
                for flavor in flavors:
                    flavor_name = str(flavor.name)
                    if flavor_name.startswith(source_type):
                        new_flavors.append(flavor)
                sorted_flavors_list = instance_utils.sort_flavor_list(
                    request, new_flavors)

        return sorted_flavors_list
Ejemplo n.º 11
0
    def __init__(self, *args, **kwargs):
        try:
            request = args[0]
            template_string = ""

            if "template_upload" in kwargs:
                template_upload = kwargs.pop('template_upload')
                super(ImportNodegroupTemplateDetailsForm, self).__init__(
                    *args, **kwargs)

                template_string = template_upload.read()
                self.fields["template"].initial = template_string

            else:
                super(ImportNodegroupTemplateDetailsForm, self).__init__(
                    *args, **kwargs)
                template_string = self.data["template"]

            template_json = json.loads(template_string)
            template_json = template_json["node_group_template"]

            security_group_list = neutron.security_group_list(request)
            security_group_choices = \
                [(sg.id, sg.name) for sg in security_group_list]
            self.fields["security_groups"].choices = security_group_choices

            pools = neutron.floating_ip_pools_list(request)
            pool_choices = [(pool.id, pool.name) for pool in pools]
            pool_choices.insert(0, (None, "Do not assign floating IPs"))
            self.fields["floating_ip_pool"].choices = pool_choices

            flavors = nova_utils.flavor_list(request)
            if flavors:
                self.fields["flavor"].choices = nova_utils.sort_flavor_list(
                    request, flavors)
            else:
                self.fields["flavor"].choices = []

            version = (template_json.get("hadoop_version", None) or
                       template_json["plugin_version"])
            self.fields["image_id"].choices = \
                self._populate_image_choices(request,
                                             template_json["plugin_name"],
                                             version)
        except (ValueError, KeyError):
            raise exceptions.BadRequest(_("Could not parse template"))
        except Exception:
            exceptions.handle(request)
Ejemplo n.º 12
0
    def __init__(self, *args, **kwargs):
        try:
            request = args[0]
            template_string = ""

            if "template_upload" in kwargs:
                template_upload = kwargs.pop('template_upload')
                super(ImportNodegroupTemplateDetailsForm,
                      self).__init__(*args, **kwargs)

                template_string = template_upload.read()
                self.fields["template"].initial = template_string

            else:
                super(ImportNodegroupTemplateDetailsForm,
                      self).__init__(*args, **kwargs)
                template_string = self.data["template"]

            template_json = json.loads(template_string)
            template_json = template_json["node_group_template"]

            security_group_list = neutron.security_group_list(request)
            security_group_choices = \
                [(sg.id, sg.name) for sg in security_group_list]
            self.fields["security_groups"].choices = security_group_choices

            pools = neutron.floating_ip_pools_list(request)
            pool_choices = [(pool.id, pool.name) for pool in pools]
            pool_choices.insert(0, (None, "Do not assign floating IPs"))
            self.fields["floating_ip_pool"].choices = pool_choices

            flavors = nova_utils.flavor_list(request)
            if flavors:
                self.fields["flavor"].choices = nova_utils.sort_flavor_list(
                    request, flavors)
            else:
                self.fields["flavor"].choices = []

            version = (template_json.get("hadoop_version", None)
                       or template_json["plugin_version"])
            self.fields["image_id"].choices = \
                self._populate_image_choices(request,
                                             template_json["plugin_name"],
                                             version)
        except (ValueError, KeyError):
            raise exceptions.BadRequest(_("Could not parse template"))
        except Exception:
            exceptions.handle(request)
Ejemplo n.º 13
0
    def _add_datastore_flavor_field(self, request, datastore,
                                    datastore_version):
        name = self._build_widget_field_name(datastore, datastore_version)
        attr_key = 'data-datastore-' + name
        field = forms.ChoiceField(label=_("Flavor"),
                                  help_text=_("Size of image to launch."),
                                  required=False,
                                  widget=forms.Select(
                                      attrs={
                                          'class': 'switched',
                                          'data-switch-on': 'datastore',
                                          attr_key: _("Flavor")
                                      }))
        valid_flavors = self.datastore_flavors(request, datastore,
                                               datastore_version)
        if valid_flavors:
            field.choices = instance_utils.sort_flavor_list(
                request, valid_flavors)

        return name, field
Ejemplo n.º 14
0
def get_dcs(request):
    dcs = []
    for zone in get_zones(request, False):
        try:
            limit = api.proxy.project_absolute_limits(request, zone.id)
            if limit.maxTotalInstances - limit.totalInstancesUsed <= 0:
                disabled = True
            else:
                disabled = zone.disabled
        except:
            disabled = True

        _flavors = instance_utils.flavor_list(request, zone.id)
        flavors = instance_utils.sort_flavor_list(request, _flavors)

        dcs.append({"id": zone.id, "name": zone.name,
                    "disabled": disabled, "flavors": flavors})
    random.shuffle(dcs)

    return HttpResponse(json.dumps({"dcs": dcs}), content_type='application/json')
Ejemplo n.º 15
0
    def _add_datastore_flavor_field(self,
                                    request,
                                    datastore,
                                    datastore_version):
        name = self._build_widget_field_name(datastore, datastore_version)
        attr_key = 'data-datastore-' + name
        field = forms.ChoiceField(
            label=_("Flavor"),
            help_text=_("Size of image to launch."),
            required=False,
            widget=forms.Select(attrs={
                'class': 'switched',
                'data-switch-on': 'datastore',
                attr_key: _("Flavor")
            }))
        valid_flavors = self.datastore_flavors(request,
                                               datastore,
                                               datastore_version)
        if valid_flavors:
            field.choices = instance_utils.sort_flavor_list(
                request, valid_flavors)

        return name, field
Ejemplo n.º 16
0
 def populate_flavor_choices(self, request, context):
     flavors = nova_utils.flavor_list(request)
     if flavors:
         return nova_utils.sort_flavor_list(request, flavors)
     return []
Ejemplo n.º 17
0
 def populate_flavor_choices(self, request, context):
     flavors = self.flavors(request)
     if flavors:
         return instance_utils.sort_flavor_list(request, flavors)
     return []
Ejemplo n.º 18
0
 def _flavor_choices(self, request):
     flavors = utils.flavor_list(request)
     if flavors:
         return utils.sort_flavor_list(request, flavors)
     return []
Ejemplo n.º 19
0
 def populate_flavor_choices(self, request, context):
     flavors = instance_utils.flavor_list(request)
     if flavors:
         return instance_utils.sort_flavor_list(request, flavors)
     return []
Ejemplo n.º 20
0
 def _flavor_choices(self, request):
     flavors = utils.flavor_list(request)
     if flavors:
         return utils.sort_flavor_list(request, flavors)
     return []