Esempio n. 1
0
 def get_data(self):
     try:
         share_group_id = self.kwargs['share_group_id']
         share_group = manila.share_group_get(self.request, share_group_id)
         members = manila.share_list(
             self.request, search_opts={"share_group_id": share_group_id})
         share_group.members = members
         share_group.share_group_type = manila.share_group_type_get(
             self.request, share_group.share_group_type_id)
         share_types = manila.share_type_list(self.request)
         share_group.share_types = [{
             "id":
             st.id,
             "name":
             st.name,
             "is_public":
             getattr(st, 'share_type_access:is_public'),
             "dhss":
             st.extra_specs.get('driver_handles_share_servers')
         } for st in share_types if st.id in share_group.share_types]
         return share_group
     except Exception:
         redirect = reverse('horizon:admin:share_groups:index')
         exceptions.handle(self.request,
                           _('Unable to retrieve share group details.'),
                           redirect=redirect)
Esempio n. 2
0
    def __init__(self, request, *args, **kwargs):
        super(AddProjectAction, self).__init__(request, *args, **kwargs)
        default_role_field_name = self.get_default_role_field_name()
        self.fields[default_role_field_name] = forms.CharField(required=False)
        self.fields[default_role_field_name].initial = 'member'

        field_name = self.get_member_field_name('member')
        self.fields[field_name] = forms.MultipleChoiceField(required=False)
        share_group_type_id = self.initial['id']

        # Get list of existing projects
        try:
            projects, __ = keystone.tenant_list(request)
        except Exception:
            err_msg = _('Unable to get list of projects.')
            exceptions.handle(request, err_msg)

        # Get list of projects with access to this Share Group Type
        try:
            share_group_type = manila.share_group_type_get(
                request, share_group_type_id)
            self.share_group_type_name = share_group_type.name
            projects_initial = manila.share_group_type_access_list(
                request, share_group_type)
        except Exception:
            err_msg = _(
                'Unable to get information about share group type access.')
            exceptions.handle(request, err_msg)

        self.fields[field_name].choices = [
            (project.id, project.name or project.id) for project in projects]
        self.fields[field_name].initial = [
            pr.project_id for pr in projects_initial]
        self.projects_initial = set(self.fields[field_name].initial)
Esempio n. 3
0
    def test_share_group_type_get(self):
        sgt = "fake_sgt"

        result = api.share_group_type_get(self.request, sgt)

        self.assertIsNotNone(result)
        self.assertEqual(self.manilaclient.share_group_types.get.return_value,
                         result)
        self.manilaclient.share_group_types.get.assert_called_once_with(sgt)
Esempio n. 4
0
    def test_share_group_type_get(self):
        sgt = "fake_sgt"

        result = api.share_group_type_get(self.request, sgt)

        self.assertIsNotNone(result)
        self.assertEqual(
            self.manilaclient.share_group_types.get.return_value, result)
        self.manilaclient.share_group_types.get.assert_called_once_with(sgt)
Esempio n. 5
0
 def get_object(self):
     if not hasattr(self, "_object"):
         sgt_id = self.kwargs["share_group_type_id"]
         try:
             self._object = manila.share_group_type_get(
                 self.request, sgt_id)
         except Exception:
             msg = _("Unable to retrieve share_gruop_type.")
             url = reverse("horizon:admin:share_group_types:index")
             exceptions.handle(self.request, msg, redirect=url)
     return self._object
Esempio n. 6
0
 def get_object(self):
     if not hasattr(self, "_object"):
         sgt_id = self.kwargs["share_group_type_id"]
         try:
             self._object = manila.share_group_type_get(
                 self.request, sgt_id)
         except Exception:
             msg = _("Unable to retrieve share_gruop_type.")
             url = reverse("horizon:admin:share_group_types:index")
             exceptions.handle(self.request, msg, redirect=url)
     return self._object
Esempio n. 7
0
    def __init__(self, request, *args, **kwargs):
        super(AddProjectAction, self).__init__(request, *args, **kwargs)
        default_role_field_name = self.get_default_role_field_name()
        self.fields[default_role_field_name] = forms.CharField(required=False)
        self.fields[default_role_field_name].initial = 'member'

        field_name = self.get_member_field_name('member')
        self.fields[field_name] = forms.MultipleChoiceField(required=False)
        share_group_type_id = self.initial['id']

        # Get list of existing projects
        try:
            projects, __ = keystone.tenant_list(request)
        except Exception:
            err_msg = _('Unable to get list of projects.')
            exceptions.handle(request, err_msg)

        # Get list of projects with access to this Share Group Type
        try:
            share_group_type = manila.share_group_type_get(
                request, share_group_type_id)
            self.share_group_type_name = share_group_type.name
            projects_initial = manila.share_group_type_access_list(
                request, share_group_type)
        except Exception:
            err_msg = _(
                'Unable to get information about share group type access.')
            exceptions.handle(request, err_msg)

        self.fields[field_name].choices = [(project.id, project.name
                                            or project.id)
                                           for project in projects]
        self.fields[field_name].initial = [
            pr.project_id for pr in projects_initial
        ]
        self.projects_initial = set(self.fields[field_name].initial)
Esempio n. 8
0
 def allowed(self, request, obj_id):
     sgt = manila.share_group_type_get(request, obj_id)
     # Enable it only for private share group types
     return not sgt.is_public