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)
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)
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)
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)
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
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
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)
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