精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

云效跨賬號遷移,你學會了嗎?

開發 前端
為了確保業務連續性和數據完整性,針對源阿里云賬號即將停用的情況,我們完成了云效(DevOps平臺)的數據遷移工作。由于云效無法直接通過實例遷移至目標賬號,我們采取了數據導出與導入的方式,確保所有項目、流水線配置及代碼倉庫等數據完整無誤地遷移到目標賬號下。至此,平穩順利的完成此次遷移。

背 景  

由于業務調整或組織架構變更,原阿里云賬號將不再繼續使用。為了確保業務連續性和數據完整性,需要將源賬號下的所有云產品及其相關數據完整、安全地遷移到目標賬號。由于云效(DevOps平臺)無法直接通過實例劃撥至目標賬號,因此需要對云效中的數據進行遷移。

創建企業

在目標賬號上點擊

https://devops.console.aliyun.com/organizations/standard 

此鏈接,進入云效控制臺界面,點擊“新建組織”按鈕。

圖片圖片

選擇“云效DevOps”點擊“立即開啟”按鈕。

圖片圖片

根據源賬號云效,填寫“組織名稱”和“研發組織規模”,填寫完成后點擊“立即創建”按鈕,完成云效企業的創建。

圖片圖片

新建項目

進入剛新建企業的控制臺后,點擊“項目協作 Projects”旁的“進入工作”按鈕。

圖片圖片

點擊“新建”按鈕,創建項目。

圖片圖片

根據源賬號項目類型,選擇對應的項目模板。

圖片圖片

根據源賬號項目信息進行填寫,填寫完成后點擊“新建”按鈕。

圖片圖片

新建完成后的項目如下圖所示:

圖片圖片

遷移需求

源賬號導出需求

在源賬號需求界面,點擊“批量操作”,在下拉菜單中單擊“導出全部”。

圖片圖片

全選所有要導出的屬性,完成后點擊“開始導出”按鈕。

圖片圖片

在跳轉后的“批量操作記錄”界面,等待“進展”的進度條顯示成功后,點擊右邊的“下載”圖表按鈕,下載數據文件。

圖片圖片

需求數據表格打開后如下圖所示:

圖片圖片

目標賬號導入需求

在目標賬號的任務界面右上角,點擊“導入數據”按鈕。

圖片圖片

選中“包含子工作項”后,點擊“下載模板”按鈕。

圖片圖片

將源賬號導出的數據,根據導入模板的格式,寫入到該excel表格里。

圖片圖片

注意:負責人必須為當前企業已存在的用戶名稱,迭代為當前項目已創建的迭代,填寫不存在的信息會導致導入報錯

返回到導入數據界面中,繼續點擊“下一步”按鈕。

圖片圖片

將剛填寫完數據的導入模板上傳上去,完成后點擊“開始導入”按鈕。

圖片圖片

直到“導入工作項”顯示為成功,則表示需求數據導入完成。

圖片圖片

檢查需求數據是否跟源賬號上的數據一致。

圖片圖片

遷移任務

源賬號導出任務

在源賬號任務界面,點擊“批量操作”,在下拉菜單中單擊“導出全部”。

圖片圖片

全選所有要導出的屬性,完成后點擊“開始導出”按鈕。

圖片圖片

查看導出的任務數據,如下圖所示:

圖片圖片

目標賬號導入任務

在目標賬號的任務界面右上角,點擊“導入數據”按鈕。

圖片圖片

選中“包含子工作項”后,點擊“下載模板”按鈕。

圖片圖片

將源賬號導出的數據,根據導入模板的格式,寫入到該excel表格里。

圖片圖片

和遷移需求一樣,點擊“下一步”按鈕,將任務數據導入到目標賬號中。

圖片圖片

遷移代碼組、代碼倉庫、迭代

代碼和迭代無法像需求和任務一樣批量導出導入,為了提高效率和準確性,我們采用代碼化方式批量遷移代碼組、代碼倉庫和迭代,避免手動操作的費時費力及潛在錯誤。

獲取組織ID

代碼里需要用到“組織ID”,點擊頭像下拉菜單里的“管理后臺”按鈕,在“基本信息”頁面即可看到“組織ID”。

圖片圖片

獲取企業空間ID

代碼里需要用到“企業空間ID”,點擊

https://next.api.aliyun.com/api/devops/2021-06-25/GetCodeupOrganizatio

此鏈接,在“identity 企業標識”輸入框內輸入“組織ID”,完成后點擊“發起調用”按鈕。在左側“調用結果”頁面可以看到“namespaceId”,即為企業空間ID。

圖片圖片

獲取個人訪問令牌

點擊頭像,在下拉菜單中點擊“個人設置”,進入個人設置界面,選擇“個人訪問令牌”,點擊“創建訪問令牌”按鈕。

圖片

輸入“令牌名稱”,選擇到期時間,按需選擇權限。代碼管理權限必選,后續要用它進行代碼倉庫數據導入操作。完成上述配置后,點擊“新建”按鈕創建個人訪問令牌。

圖片

執行代碼批量遷移

運行“源賬號導出代碼”,會print輸出代碼組、代碼倉庫和迭代的信息,運行“目標賬號導入代碼”時按代碼提示輸入代碼組、代碼倉庫和迭代的信息,即可完成導入。執行前請在測試環境運行測試!!!

源賬號導出代碼

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys,time
from typing import List
from alibabacloud_devops20210625.client import Client as devops20210625Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_devops20210625 import models as devops_20210625_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
ak="源賬號AK"
sk="源賬號SK"
organization_id='源賬號組織ID'
parent_id= 源賬號企業空間ID
class Sample:
    def __init__(self):
        pass
    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> devops20210625Client:
        config = open_api_models.Config(access_key_id=ak,access_key_secret=sk)
        config.endpoint = f'devops.cn-hangzhou.aliyuncs.com'
        return devops20210625Client(config)
    #導出代碼組
    @staticmethod
    def ListGroupMember(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        groupId = args[1]
        User_list=[]
        client = Sample.create_client(ak, sk)
        list_group_member_request = devops_20210625_models.ListGroupMemberRequest(organization_id=organization_id)
        runtime = util_models.RuntimeOptions()
        headers = {}
        Users = client.list_group_member_with_options(groupId, list_group_member_request, headers,runtime).body.result
        for User in Users:
            User_dic={}
            User_dic["name"]=User.name
            User_dic["access_level"] = User.access_level
            User_list.append(User_dic)
        return User_list
    @staticmethod
    def ListRepositoryGroups(
        args: List[str],
    ) -> None:
        organization_id=args[0]
        parent_id=args[1]
        ListRepositoryGroups_list=[]
        client = Sample.create_client(ak, sk)
        list_repository_groups_request = devops_20210625_models.ListRepositoryGroupsRequest(organization_id=organization_id,parent_id=parent_id,page_size=100)
        runtime = util_models.RuntimeOptions()
        headers = {}
        ListRepositoryGroups=client.list_repository_groups_with_options(list_repository_groups_request, headers, runtime).body.result
        for RepositoryGroups in ListRepositoryGroups:
            ListRepositoryGroup_dic = {}
            ListRepositoryGroup_dic["id"] = RepositoryGroups.id
            ListRepositoryGroup_dic["name"] =RepositoryGroups.name
            ListRepositoryGroup_dic["description"] =RepositoryGroups.description
            ListRepositoryGroup_dic["path"] = RepositoryGroups.path
            ListRepositoryGroup_dic["visibility_level"] = RepositoryGroups.visibility_level
            User_list=Sample.ListGroupMember([organization_id, str(RepositoryGroups.id)])
            ListRepositoryGroup_dic["user_list"] = User_list
            ListRepositoryGroups_list.append(ListRepositoryGroup_dic)
        return ListRepositoryGroups_list
    #獲取代碼倉庫信息
    @staticmethod
    def GetRepositorymain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        identity = args[1]
        client = Sample.create_client(ak, sk)
        get_repository_request = devops_20210625_models.GetRepositoryRequest(organization_id=organization_id,identity=identity)
        runtime = util_models.RuntimeOptions()
        headers = {}
        http_url_to_repository = client.get_repository_with_options(get_repository_request, headers,runtime).body.repository.http_url_to_repository
        return http_url_to_repository
    @staticmethod
    def ListRepositoriesmain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        client = Sample.create_client(ak, sk)
        list_repositories_request = devops_20210625_models.ListRepositoriesRequest(organization_id=organization_id,per_page=100)
        runtime = util_models.RuntimeOptions()
        headers = {}
        ListRepositories = client.list_repositories_with_options(list_repositories_request, headers,runtime).body.result
        repository_list = []
        for Repository in ListRepositories:
            repository_dic = {}
            repository_dic["name"] = Repository.name
            repository_dic["path"] = Repository.path
            repository_dic["namespace_id"] = Repository.namespace_id
            repository_dic["description"] = Repository.description
            repository_dic["visibility_level"] = Repository.visibility_level
            http_url_to_repository = Sample.GetRepositorymain([organization_id, Repository.id])
            repository_dic["import_url"] = http_url_to_repository
            repository_list.append(repository_dic)
        return repository_list
    # 導出迭代信息
    @staticmethod
    def ListProjectsmain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        client = Sample.create_client(ak, sk)
        list_projects_request = devops_20210625_models.ListProjectsRequest(category='Project')
        runtime = util_models.RuntimeOptions()
        headers = {}
        projects = client.list_projects_with_options(organization_id, list_projects_request, headers,runtime).body.projects
        projects_info = {}
        for project in projects:
            identifier = project.identifier
            name = project.name
            projects_info[name] = identifier
        return projects_info
    @staticmethod
    def ListSprintsmain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        space_identifier = args[1]
        client = Sample.create_client(ak, sk)
        list_sprints_request = devops_20210625_models.ListSprintsRequest(space_identifier=space_identifier,space_type='Project',max_results=200)
        runtime = util_models.RuntimeOptions()
        headers = {}
        sprints = client.list_sprints_with_options(organization_id, list_sprints_request, headers,runtime).body.sprints
        sprint_list = []
        for sprint in sprints:
            sprint_dic = {}
            sprint_dic["name"] = sprint.name
            sprint_dic["start_date"] = time.strftime('%Y-%m-%d', time.localtime(sprint.start_date / 1000))
            sprint_dic["end_date"] = time.strftime('%Y-%m-%d', time.localtime(sprint.end_date / 1000))
            sprint_list.append(sprint_dic)
        return sprint_list
if __name__ == '__main__':
    #獲取代碼組信息
    ListRepositoryGroups_list=Sample.ListRepositoryGroups([organization_id,parent_id])
    print("代碼組信息:"+str(ListRepositoryGroups_list))
    #獲取代碼倉庫信息
    repository_list = Sample.ListRepositoriesmain([organization_id, ])
    print("代碼倉庫信息:"+str(repository_list))
    #獲取迭代信息
    while True:
        projects_info = Sample.ListProjectsmain([organization_id, ])
        print("項目名稱和項目ID的對應關系"+str(projects_info))
        identifier = input("請輸入要導出的迭代是哪個項目的ID(不需要導出請輸入no):")
        if identifier=="no":
            break
        sprint_list = Sample.ListSprintsmain([organization_id, identifier])
        print("迭代的信息:"+str(sprint_list))

目標賬號導入代碼

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
from typing import List
from alibabacloud_devops20210625.client import Client as devops20210625Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_devops20210625 import models as devops_20210625_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
import ast
ak="目標賬號AK"
sk="目標賬號SK"
organization_id="目標賬號組織ID"
namespaceId="目標賬號企業空間ID"
import_account="目標賬號個人訪問令牌名稱"
import_token="目標賬號個人訪問令牌token"
class Sample:
    def __init__(self):
        pass
    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> devops20210625Client:
        config = open_api_models.Config(access_key_id=ak,access_key_secret=sk)
        config.endpoint = f'devops.cn-hangzhou.aliyuncs.com'
        return devops20210625Client(config)
    #導入代碼組
    @staticmethod
    def CreateRepositoryGroupmain(
        args: List[str],
    ) -> None:
        organization_id = args[0]
        name = args[1]
        path = args[2]
        visibility_level = args[3]
        namespaceId = args[4]
        description = args[5]
        client = Sample.create_client(ak,sk)
        create_repository_group_request = devops_20210625_models.CreateRepositoryGroupRequest(organization_id=organization_id,name=name,path=path,visibility_level=visibility_level,parent_id=namespaceId,descriptinotallow=description)
        runtime = util_models.RuntimeOptions()
        headers = {}
        print(client.create_repository_group_with_options(create_repository_group_request, headers, runtime))
    #獲取源代碼組ID與目標代碼組ID的對應關系
    @staticmethod
    def ListRepositoryGroups(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        parent_id = args[1]
        ListRepositoryGroups_list = []
        client = Sample.create_client(ak,sk)
        list_repository_groups_request = devops_20210625_models.ListRepositoryGroupsRequest(organization_id=organization_id,parent_id=parent_id,page_size=100)
        runtime = util_models.RuntimeOptions()
        headers = {}
        ListRepositoryGroups = client.list_repository_groups_with_options(list_repository_groups_request, headers,runtime).body.result
        for RepositoryGroups in ListRepositoryGroups:
            ListRepositoryGroup_dic = {}
            ListRepositoryGroup_dic["id"] = RepositoryGroups.id
            ListRepositoryGroup_dic["name"] = RepositoryGroups.name
            ListRepositoryGroup_dic["description"] = RepositoryGroups.description
            ListRepositoryGroup_dic["path"] = RepositoryGroups.path
            ListRepositoryGroup_dic["visibility_level"] = RepositoryGroups.visibility_level
            ListRepositoryGroups_list.append(ListRepositoryGroup_dic)
        return ListRepositoryGroups_list
    #導入代碼倉庫
    @staticmethod
    def CreateRepositorymain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        name = args[1]
        path = args[2]
        namespace_id = args[3]
        description = args[4]
        visibility_level = args[5]
        import_url = args[6]
        import_account = args[7]
        import_token = args[8]
        client = Sample.create_client(ak,sk)
        create_repository_request = devops_20210625_models.CreateRepositoryRequest(organization_id=organization_id,name=name,path=path,namespace_id=namespace_id,descriptinotallow=description,visibility_level=visibility_level,import_url=import_url,import_account=import_account,import_token=import_token)
        runtime = util_models.RuntimeOptions()
        headers = {}
        print(client.create_repository_with_options(create_repository_request, headers, runtime))
    # 得到項目名稱和項目ID的對應關系
    @staticmethod
    def ListProjectsmain(
            args: List[str],
    ) -> None:
        organization_id = args[0]
        client = Sample.create_client(ak,sk)
        list_projects_request = devops_20210625_models.ListProjectsRequest(category='Project')
        runtime = util_models.RuntimeOptions()
        headers = {}
        projects = client.list_projects_with_options(organization_id, list_projects_request, headers,runtime).body.projects
        projects_info = {}
        for project in projects:
            identifier = project.identifier
            name = project.name
            projects_info[name] = identifier
        return projects_info
    #創建迭代
    @staticmethod
    def CreateSprintmain(
        args: List[str],
    ) -> None:
        organization_id=args[0]
        identifier=args[1]
        FROM_diedai=args[2]
        staff_id=args[3]
        client = Sample.create_client(ak,sk)
        create_sprint_request = devops_20210625_models.CreateSprintRequest(
            staff_ids=[staff_id],  #ram用戶uid
            name=FROM_diedai["name"],  #迭代名稱
            space_identifier=identifier,  #項目ID
            start_date=FROM_diedai["start_date"],  #迭代開始時間
            end_date=FROM_diedai["end_date"]     #迭代結束時間
        )
        runtime = util_models.RuntimeOptions()
        headers = {}
        print(client.create_sprint_with_options(organization_id, create_sprint_request, headers, runtime))
if __name__ == '__main__':
    # 導入代碼組
    FROMListRepositoryGroups_list=ast.literal_eval(input("請輸入源賬號導出的代碼組列表:"))
    for RepositoryGroup in FROMListRepositoryGroups_list:
        Sample.CreateRepositoryGroupmain([organization_id,RepositoryGroup["name"],RepositoryGroup["path"],RepositoryGroup["visibility_level"],namespaceId,RepositoryGroup["description"]])
    # 獲取源代碼組ID與目標代碼組ID的對應關系
    TOListRepositoryGroups_list = Sample.ListRepositoryGroups([organization_id, namespaceId])
    FROM_TOListRepositoryGroupID_dic = {}
    for FROMListRepositoryGroup in FROMListRepositoryGroups_list:
        for TOListRepositoryGroup in TOListRepositoryGroups_list:
            if FROMListRepositoryGroup["name"] == TOListRepositoryGroup["name"]:
                FROM_TOListRepositoryGroupID_dic[FROMListRepositoryGroup["id"]] = TOListRepositoryGroup["id"]
    FROMparent_id=ast.literal_eval(input("請輸入源賬號的parent_id,也就是namespace_id:"))
    FROM_TOListRepositoryGroupID_dic[FROMparent_id]=int(namespaceId)
    print("源賬號代碼組ID與目標賬號代碼組ID的對應關系:"+str(FROM_TOListRepositoryGroupID_dic))
    #導入代碼倉庫
    FROMrepository_list=ast.literal_eval(input("請輸入源賬號導出的代碼倉庫列表:"))
    for FROMrepository in FROMrepository_list:
        Sample.CreateRepositorymain([organization_id, FROMrepository["name"], FROMrepository["path"],FROM_TOListRepositoryGroupID_dic[FROMrepository["namespace_id"]], FROMrepository["description"],FROMrepository["visibility_level"], FROMrepository["import_url"], import_account, import_token])
    # 導入迭代
    while True:
        projects_info = Sample.ListProjectsmain([organization_id, ])
        print("項目名稱和項目ID的對應關系:"+str(projects_info))
        identifier = input("請輸入要導入的迭代是哪個項目的ID(不需要導出請輸入no):")
        if identifier=="no":
            break
        print("用戶ID:{用戶A:用戶A的RAM賬號UID,用戶B:用戶B的RAM賬號UID,用戶C:用戶C的RAM賬號UID}")
        print("項目與負責人的對應關系:{'項目A':'負責人A','項目B':'負責人B','項目C':'負責人C'}")
        staff_id = input("請輸入要導入迭代負責人的RAM賬號UID:")
        FROM_diedai_list = ast.literal_eval(input("請輸入要導入的迭代內容列表:"))
        for FROM_diedai in FROM_diedai_list:
            Sample.CreateSprintmain([organization_id, identifier, FROM_diedai, staff_id])

總 結

為了確保業務連續性和數據完整性,針對源阿里云賬號即將停用的情況,我們完成了云效(DevOps平臺)的數據遷移工作。由于云效無法直接通過實例遷移至目標賬號,我們采取了數據導出與導入的方式,確保所有項目、流水線配置及代碼倉庫等數據完整無誤地遷移到目標賬號下。至此,平穩順利的完成此次遷移。

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2023-06-15 08:00:23

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2024-01-19 08:25:38

死鎖Java通信

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-07-29 00:10:48

2023-08-26 21:34:28

Spring源碼自定義

2022-07-13 08:16:49

RocketMQRPC日志

2023-05-05 06:54:07

MySQL數據查詢

2023-03-26 22:31:29

2022-12-06 07:53:33

MySQL索引B+樹

2023-07-30 22:29:51

BDDMockitoAssert測試

2023-06-26 13:08:52

GraphQL服務數據

2022-06-16 07:50:35

數據結構鏈表

2024-03-06 08:28:16

設計模式Java

2023-10-06 14:49:21

SentinelHystrixtimeout

2023-01-31 08:02:18

2024-02-02 11:03:11

React數據Ref
點贊
收藏

51CTO技術棧公眾號

日韩精品极品在线观看| 亚洲国产成人av好男人在线观看| 国产成人综合av| 99久久99久久精品免费| 国产精品高清一区二区| 亚洲成av人片一区二区梦乃| 麻豆av一区二区三区| 色婷婷久久综合中文久久蜜桃av| 性欧美69xoxoxoxo| 日韩成人在线免费观看| www.国产视频.com| 波多野结衣视频一区二区| 国产精品色噜噜| 国产区二精品视| 91丨porny丨在线中文| 国产婷婷精品| 久久香蕉频线观| 久久精品成人av| 亚洲国产aⅴ精品一区二区| 一本大道久久a久久精品综合| 免费久久久久久| 二区在线视频| av电影天堂一区二区在线观看| 国产精品一区二区三区成人| 成年人午夜视频| 亚洲理论电影网| 亚洲最新av在线网站| 日本一区二区在线观看视频| 亚洲日本免费电影| 在线视频国内自拍亚洲视频| 国产美女主播在线| 国产原创视频在线观看| 欧美激情中文不卡| 精品久久久久久中文字幕动漫| 国产片在线播放| 日本sm残虐另类| 欧洲精品在线视频| 国产成人精品a视频一区| 欧美日韩调教| 久久视频在线视频| 激情五月激情综合| 波多野结衣在线播放一区| 亚洲大尺度美女在线| 精产国品一区二区三区| 91丨精品丨国产| 欧美欧美欧美欧美首页| 簧片在线免费看| 午夜无码国产理论在线| 色婷婷一区二区三区四区| 成熟丰满熟妇高潮xxxxx视频| 日本三级韩国三级欧美三级| 亚洲精品老司机| 伊人再见免费在线观看高清版| 黄色在线论坛| 亚洲精品大片www| 国产欧美综合一区| 性欧美videos高清hd4k| 一区二区三区日本| 国产freexxxx性播放麻豆| 日本aa在线| 亚洲国产美女搞黄色| 天堂8在线天堂资源bt| 污网站在线免费看| 亚洲成年人影院| www一区二区www免费| 男女羞羞在线观看| 91精品91久久久中77777| 亚洲一区二区三区四区五区xx| 美女写真久久影院| 欧美日韩dvd在线观看| 在线免费看v片| 一区二区三区四区高清视频| 精品少妇一区二区| 在线精品一区二区三区| 深夜福利久久| 精品国产美女在线| 久艹视频在线观看| 亚洲永久免费精品| 国产在线不卡精品| www日本在线| 91热门视频在线观看| 日韩亚洲不卡在线| 国产传媒在线播放| 亚洲6080在线| 精品少妇无遮挡毛片| 久久伦理中文字幕| 日韩经典第一页| 国产一级淫片久久久片a级| 一区二区三区四区日韩| 国产+成+人+亚洲欧洲| 四虎影院在线免费播放| 久久成人免费网| 国产乱码精品一区二区三区中文| 男人的天堂在线免费视频| 国产精品久久久久久久午夜片| 日本中文字幕一级片| 性感女国产在线| 欧美日韩激情一区二区三区| 香蕉久久久久久av成人| 国产欧美日韩一区二区三区四区| 精品久久国产精品| 日本中文字幕在线| 国产一区免费电影| 欧美日韩国产综合在线| 丝袜美腿美女被狂躁在线观看| 亚洲一区二区在线免费观看视频| 欧美精品色婷婷五月综合| 精品国产乱码一区二区三区| 精品香蕉在线观看视频一| 国产稀缺精品盗摄盗拍| 久久久久久穴| 成人av播放| 最近高清中文在线字幕在线观看| 亚洲午夜精品网| 色婷婷综合网站| 欧美wwwsss9999| 欧美成aaa人片免费看| 99久久久久久久久| 成人午夜免费av| 日本三级福利片| 日韩免费va| 亚洲国产高清高潮精品美女| 成人精品一二三区| 视频一区免费在线观看| 国产一区二区三区四区五区在线| 免费高清完整在线观看| 一本大道久久a久久精二百| 国产午夜在线一区二区三区| 亚州av乱码久久精品蜜桃| 国产不卡av在线免费观看| 日韩在线观看视频一区| 亚洲乱码国产乱码精品精可以看 | 成人激情av在线| 能在线看的av| 色综合久久中文字幕| 欧美激情 亚洲| 欧美在线黄色| 亚洲一区二区免费在线| 亚洲精品承认| 欧洲国产伦久久久久久久| 强伦人妻一区二区三区| 国产日韩综合| 欧美aaaaa喷水| 深夜在线视频| 亚洲精品永久免费精品| 日韩不卡视频在线| 26uuu精品一区二区三区四区在线| 久久久久久久久久久99| 人妖一区二区三区| 国产91精品久久久久久| 飘雪影视在线观看免费观看| 日韩欧美中文字幕在线观看| 性欧美成人播放77777| 99精品国产福利在线观看免费 | www.超碰97.com| 日韩理论电影院| 国产日韩欧美在线视频观看| 午夜老司机在线观看| 欧美精品国产精品| 唐朝av高清盛宴| 成人免费视频一区| 日韩精品视频久久| 欧美男gay| 国产日韩欧美黄色| 五月花成人网| 精品调教chinesegay| 自拍偷拍精品视频| 综合色天天鬼久久鬼色| 九色91porny| 在线高清一区| 水蜜桃亚洲精品| 国产精品xnxxcom| 91国内精品久久| 粉嫩一区二区三区国产精品| 欧美日韩国产免费一区二区 | 欧美视频在线观看免费| 精品成人无码一区二区三区| 免费成人你懂的| 免费看日本黄色| 亚洲精品动态| 成人激情视频免费在线| 成人女同在线观看| 亚洲最新av在线| 午夜老司机福利| 一本大道av一区二区在线播放| 911国产在线| 波多野洁衣一区| 一级片视频免费观看| 欧美视频导航| 新呦u视频一区二区| 欧美激情精品| 国产成人福利视频| 日本在线视频www鲁啊鲁| 亚洲欧美一区二区三区情侣bbw| 97精品人妻一区二区三区香蕉| 亚洲综合免费观看高清在线观看| 久久av无码精品人妻系列试探| 国产一区二区三区视频在线播放| 九一国产精品视频| 91亚洲国产高清| 精品一卡二卡三卡四卡日本乱码 | 亚洲色图综合区| 久久天堂av综合合色蜜桃网| 天天久久综合网| 免费日韩视频| 男人c女人视频| 91青青国产在线观看精品| 久久精品人成| 成人另类视频| 成人国产精品一区二区| 免费日韩电影| 孩xxxx性bbbb欧美| 国产福利在线播放麻豆| 在线亚洲欧美视频| 日韩精品视频无播放器在线看 | 91porn在线观看| 日韩av在线影院| 亚洲a视频在线观看| 欧美色图第一页| 黄色片视频免费| 五月综合激情网| 欧美黄色免费在线观看| 国产精品久久久久精k8| 国产肥白大熟妇bbbb视频| 成人午夜视频免费看| 五月天六月丁香| 精品一区二区在线视频| 网站一区二区三区| 先锋影音久久| 国产精品后入内射日本在线观看| 欧美精品麻豆| 日本黄网站色大片免费观看| 小小影院久久| 综合色婷婷一区二区亚洲欧美国产| 国产一区二区区别| 欧美日韩一区在线视频| 日韩有码av| 久久精品99久久| 香蕉久久夜色精品国产使用方法| 国产欧美综合精品一区二区| 国产精品丝袜在线播放| 99一区二区| 一级毛片精品毛片| 国产伦精品一区二区三区| 136导航精品福利| 成人av片网址| 美女一区二区在线观看| 精品视频高清无人区区二区三区| 精品伊人久久久| 久久精品丝袜高跟鞋| 婷婷综合成人| 欧美一级爱爱| 欧美综合另类| 国产欧美综合一区| 国产精品av久久久久久麻豆网| 欧美日韩中文字幕在线播放 | 亚洲欧洲日本在线| 中文字幕影音先锋| 一区二区免费在线播放| 国产小视频在线看| 精品久久久中文| 中文字幕精品视频在线观看| 欧美三级三级三级爽爽爽| 一级黄色片视频| 欧美成人女星排名| 天天摸天天干天天操| 精品视频在线播放| 3p视频在线观看| 精品视频9999| 在线天堂资源| 国产精品久久久久久久久借妻 | 精品成人av| 国产精品久久久久久网站| 久久久免费人体| 亚洲bt天天射| 婷婷成人影院| 中文字幕一区二区三区在线乱码| 欧美黄色一级视频| 日本黄色三级大片| 精品亚洲免费视频| 亚洲国产精品自拍视频| 国产精品视频一二| 久久精品一区二区三| 色婷婷久久一区二区三区麻豆| 中文字幕一区二区久久人妻| 日韩一区二区精品| 国产中文字幕在线观看| 欧美日韩ab片| 国产第一亚洲| 国产精品一区二区不卡视频| 精品美女视频| 全黄性性激高免费视频| 日韩中文字幕区一区有砖一区 | 亚洲av少妇一区二区在线观看 | 免费成人黄色| 91精品国产91久久| 91精品视频一区二区| 久久久www免费人成黑人精品| 99久久激情| 日本久久久精品视频| 国产一区三区三区| 日本少妇xxxxx| 亚洲成年人网站在线观看| 96亚洲精品久久久蜜桃| 亚洲欧美在线一区| 国产在线拍揄自揄拍视频| 国产精品自产拍高潮在线观看| 久久精品色播| 国产精品第157页| 精品影视av免费| 国产美女永久免费无遮挡| 亚洲电影一区二区| 国产麻豆91视频| 尤物九九久久国产精品的分类 | 亚洲国产一区二区精品专区| 天天爽夜夜爽一区二区三区| 99re这里只有精品首页| 激情视频在线播放| 91精品国模一区二区三区| 国产三区四区在线观看| 18性欧美xxxⅹ性满足| aiss精品大尺度系列| 欧美做受777cos| 精品系列免费在线观看| 九九九视频在线观看| 欧美性生交大片免费| 四虎精品成人影院观看地址| 久久久久久网站| 亚洲精品在线a| 女女百合国产免费网站| 精品一区二区三区日韩| 中文字幕求饶的少妇| 欧美三级日韩三级| xxxxx日韩| 国产专区精品视频| 欧美少妇性xxxx| 性欧美videossex精品| 国产欧美一区二区精品忘忧草 | 性xxxxfreexxxxx欧美丶| 精品国产一区二区三区久久久久久| 国产主播精品| 色哟哟视频在线| 精品成人久久av| 深夜福利在线观看直播| 26uuu国产精品视频| 日韩美女毛片| 国产男女激情视频| 久久久久久99精品| 亚洲中文无码av在线| 在线视频免费一区二区| 国产一区二区三区四区五区3d| 视频二区一区| 久久成人免费网站| 欧美成人综合色| 精品粉嫩aⅴ一区二区三区四区| 丰满的护士2在线观看高清| 精品久久蜜桃| 日本不卡高清视频| 亚洲人做受高潮| 日韩免费视频线观看| 爱看av在线| 欧美日韩在线一二三| 奇米精品一区二区三区在线观看一| 国产黄色录像片| 精品少妇一区二区三区| 在线观看涩涩| 亚洲一区二区三区精品视频| 黄网站免费久久| 国产精品suv一区二区| 国产婷婷成人久久av免费高清| av高清一区| 欧美少妇在线观看| 91香蕉视频黄| 夜夜狠狠擅视频| 欧美极品第一页| 沈樵精品国产成av片| 日本一本在线视频| 欧美日韩一区二区在线| 色开心亚洲综合| 国产精品区一区二区三在线播放| 久久久久久黄| 欧美成人一区二区三区高清| 亚洲欧美国产日韩天堂区| 亚洲爽爆av| 免费无码av片在线观看| 亚洲欧洲国产日韩| 深夜福利免费在线观看| 成人激情春色网| 男女精品网站| 国产盗摄x88av| 中文字幕精品在线视频| 91麻豆精品激情在线观看最新| 久久久久国产精品熟女影院| 国产精品国产三级国产三级人妇| 色wwwwww| 91精品在线一区| 老司机精品福利视频| 妺妺窝人体色www在线下载| 中文字幕日韩av电影| 国产欧美一区二区三区米奇|