Ejemplo n.º 1
0
    def get_shares_data(self):
        share_nets_names = {}
        share_nets = manila.share_network_list(self.request)
        for share_net in share_nets:
            share_nets_names[share_net.id] = share_net.name
        try:
            shares = manila.share_list(self.request)
            for share in shares:
                share.share_network = (share_nets_names.get(
                    share.share_network_id) or share.share_network_id)
                share.metadata = ui_utils.metadata_to_str(share.metadata)

            snapshots = manila.share_snapshot_list(self.request, detailed=True)
            share_ids_with_snapshots = []
            for snapshot in snapshots:
                share_ids_with_snapshots.append(snapshot.to_dict()['share_id'])
            for share in shares:
                if share.to_dict()['id'] in share_ids_with_snapshots:
                    setattr(share, 'has_snapshot', True)
                else:
                    setattr(share, 'has_snapshot', False)
        except Exception:
            exceptions.handle(self.request,
                              _('Unable to retrieve share list.'))
            return []
        # Gather our tenants to correlate against IDs
        return shares
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
 def _get_shares(self, search_opts=None):
     try:
         return manila.share_list(self.request, search_opts=search_opts)
     except Exception:
         exceptions.handle(self.request,
                           _('Unable to retrieve share list.'))
         return []
Ejemplo n.º 4
0
    def test_share_list(self, kwargs):
        result = api.share_list(self.request, search_opts=kwargs)

        self.assertEqual(self.manilaclient.shares.list.return_value, result)

        self.manilaclient.shares.list.assert_called_once_with(
            search_opts=kwargs)
Ejemplo n.º 5
0
 def _get_shares(self, search_opts=None):
     try:
         return manila.share_list(self.request, search_opts=search_opts)
     except Exception:
         exceptions.handle(self.request,
                           _('Unable to retrieve share list.'))
         return []
Ejemplo n.º 6
0
    def get_shares_data(self):
        share_nets_names = {}
        share_nets = manila.share_network_list(self.request)
        for share_net in share_nets:
            share_nets_names[share_net.id] = share_net.name
        try:
            shares = manila.share_list(self.request)
            for share in shares:
                share.share_network = (
                    share_nets_names.get(share.share_network_id) or
                    share.share_network_id)
                share.metadata = ui_utils.metadata_to_str(share.metadata)

            snapshots = manila.share_snapshot_list(self.request, detailed=True)
            share_ids_with_snapshots = []
            for snapshot in snapshots:
                share_ids_with_snapshots.append(snapshot.to_dict()['share_id'])
            for share in shares:
                if share.to_dict()['id'] in share_ids_with_snapshots:
                    setattr(share, 'has_snapshot', True)
                else:
                    setattr(share, 'has_snapshot', False)
        except Exception:
            exceptions.handle(
                self.request, _('Unable to retrieve share list.'))
            return []
        # Gather our tenants to correlate against IDs
        return shares
Ejemplo n.º 7
0
 def allowed(self, request, share_serv):
     if share_serv:
         share_search_opts = {'share_server_id': share_serv.id}
         shares_list = manila.share_list(request,
                                         search_opts=share_search_opts)
         if shares_list:
             return False
         return share_serv.status not in ("deleting", "creating")
     return True
Ejemplo n.º 8
0
 def allowed(self, request, share_serv):
     if share_serv:
         share_search_opts = {'share_server_id': share_serv.id}
         shares_list = manila.share_list(request,
                                         search_opts=share_search_opts)
         if shares_list:
             return False
         return share_serv.status not in ["deleting", "creating"]
     return True
Ejemplo n.º 9
0
 def get_share_snapshots_data(self):
     try:
         snapshots = manila.share_snapshot_list(self.request)
         shares = manila.share_list(self.request)
         share_names = dict([(share.id, share.name or share.id)
                             for share in shares])
         for snapshot in snapshots:
             snapshot.share = share_names.get(snapshot.share_id)
     except Exception:
         msg = _("Unable to retrieve share snapshots list.")
         exceptions.handle(self.request, msg)
         return []
     # Gather our tenants to correlate against IDs
     return snapshots
Ejemplo n.º 10
0
 def get_share_snapshots_data(self):
     try:
         snapshots = manila.share_snapshot_list(self.request)
         shares = manila.share_list(self.request)
         share_names = dict([(share.id, share.name or share.id)
                             for share in shares])
         for snapshot in snapshots:
             snapshot.share = share_names.get(snapshot.share_id)
     except Exception:
         msg = _("Unable to retrieve share snapshots list.")
         exceptions.handle(self.request, msg)
         return []
     # Gather our tenants to correlate against IDs
     return snapshots
Ejemplo n.º 11
0
def tenant_quota_usages(f, request, tenant_id=None):

    usages = f(request, tenant_id)

    if 'shares' not in _get_manila_disabled_quotas(request):
        shares = manila.share_list(request)
        snapshots = manila.share_snapshot_list(request)
        sn_l = manila.share_network_list(request)
        gig_s = sum([int(v.size) for v in shares])
        gig_ss = sum([int(v.size) for v in snapshots])
        usages.tally('gigabytes', gig_s + gig_ss)
        usages.tally('shares', len(shares))
        usages.tally('snapshots', len(snapshots))
        usages.tally('share_networks', len(sn_l))

    return usages
Ejemplo n.º 12
0
def tenant_quota_usages(f, request, tenant_id=None):

    usages = f(request, tenant_id)

    if 'shares' not in _get_manila_disabled_quotas(request):
        shares = manila.share_list(request)
        snapshots = manila.share_snapshot_list(request)
        sn_l = manila.share_network_list(request)
        gig_s = sum([int(v.size) for v in shares])
        gig_ss = sum([int(v.size) for v in snapshots])
        usages.tally('gigabytes', gig_s + gig_ss)
        usages.tally('shares', len(shares))
        usages.tally('snapshots', len(snapshots))
        usages.tally('share_networks', len(sn_l))

    return usages
Ejemplo n.º 13
0
    def get_snapshots_data(self):
        snapshots = []
        try:
            snapshots = manila.share_snapshot_list(
                self.request, search_opts={'all_tenants': True})
            shares = manila.share_list(self.request)
            share_names = dict([(share.id, share.name or share.id)
                                for share in shares])
            for snapshot in snapshots:
                snapshot.share = share_names.get(snapshot.share_id)
        except Exception:
            msg = _("Unable to retrieve snapshot list.")
            exceptions.handle(self.request, msg)

        # Gather our projects to correlate against IDs
        utils.set_project_name_to_objects(self.request, snapshots)

        return snapshots
Ejemplo n.º 14
0
 def get_data(self):
     try:
         share_serv_id = self.kwargs['share_server_id']
         share_serv = manila.share_server_get(self.request, share_serv_id)
         share_search_opts = {'share_server_id': share_serv.id}
         shares_list = manila.share_list(self.request,
                                         search_opts=share_search_opts)
         for share in shares_list:
             share.name_or_id = share.name or share.id
         share_serv.shares_list = shares_list
         if not hasattr(share_serv, 'share_network_id'):
             share_serv.share_network_id = None
     except Exception:
         redirect = reverse('horizon:admin:share_servers:index')
         exceptions.handle(self.request,
                           _('Unable to retrieve share server details.'),
                           redirect=redirect)
     return share_serv
Ejemplo n.º 15
0
    def get_snapshots_data(self):
        snapshots = []
        try:
            snapshots = manila.share_snapshot_list(
                self.request, search_opts={'all_tenants': True})
            shares = manila.share_list(self.request)
            share_names = dict([(share.id, share.name or share.id)
                                for share in shares])
            for snapshot in snapshots:
                snapshot.share = share_names.get(snapshot.share_id)
        except Exception:
            msg = _("Unable to retrieve snapshot list.")
            exceptions.handle(self.request, msg)

        # Gather our tenants to correlate against IDs
        utils.set_tenant_name_to_objects(self.request, snapshots)

        return snapshots
Ejemplo n.º 16
0
def tenant_limit_usages(f, request):

    limits = f(request)

    if base.is_service_enabled(request, 'share'):
        try:
            limits.update(manila.tenant_absolute_limits(request))
            shares = manila.share_list(request)
            snapshots = manila.share_snapshot_list(request)
            total_s_size = sum([getattr(share, 'size', 0) for share in shares])
            total_ss_size = sum([getattr(ss, 'size', 0) for ss in snapshots])
            limits['totalGigabytesUsed'] = total_s_size + total_ss_size
            limits['totalSharesUsed'] = len(shares)
            limits['totalSnapshotsUsed'] = len(snapshots)
        except Exception:
            msg = _("Unable to retrieve share limit information.")
            horizon.exceptions.handle(request, msg)

    return limits
Ejemplo n.º 17
0
def tenant_limit_usages(f, request):

    limits = f(request)

    if base.is_service_enabled(request, 'share'):
        try:
            limits.update(manila.tenant_absolute_limits(request))
            shares = manila.share_list(request)
            snapshots = manila.share_snapshot_list(request)
            total_s_size = sum([getattr(share, 'size', 0) for share in shares])
            total_ss_size = sum([getattr(ss, 'size', 0) for ss in snapshots])
            limits['totalGigabytesUsed'] = total_s_size + total_ss_size
            limits['totalSharesUsed'] = len(shares)
            limits['totalSnapshotsUsed'] = len(snapshots)
        except Exception:
            msg = _("Unable to retrieve share limit information.")
            horizon.exceptions.handle(request, msg)

    return limits
Ejemplo n.º 18
0
    def get_data(self):
        try:
            share_serv_id = self.kwargs['share_server_id']
            share_serv = manila.share_server_get(self.request, share_serv_id)
            share_search_opts = {'share_server_id': share_serv.id}
            shares_list = manila.share_list(self.request,
                                            search_opts=share_search_opts)
            for share in shares_list:
                share.name_or_id = share.name or share.id
            share_serv.shares_list = shares_list
            if not hasattr(share_serv, 'share_network_id'):
                share_serv.share_network_id = None

        except Exception:
            redirect = reverse('horizon:project:shares:index')
            exceptions.handle(self.request,
                              _('Unable to retrieve share server details.'),
                              redirect=redirect)
        return share_serv
Ejemplo n.º 19
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_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)
Ejemplo n.º 20
0
    def get_shares_data(self):
        shares = []
        try:
            shares = manila.share_list(
                self.request, search_opts={'all_tenants': True})
            snapshots = manila.share_snapshot_list(
                self.request, detailed=True, search_opts={'all_tenants': True})
            share_ids_with_snapshots = []
            for snapshot in snapshots:
                share_ids_with_snapshots.append(snapshot.to_dict()['share_id'])
            for share in shares:
                if share.to_dict()['id'] in share_ids_with_snapshots:
                    setattr(share, 'has_snapshot', True)
                else:
                    setattr(share, 'has_snapshot', False)
        except Exception:
            exceptions.handle(
                self.request, _('Unable to retrieve share list.'))

        # Gather our projects to correlate against IDs
        utils.set_project_name_to_objects(self.request, shares)

        return shares
Ejemplo n.º 21
0
    def get_shares_data(self):
        shares = []
        try:
            shares = manila.share_list(self.request,
                                       search_opts={'all_tenants': True})
            snapshots = manila.share_snapshot_list(
                self.request, detailed=True, search_opts={'all_tenants': True})
            share_ids_with_snapshots = []
            for snapshot in snapshots:
                share_ids_with_snapshots.append(snapshot.to_dict()['share_id'])
            for share in shares:
                if share.to_dict()['id'] in share_ids_with_snapshots:
                    setattr(share, 'has_snapshot', True)
                else:
                    setattr(share, 'has_snapshot', False)
        except Exception:
            exceptions.handle(self.request,
                              _('Unable to retrieve share list.'))

        # Gather our projects to correlate against IDs
        utils.set_project_name_to_objects(self.request, shares)

        return shares